我们有一个用于创建 MS SQL Server 数据库的 cloudformation 脚本。
我们运行一个 lambda 函数来从 S3 加载架构并针对我们新创建的数据库运行它。
在运行之前,我们必须使用新的数据库安全组/VPC 更新 Lambda 函数。我们现在正在使用“测试”模式手动运行它。
是否可以从cloudformation脚本自动运行Lambda函数?
似乎最大的问题是将安全组/VPC 添加到 Lambda 函数,但也许我们可以在 cloudformation 脚本中创建 Lambda 函数并同时分配安全性。
最佳答案
是的,可以从 CloudFormation 模板自动调用 Lambda 函数。实现此目的的最佳方法是创建 Custom Resource它在创建/更新/删除自定义资源时执行您的 Lambda 函数。 (向您的 Lambda 函数添加一个条件,以便仅在 event.RequestType == 'Create'
时执行您所需的逻辑)。
如果您使用 AWS::Lambda::Function
创建 Lambda 函数资源,可以指定VpcConfig
属性来配置 SecurityGroupIds
和 SubnetIds
与 Lambda 函数关联以访问您的数据库。
另请注意 Configuring a Lambda function for Amazon VPC Access 所需的其他注意事项。使用自定义资源还需要出站 Internet Access for Lambda Functions ,或 VPC Endpoint允许 Lambda 函数将回调响应发送到 cloudformation-custom-resource-response-[region]
S3 存储桶。
关于lambda - 您可以使用 Lambda 在通过 Cloudformation 创建的 RDS 上创建架构吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42015394/