在无服务器框架 1.0 中使用路径参数
Use path params in serverless framework 1.0
我想使用 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 函数?
更改路径名
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
};
#解法
- 定义路径参数 - 例如 customerId - 在
serverless.yml
:
path: customer/customerId
- 在 API 网关中,在您的 API
/customer/{customerId}
下转到 Integration Request 并创建一个新的 Body Mapping响应 application/json
并具有以下内容的模板:
{ "customerId": "$input.params('customerId')" }
现在,路径参数 customerId 作为您的 JSON 事件传递给 AWS Lambda 函数:
{
"input": "{\"customerId\":\"marcel@example.com\"}",
"response": {
"Item": {
"password": "abc#123",
"email": "marcel@example.com"
}
}
}
在serverless.yml
中定义
readCustomer:
handler: handler.readCustomer
events:
- http:
path: customer/{customerId}
method: get
在代码
中访问customerId
const customerId = event.pathParameters.customerId;
我想使用 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 函数?
更改路径名
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
};
#解法
- 定义路径参数 - 例如 customerId - 在
serverless.yml
:
path: customer/customerId
- 在 API 网关中,在您的 API
/customer/{customerId}
下转到 Integration Request 并创建一个新的 Body Mapping响应application/json
并具有以下内容的模板:
{ "customerId": "$input.params('customerId')" }
现在,路径参数 customerId 作为您的 JSON 事件传递给 AWS Lambda 函数:
{
"input": "{\"customerId\":\"marcel@example.com\"}",
"response": {
"Item": {
"password": "abc#123",
"email": "marcel@example.com"
}
}
}
在serverless.yml
中定义readCustomer:
handler: handler.readCustomer
events:
- http:
path: customer/{customerId}
method: get
在代码
中访问customerId
const customerId = event.pathParameters.customerId;