我使用s3存储桶部署了一个模板。我注意到'Logical ID'字段是资源名称,但'Physical ID'字段的格式为 - 。有没有办法覆盖这种行为?我需要能够指定一个确切的名称。我看过的每个地方都暗示我通过控制台完成它,但这对我来说毫无用处。我需要自动化。
任何人都可以帮助我吗?
答案 0 :(得分:0)
我一直在反对同样的问题。我知道 可以在使用Ruby SDK for AWS创建资源时设置资源的物理名称。我们使用此功能,因此我们可以根据环境和服务器角色拆除/创建具有已知且稳定的物理名称的ELB,并且后端节点可以在部署时通过查找与其自己的环境和角色相对应的ELB来自动加入。
但是,在使用CloudFormation时,某些资源(ELB,SG)会获取您指定的资源名称,并使用诸如stackID等内容对其进行前缀或后缀。这会使每个部署后的ELB名称始终不同,从而打破了上述系统
CloudFormation文档并不坏,但它似乎缺少很多边缘情况。我还没有发现是否可以设置物理名称。
适用于Ruby的AWS开发工具包非常易于使用 - 我以前没有Ruby的经验 - 但是发现部署/销毁资源很简单,所以如果你没有任何资源,你可能会发现这是一个可接受的解决方案CloudFormation现在很开心,但和我一样,需要一条自动路线。实际上,您可以使用Ruby SDK为您可以控制其名称的项触发CloudFormation堆栈,然后在Ruby SDK下完全创建其他项。
答案 1 :(得分:0)
是的,可以为几种资源设置自定义物理ID。 ELB就是其中之一。 ATM(2014年12月)这个资源支持自定义pysical id:
有关更多信息,请参阅http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html
要为S3-Bucket设置自定义名称,请设置属性BucketName
(http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-name)