首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS API网关-空响应正文

AWS API网关-空响应正文
EN

Stack Overflow用户
提问于 2019-06-11 15:08:28
回答 1查看 2.3K关注 0票数 6

我正在使用node serverless和python在AWS上部署服务。使用的服务: S3、API-Gateway、Cloudformation、Lambda。

问题是。我得到的响应正文是空的:

代码语言:javascript
复制
{
  "statusCode": 200,
  "isBase64Encoded": false,
  "headers": {
    "Content-Type": "application/json"
  },
  "body": "{}"
}

body字段为空。我和邮递员测试的时候也是一样的。但是当我在lambda上测试时,它工作得很好:

代码语言:javascript
复制
{
  "statusCode": 200,
  "isBase64Encoded": false,
  "headers": {
    "Content-Type": "application/json"
  },
  "body": "{\"55b7badc-75af-41c0-9877-af308264cb33\":\"0.4666666666666667\",\"4694e172-322e-4a51-930e-d3b9bfd3c2e6\":\"0.36363636363636365\",\"c5447cc5-936d-4aa6-97c4-3f51a7e7c283\":\"0.3\",\"6abf0893-5d32-4a43-942f-aaef4395d91d\":\"0.2727272727272727\",\"c0bf1214-fb41-48eb-b07d-f81b71ba0061\":\"0.25\"}"
}

下面是yml文件:

代码语言:javascript
复制
service: collaborative

provider:
  name: aws
  runtime: python3.6
  region: eu-west-1

defaults:
 stage: dev1
 region: eu-west-1

package:
  include:
    - collaborative
  exclude:
    - .git
    - .idea
    - .col_ser.txt

custom:
  integration: lambda

functions:
  collaborative:
    name: lambda-collaborative
    handler: handler.lambda_handler
    events:
      - http:
          path: recommend_user
          method: post
          integration: lambda
          cors: true
          request:
            template:
              text/xhtml: '{ "stage" : "$context.stage" }'
              application/json: '{ "httpMethod" : "$context.httpMethod" }'
          response:
            headers:
              Access-Control-Allow-Origin: "'*'"
            statusCodes:
              400:
                pattern: '.*wrong.*'
                template:
                  application/json: >
                    #set ($errorMessageObj = $input.path('$.errorMessage'))
                    $errorMessageObj

Resources:
  ApiGatewayMethodRecommenduserPost:
    Type: AWS::ApiGateway::Method
    Properties:
      Integration:
        IntegrationHttpMethod: POST
        Type: lambda
EN

回答 1

Stack Overflow用户

发布于 2020-10-02 12:53:08

如果您已经从API Gateway异步调用了lambda函数,则收到空响应是正常的,因为在这种情况下,API Gateway不会等待lambda返回响应,而只是返回一个空响应。但是,您可以根据状态码从API网关创建自己的集成响应模板。

如果您已经同步调用,但仍然没有收到响应,那么您也可以从API网关调用您的lambda函数,并观察您的lambda函数是否正常工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56538294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档