16

/customer/{customerId}AWS Lambda を使用して顧客にクエリを実行するために、GETリクエストのパス パラメータを使用したいと考えています。

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}にある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"
    }
  }
}
于 2016-08-23T10:08:20.470 に答える