2016-03-27 2 views
1

Я пытаюсь отслеживать открытые электронные письма. Я использую AWS API-шлюз и Lambda в качестве задней части, и я использую пиксель размером 1x1, прикрепленный к электронной почте.URL-адрес перенаправления через AWS Lambda

В настоящее время моя функция лямбда просто возвращает местоположение к фактическому изображению, в которое я хочу перенаправить. Я буду добавлять приращение счетчика в моей базе данных, используя эту функцию лямбда раз редирект работает (электронная почта слежения):

def handler(event, context): 
Location = 'https://s3-eu-west-1.amazonaws.com/stylezz.biz/email-sig/1.png' 
return Location 

В моей API шлюза я настроил ответ будет 301 и отображается на выходе из lambda для моего заголовка местоположения. Однако URL не перенаправляет, как просто возвращает местоположение в формате JSON .: enter image description here

Каждый знает, как я могу на самом деле получить API для перенаправления

ответ

1

1) Определить ответ метод со статусом 302 и « Location "
2) Определите сопоставление отклика интеграции по умолчанию с пустым регулярным выражением, сопоставление с 302.
3) Для этого ответа определите сопоставление заголовка« Местоположение »с URL-адреса перенаправления, возвращаемого в вашей функции Lambda. т.е. «integration.response.body.location»
3) Настройте функцию лямбда, чтобы вернуть расположение перенаправлять в организме, т.е.

чванство пример:

/lambdaredirect-default: 
    get: 
     produces: 
     - "application/json" 
     parameters: [] 
     responses: 
     200: 
      description: "200 response" 
      schema: 
      $ref: "#/definitions/Empty" 
      headers: {} 
     302: 
      description: "302 response" 
      headers: 
      Location: 
       type: "string" 
     x-amazon-apigateway-integration: 
     responses: 
      default: 
      statusCode: "302" 
      responseParameters: 
       method.response.header.Location: "integration.response.body.location" 
     uri: "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:[ACCOUNT_ID]:function:redirect-default/invocations" 
     httpMethod: "POST" 
     type: "aws" 

лямбда-функция

exports.handler = function(event, context) { 
    context.succeed({ 
     location : "https://example.com" 
    }); 
}; 

Подробнее here