小编Ste*_*ula的帖子

如何在 API Gateway Lambda 代理集成中获取 HTTP 标头“Content-Length”

我需要构建一个函数,该函数采用 5 个特定的 HTTP 标头 + 请求参数,对它们进行聚合、排序、编码,然后对它们进行哈希处理,以便验证/验证整个请求。但是,我无法将标头“Content-Length”传递给 lambda。

我使用 Terraform 创建 API 网关 (aws_api_gateway_domain_name),然后使用 Serverless 创建端点:

functions:
  alerts:
    handler: src/event.handler
    role: arn:aws:iam::${env:AWS_ACCOUNT_ID}:role/alerts_lambda
    environment:
      API_TRANS_KEY: ${env:API_TRANS_KEY}
      REGION: ${self:custom.region}
      SNS_ARN: arn:aws:sns:us-east-1:${env:AWS_ACCOUNT_ID}:Transactions
      STAGE: ${self:custom.deploymentStage}
    events:
      - http:
          path: /alerts/AccountEvent
          method: post
          cors: true
          integration: lambda-proxy
Run Code Online (Sandbox Code Playgroud)

但是我得到的标题是:

    "headers": {
        "Accept": "*/*",
        "accept-encoding": "gzip, deflate",
        "Cache-Control": "no-cache",
        "CloudFront-Forwarded-Proto": "https",
        "CloudFront-Is-Desktop-Viewer": "true",
        "CloudFront-Is-Mobile-Viewer": "false",
        "CloudFront-Is-SmartTV-Viewer": "false",
        "CloudFront-Is-Tablet-Viewer": "false",
        "CloudFront-Viewer-Country": "US",
        "Content-Type": "application/x-www-form-urlencoded",
        "Date": "20170504:141752UTC",
        "Encryption-Type": "HMAC-SHA256",
        "Host": "events.dev.myapi.com",
        "Postman-Token": "84bd0cc3-f339-4b2a-8017-31ec9174c37e",
        "User-Agent": "PostmanRuntime/7.11.0",
        "User-ID": "galileo",
        "Via": "1.1 …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services aws-lambda aws-api-gateway

4
推荐指数
1
解决办法
3330
查看次数