AWS Cloudformation - 参考标签

AWS Cloudformation - reference tag

我一直在考虑迁移到 CF 以获得更精简的基础架构和代码部署,但我遇到了障碍。 我正在寻找将存储在 s3 上的 Web 代码部署到一组 iis Web 服务器。我希望能够通过更改自动缩放组中的标签来升级代码库,但我无法找到一种方法来 "read" 将分配给 ec2 实例以供使用的标签AWS::CloudFormation::Init。 这里的理论是,我们不必在每次滚动版本或回滚时更新 CF,只需更新自动缩放组上的标签(然后按比例放大和缩小以触发 ec2 实例重建)

即(显然 "Ref" 不是去这里的正确方法)

"sources" : {
  "c:\inetpub\wwwroot\" :  { 
    "Fn::Join" : ["",[{"Ref": "S3_Repo"},{"Ref": "Codebase"},{"Ref":"Version"}, ".zip"  ]]  
  }
},

注意:静态路径在这里工作正常,如果我定义 S3_Repo、代码库和版本作为参数,那也工作正常。

CloudFormation 不提供从 EC2 实例读取标签的方法 - 它只允许您设置标签。

我建议仅使用 Auto Scaling 组的新标签值更新 CloudFormation 堆栈,然后进行缩小和放大以使用更新的构建创建新的 EC2 实例(如您在问题中所建议的那样)。

在 CloudFormation 中更改 Auto Scaling 组的 "Tags" 属性 不会中断该组的操作 - 有关详细信息,请参阅文档 here