【发布时间】:2019-02-23 21:56:46
【问题描述】:
我有两个 Cloudformation 堆栈。其中之一定义了 Dynamodb。
我希望第二个堆栈使用第一个堆栈中引用的 Dynamodb。第二个堆栈有一个 Lambda 函数,它将从堆栈 1 接收 dynamodb 流。
我应该如何将 dynamodb 从一个堆栈导出和导入到另一个堆栈以供 Lambda 流使用?
【问题讨论】:
标签: aws-lambda amazon-cloudformation
我有两个 Cloudformation 堆栈。其中之一定义了 Dynamodb。
我希望第二个堆栈使用第一个堆栈中引用的 Dynamodb。第二个堆栈有一个 Lambda 函数,它将从堆栈 1 接收 dynamodb 流。
我应该如何将 dynamodb 从一个堆栈导出和导入到另一个堆栈以供 Lambda 流使用?
【问题讨论】:
标签: aws-lambda amazon-cloudformation
在 DynamoDB 表堆栈中,导出表的 StreamArn 属性。使用它作为 EventSourceArn 的值在您的 Lambda 堆栈中定义 EventSourceMapping 资源。
# DynamoDB stack
Resources:
Table:
Type: AWS::DynamoDB::Table
Properties:
StreamSpecification: NEW_AND_OLD_IMAGES
# etc.
Outputs:
TableStreamArn:
Value: !GetAtt Table.StreamArn
Export:
Name: StreamArn
# Lambda stack
Resources:
Function:
Type: AWS::Lambda::Function
# etc.
EventMapping:
Type: AWS::Lambda::EventSourceMapping
Properties:
EventSourceArn: !ImportValue StreamArn
FunctionName: !GetAtt Function.Arn
# etc.
您也可以反过来做 - 将 Lambda 函数 ARN 导入 DynamoDB 堆栈并在那里定义事件映射,但这对我来说不太合乎逻辑。
【讨论】: