16

我想使用GET/customer/{customerId}请求的路径参数来使用 AWS Lambda 查询客户:

functions:
  createCustomer:
    handler: handler.createCustomer
    events:
    - http:
        path: customer
        method: post
  readCustomer:
    handler: handler.readCustomer
    events:
    - http:
        path: customer
        method: get

我必须如何定义路径参数才能使用无服务器框架 1.0将其传递给我的 AWS Lambda 函数?

4

3 回答 3

41

在 serverless.yml 中定义

readCustomer:
  handler: handler.readCustomer
  events:
    - http:
        path: customer/{customerId}
        method: get

customerId代码访问

const customerId = event.pathParameters.customerId;
于 2017-03-15T22:54:53.037 回答
3

更改路径名称

path: customer/{customerId}

更改您的 handler.js 文件

module.exports.createCustomer= function(event, context) {

{ message: 'Go Serverless v1.0! Your function executed successfully!', event }

// you can write your logic here


};
于 2016-08-23T09:44:42.817 回答
-3

# 解决方案

  1. 定义路径参数 - 例如 customerId - in serverless.yml

path: customer/customerId

  1. 在 API Gateway 中,在您的 API 下/customer/{customerId}转到集成请求并创建一个新的正文映射模板,该模板响应application/json并具有以下内容:

{ "customerId": "$input.params('customerId')" }

现在,路径参数 customerId 作为您的 JSON 事件传递给 AWS Lambda 函数:

{
  "input": "{\"customerId\":\"marcel@example.com\"}",
  "response": {
    "Item": {
      "password": "abc#123",
      "email": "marcel@example.com"
    }
  }
}
于 2016-08-23T10:08:20.470 回答