我部署了一个带有 s3 存储桶的模板。我注意到“逻辑ID”字段是资源名称,但“物理ID”字段的格式为--。有没有办法覆盖这种行为?我需要能够指定一个确切的名称。我看过的所有地方都表明我是通过控制台完成的,但这对我来说毫无用处。我需要自动化。
有人可以帮助我吗?
最佳答案
我也遇到过同样的问题。我知道在使用适用于 AWS 的 Ruby SDK 创建资源时可以设置资源的物理名称。我们使用此功能,可以根据环境和服务器角色拆除/创建具有已知且稳定的物理名称的 ELB,并且后端节点可以在部署时通过查找与自己的环境和角色相对应的 ELB 来自动加入。
但是,在使用 CloudFormation 时,某些资源(ELB、SG)会采用您指定的资源名称,并使用 stackID 等前缀或后缀。这会破坏上述系统,因为 ELB 名称在每次部署后始终不同.
CloudFormation 文档一点也不差,但它似乎缺乏很多边缘情况。我还没有确定是否可以设置物理名称。
适用于 Ruby 的 AWS 开发工具包非常易于使用 - 我之前没有 Ruby 经验 - 但发现部署/销毁资源非常简单,因此如果您没有任何资源,您可能会发现这是一个可以接受的解决方案。 CloudFormation 现在很高兴,但像我一样,需要一条自动化路线。事实上,您可以使用 Ruby SDK 为您可以控制名称的项目触发 CloudFormation 堆栈,然后完全在 Ruby SDK 下创建其他项目。
关于amazon-web-services - CloudFormation S3 指定物理名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16070693/