使用 CodePipeline 从单个 CloudFormation 模板批量创建资源

Create Resource in Bulk from Single CloudFormation Template with CodePipeline

我必须同时从单个 cloudformation 堆栈创建多个 IAM 用户。

因为 Cloudformation 不支持循环。我创建了一个代码管道,用于部署存储在 AWS CodeCommit 中的 cloudformation 模板。

我可以使用代码管道的参数覆盖功能来创建多个用户,例如在列表中提供参数:

{
   "Username":["Bob","Alice","John"]
}

你应该这样做,但如果你不留下已有的,我相信它会放弃以前的。您可以将自定义资源绑定到 Lambda 函数,然后您的 Lambda 函数可以 "not" 删除以前的资源。

您将需要在 CodeCommit 和 CloudFormation 操作之间执行操作以生成包含每个 IAM 用户资源的模板(除非您计划提交扩展的 CloudFormation 模板)。 CodeBuild 可能是 运行 一些生成 CoudFormation 模板的命令的最佳选择。

您可能会发现 CDK (https://github.com/awslabs/aws-cdk/) 对于这样的用例很有趣。它会让您在一个循环中描述 IAM 用户,然后合成一个 CoudFormation 寺庙。在撰写此答案时它处于预览状态,因此请勿依赖它进行生产。