0

我部署了一个带有s3存储桶的模板。我注意到'Logical ID'字段是资源名称,但'Physical ID'字段的格式是 - 。有没有办法来覆盖这种行为?我需要能够指定一个确切的名字。我看到的每个地方都表明我通过控制台,但对我来说这没用。我需要自动化。CloudFormation S3指定物理名称

任何人都可以帮助我吗?

+1

如果您正在寻找创建唯一标识符的方法,您可以将元数据添加到模板并使用DescribeStackResource进行访问。我相信物理名称不是可以修改的。 – EFeit

回答

0

我一直在反对相同的问题。我知道它当您使用Ruby SDK for AWS创建资源时,可以设置资源的物理名称。我们使用这种功能,因此我们可以根据环境和服务器角色拆除/创建具有已知和稳定物理名称的ELB,后端节点可​​以在部署时通过查找与其自身环境和角色相对应的ELB来自动加入。但是,当使用CloudFormation时,某些资源(ELB,SG)会采用您指定的资源名称,并为它加上前缀或后缀,比如stackID等。这会打破上述系统,因为每个ELB名称在每个名称后都不相同部署。

CloudFormation文档绝不是坏事,但它确实似乎缺少很多优势案例。我还没有发现是否可以设置物理名称。

适用于Ruby的AWS开发工具包非常易于使用 - 我没有以前的Ruby经验 - 但已经发现它可以直接部署/销毁资源,所以如果您还没有找到适合您的问题的解决方案现在任何CloudFormation快乐,但像我一样,需要一个自动化的路线。事实上,您可以使用Ruby SDK为您可以控制其名称的项目触发CloudFormation堆栈,然后在Ruby SDK下完全创建其他项目。

0

是的,可以为几种资源设置自定义物理ID。 ELB就是其中之一。 ATM(DEC/2014)这ressources支持自定义的身体属性标识:

  • AWS :: CloudWatch的警报::
  • AWS :: DynamoDB ::表
  • AWS :: ElasticBeanstalk ::应用
  • AWS :: ElasticBeanstalk ::环境
  • AWS :: ElasticLoadBalancing ::负载平衡器
  • AWS :: ElastiCache :: CacheCluster
  • AWS :: RDS :: dbinstance具备
  • AWS :: S3 ::桶
  • AWS :: SNS ::主题
  • AWS :: SQS ::队列

欲了解更多相关信息请参见http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html

要设置自定义名称S3-Bucket设置属性BucketNamehttp://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-name