以下の記事などが投稿された頃にはできなかった
「eventsでFn::GetAttを使ってDynamoDBのstreamsと紐付ける」
が今はできるようになっている。
serverless frameworkでDynamoDBとLambdaのイベントを関連付ける
Serverless Frameworkでやったことをまとめてみた
PR #3111で対応したっぽいのでバージョン1.9以降なら使える。
上記のPRやDocsに記述されているように、以下のように定義する
functions:
Hello:
handler: handler.hello
events:
- stream:
type: dynamodb
arn:
Fn::GetAtt:
- MyDynamoDbTable
- StreamArn
# ...
resources:
Resources:
MyDynamoDbTable:
Type: "AWS::DynamoDB::Table"
Properties:
TableName: my-table
AttributeDefinitions:
- AttributeName: id
AttributeType: N
KeySchema:
- AttributeName: id
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
StreamSpecification:
StreamViewType: NEW_AND_OLD_IMAGES