クラウド形成テンプレートを使用してラムダ関数イベントに(パス)パラメーターを追加するにはどうすればよいですか?
奇妙な使用:
DeleteItem:
Type: Api
Properties:
Path: /item/{id}
Method: delete
Request:
Parameters:
Paths:
id: true
aws-sam-cliを使用して動作します。ただし、クラウドフォーメーションを使用してデプロイしようとすると、プロパティRequestが定義されていないと表示されます。このリクエストのアイデアは サーバーレスドキュメント から入手しましたが、ローカルでのみ機能するようです。テンプレートでこれを行う方法に関するドキュメントが見つからないため、助けていただければ幸いです。
サーバーレスフレームワークは、SAMとは異なる独自の構文を使用します(ただし、canはSAMまたは生のCloudFormationにコンパイルされます)。
SAM仕様を見つけることができます ここ 。
明示的ではありませんが、必要なのは{path-name}
構文を使用することだけです。 Request
/Parameters
を追加する必要はありません(またはサポートされていません)。
例えば:
Ratings:
Type: AWS::Serverless::Function
Properties:
Handler: ratings.handler
Runtime: python3.6
Events:
Api:
Type: Api
Properties:
Path: /ratings/{id}
Method: get
あなたに次のようなイベントを提供します:
event.pathParameters.id == 'whatever-was-put-in-the-id-position'
(長い例はここにあります: https://github.com/1Strategy/redirect/blob/master/redirect.yaml )