Есть ли способ перенаправить с облачного фронта на apigateway, используя данные в заголовках - PullRequest
0 голосов
/ 07 ноября 2019

Мы настраиваем API на aws apigateway. Идея состоит в том, что URL-адрес находится в формате «example.com/apiName/path», а stage (версия) - в заголовках html. Как я могу перенаправить пользователя к определенному API и этапу, используя Route53 и / или CloudFront на основе нашего формата URL

. В качестве события для запуска лямбды мы попробовали все 4 (запрос / ответ зрителя, запрос / ответ источника). Каждый раз ответ 502 или 503. Мы пробовали использовать лямбда-код по умолчанию для приветствия по умолчанию, а также пытались только с возвратом {'status': 200}, но ответ тот же (503)

def lambda_handler(event, context):
    print('In lambda')
    return {
        'statusCode': 200,
        'body': json.dumps('Hello from Lambda!')
    }

Нет логовни в CloudWatch, ни в графах мониторинга в лямбде, поэтому я предполагаю, что код в лямбде никогда не выполнялся

Ответы [ 2 ]

0 голосов
/ 14 ноября 2019

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

exports.handler = async (event, context) => {
  const response = {
      status: '301',
      statusDescription: 'Found',
      headers: {
          location: [{
              key: 'Location',
              value: "{URL_TO_REDIRECT_TO}",
          }],
      },
  };
  return response
}

он вернет 301перенаправить на любой указанный вами URL, который может быть вашим шлюзом API

0 голосов
/ 11 ноября 2019

По какой-то причине у меня в Lambda @ Edge работает только код javascript, хотя Python поддерживается с августа 2019 года

...