Я настроил интеграцию лямбда-прокси с API-шлюзом, используя спецификацию SAM, и асинхронно запускаю лямбду, передавая заголовок X-Amz-Invocation-Type: "'Event'"
ApiGateway:
Type: AWS::Serverless::Api
Properties:
StageName: prod
DefinitionBody:
swagger: "2.0"
info:
title:
Ref: AWS::StackName
description: API endpoint for invoking LambdaFunction
version: 1.0.0
paths:
/items:
post:
consumes: ["application/json"]
produces: ["application/json"]
responses: {}
x-amazon-apigateway-integration:
type: "aws_proxy"
uri:
Fn::Sub: arn:aws:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${LambdaFunction.Arn}/invocations
passthroughBehavior: "when_no_match"
httpMethod: "POST"
requestParameters:
integration.request.header.X-Amz-Invocation-Type: "'Event'"
Проблема в том, что лямбда возвращает пустой ответ (вызывается асинхронно), поэтому API-шлюз генерирует следующую ошибку
Ср. 14 ноября 08:03:14 UTC 2018: сбой выполнения из-за ошибки конфигурации: неверный ответ лямбда-прокси
Ср 14 ноября 08:03:14 UTC 2018: метод завершен со статусом: 502
Ожидается ли такое поведение? Должен ли я определять ответы явно? Я не хочу бросать 200 всегда, потому что я также хочу отправить неверный запрос и несанкционированные ошибки. Какое решение избежать этой проблемы?