我正在尝试在CFT中创建自定义资源,该资源将在创建所述模板时运行lambda函数。我看过有关Lambda支持的自定义资源的AWS文档,但是由于该文档不是特别冗长,因此我对该主题仍然有些困惑。我已经为自定义资源包括了JSON,我只是想知道是否还有其他事情要做,以确保该资源在创建模板时会调用函数。
"LambdaRunner": {
"Type": "AWS::CloudFormation::CustomResource",
"Properties": {
"ServiceToken": {
"Fn::GetAtt": [
"DistroDBPop",
"Arn"
]
}
}
注意:它引用的Lambda函数从S3资源中获取CSV,并使用该信息来创建和填充DynamoDB表。
答案 0 :(得分:0)
假设CloudFormation模板包含一个名为DistroDBPop
的Lambda函数,就看来调用该函数就足够了。
如果您查看Walkthrough: Looking Up Amazon Machine Image IDs - AWS CloudFormation,将会发现还需要其他几个元素:
在以下位置有一些很好的Lambda示例代码:stelligent/cloudformation-custom-resources - GitHub
还有一个cfnresponse
模块,可以使Lambda函数结尾处的回调更加容易。参见:AWS Lambda Function Code - AWS CloudFormation
最后,确保Lambda函数理解可以在堆栈的创建,更新和删除时调用它,因此除非它们是相关的,否则它可能需要“忽略”某些事件。