无服务器 dynamodb 流和触发器
serverless dynamodb streams and triggers
我到处搜索,但终究无法使用无服务器来设置 dynamodb 触发器。
我用过:
- stream:
type: dynamodb
batchSize: 100
enabled: true
arn:
Fn::GetAtt:
- MyDynamoDbTable
- StreamArn
我尝试了一个硬编码的 arn,但我在 aws 控制台中看不到任何发生的事情。我是无服务器的新手。如果您有任何指示,请 post。
events:
- stream: arn:aws:dynamodb:us-west-2:xxxxxx:table/tableName/stream/2018-04-19T16:40:37.833
这是在 dynamodb 上创建触发器的正确方法
有关如何在 serverless.yml
中配置 dynamodb 流的示例
functions:
dynamodb-trigger:
handler: yourfunction.handler
events:
- stream:
type: dynamodb
batchSize: 1
startingPosition: LATEST
arn:
Fn::GetAtt:
- MyDynamoDbTable
- StreamArn
iamRoleStatements:
- Effect: Allow
Action:
- dynamodb:ListStreams
- dynamodb:DescribeTable
- dynamodb:UpdateItem
- dynamodb:GetItem
Resource:
- "Fn::Join": ["", ["arn:aws:dynamodb:" , {"Ref": "AWS::Region"}, ":", {"Ref": "AWS::AccountId"} , ":table/${self:provider.environment.MFA_DYNAMODB_TABLE}"] ]
resources:
Resources:
MyDynamoDbTable:
Type: 'AWS::DynamoDB::Table'
DeletionPolicy: Delete
Properties:
AttributeDefinitions:
-
AttributeName: id
AttributeType: S
KeySchema:
-
AttributeName: id
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
TableName: ${self:provider.environment.MFA_DYNAMODB_TABLE}
StreamSpecification:
StreamViewType: NEW_IMAGE
我们遇到了同样的问题。答案基本上是你不能。或者更准确地说,您每次都必须销毁 Dynamo DB table。我们构建了这个插件,允许您将其连接起来。 https://www.npmjs.com/package/serverless-dynamo-stream-plugin。
我们的团队根据项目通过 ansible 或 terraform 创建 Dynamo DB tables,然后我们使用这个插件将它们连接在一起。
我们通过 github 上的开源存储库维护此功能,因此如果您有任何问题或建议,可以在这里或那里给我发消息。希望这会有所帮助,因为我们现在正在我们的生产代码库中使用它。
我到处搜索,但终究无法使用无服务器来设置 dynamodb 触发器。
我用过:
- stream:
type: dynamodb
batchSize: 100
enabled: true
arn:
Fn::GetAtt:
- MyDynamoDbTable
- StreamArn
我尝试了一个硬编码的 arn,但我在 aws 控制台中看不到任何发生的事情。我是无服务器的新手。如果您有任何指示,请 post。
events:
- stream: arn:aws:dynamodb:us-west-2:xxxxxx:table/tableName/stream/2018-04-19T16:40:37.833
这是在 dynamodb 上创建触发器的正确方法
有关如何在 serverless.yml
中配置 dynamodb 流的示例 functions:
dynamodb-trigger:
handler: yourfunction.handler
events:
- stream:
type: dynamodb
batchSize: 1
startingPosition: LATEST
arn:
Fn::GetAtt:
- MyDynamoDbTable
- StreamArn
iamRoleStatements:
- Effect: Allow
Action:
- dynamodb:ListStreams
- dynamodb:DescribeTable
- dynamodb:UpdateItem
- dynamodb:GetItem
Resource:
- "Fn::Join": ["", ["arn:aws:dynamodb:" , {"Ref": "AWS::Region"}, ":", {"Ref": "AWS::AccountId"} , ":table/${self:provider.environment.MFA_DYNAMODB_TABLE}"] ]
resources:
Resources:
MyDynamoDbTable:
Type: 'AWS::DynamoDB::Table'
DeletionPolicy: Delete
Properties:
AttributeDefinitions:
-
AttributeName: id
AttributeType: S
KeySchema:
-
AttributeName: id
KeyType: HASH
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
TableName: ${self:provider.environment.MFA_DYNAMODB_TABLE}
StreamSpecification:
StreamViewType: NEW_IMAGE
我们遇到了同样的问题。答案基本上是你不能。或者更准确地说,您每次都必须销毁 Dynamo DB table。我们构建了这个插件,允许您将其连接起来。 https://www.npmjs.com/package/serverless-dynamo-stream-plugin。
我们的团队根据项目通过 ansible 或 terraform 创建 Dynamo DB tables,然后我们使用这个插件将它们连接在一起。
我们通过 github 上的开源存储库维护此功能,因此如果您有任何问题或建议,可以在这里或那里给我发消息。希望这会有所帮助,因为我们现在正在我们的生产代码库中使用它。