您可以使用 Lambda 在使用 Cloudformation 创建的 RDS 上创建架构吗?

Can you create Schema on RDS created with Cloudformation Using Lambda?

我们有一个 cloudfromation 脚本来创建我们的 MS SQL 服务器数据库。

我们有一个 lambda 函数,我们 运行 从 S3 加载架构并 运行 它针对我们新创建的数据库。

在 运行 之前,我们必须使用新的数据库安全性 group/VPCs 更新 Lambda 函数。我们现在正在使用 "test" 模式手动 运行 设置它。

是否可以从 cloudformation 脚本中自动 运行 Lambda 函数?

似乎最大的问题是向 Lambda 函数添​​加安全性 groups/VPC,但也许我们可以在 cloudformation 脚本中创建 Lambda 函数并同时分配安全性。

是的,可以从 CloudFormation 模板自动调用 Lambda 函数。实现此目的的最佳方法是创建一个 Custom Resource,它在自定义资源为 created/updated/deleted 时执行您的 Lambda 函数。 (向您的 Lambda 函数添​​加一个条件,以便仅在 event.RequestType == 'Create' 时执行您想要的逻辑)。

如果您使用与 Lambda 函数关联的 AWS::Lambda::Function Resource, you can specify the VpcConfig property to configure the SecurityGroupIds and SubnetIds 创建 Lambda 函数来访问您的数据库。

另请注意 Configuring a Lambda function for Amazon VPC Access. Using a Custom Resource will also require either outbound Internet Access for Lambda Functions, or a VPC Endpoint 允许 Lambda 函数将回调响应发送到 cloudformation-custom-resource-response-[region] S3 存储桶所需的其他注意事项。