我一直在考虑转向CF以获得更精简的基础架构和代码部署,但我遇到了障碍。 我希望将存储在s3上的Web代码部署到iis Web服务器团队。我希望能够通过更改自动缩放组中的代码来升级代码库,但我无法找到方法来阅读"将分配给ec2实例的标记,以便在AWS :: CloudFormation :: Init中使用。 这里的理论是,每当我们滚动版本或回滚时,我们都不必更新CF,只需要自动缩放组上的标签(然后按比例放大并缩小以触发ec2实例到重建)
即。 (显然"参考"不是正确的方式去这里)
"sources" : {
"c:\\inetpub\\wwwroot\\" : {
"Fn::Join" : ["",[{"Ref": "S3_Repo"},{"Ref": "Codebase"},{"Ref":"Version"}, ".zip" ]]
}
},
注意:静态路径在这里工作正常,如果我将S3_Repo,Codebase和Version定义为参数,那也可以正常工作。
答案 0 :(得分:0)
CloudFormation不提供从EC2实例读取标记的方法 - 它只允许您设置它们。
我建议只使用Auto Scaling Group的新标记值更新CloudFormation Stack,然后进行缩小并向上扩展以使用更新的版本创建新的EC2实例(如您在问题中所建议的那样)。
在CloudFormation中更改Auto Scaling组的“Tags”属性不会中断该组的操作 - 有关详细信息,请参阅文档here。