Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何使用SAM通过API网关配置异步lambda调用?_Amazon Web Services_Aws Lambda_Aws Api Gateway_Aws Sam - Fatal编程技术网

Amazon web services 如何使用SAM通过API网关配置异步lambda调用?

Amazon web services 如何使用SAM通过API网关配置异步lambda调用?,amazon-web-services,aws-lambda,aws-api-gateway,aws-sam,Amazon Web Services,Aws Lambda,Aws Api Gateway,Aws Sam,我已经使用SAM规范配置了与API网关的lambda代理集成,并通过传递X-Amz-Invocation-Type:“Event”头异步调用lambda 问题是lambda返回空响应(异步调用),所以API网关抛出以下错误 2018年11月14日星期三08:03:14 UTC:由于配置错误,执行失败:Lambda代理响应格式错误 2018年11月14日星期三08:03:14 UTC:方法完成,状态:502 这种行为是预期的吗?我必须明确定义响应吗?我不想总是抛出200,因为我还想发送错误请求和未

我已经使用SAM规范配置了与API网关的lambda代理集成,并通过传递X-Amz-Invocation-Type:“Event”头异步调用lambda

问题是lambda返回空响应(异步调用),所以API网关抛出以下错误

2018年11月14日星期三08:03:14 UTC:由于配置错误,执行失败:Lambda代理响应格式错误 2018年11月14日星期三08:03:14 UTC:方法完成,状态:502

这种行为是预期的吗?我必须明确定义响应吗?我不想总是抛出200,因为我还想发送错误请求和未经授权的错误。有什么解决方案可以避免这个问题?

不允许这样做

在使用异步集成时,必须取消选中该选项才能非常具体。

另外,您不需要在请求中实际传递X-Amz-Invocation-Type头


不幸的是,异步调用不适用于lambda代理(aws\U代理)集成类型。

您在哪里定义了lambda?请将此代码和相关代码(节点lambda代码)添加到问题中。那里的代码有问题。
  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'"