0

I deployed a template with an s3 bucket. I noticed that the 'Logical ID' field is the resource name, but the 'Physical ID' field is in the format of --. Is there a way to override this behavior? I need to be able to specify an EXACT name. Everywhere Ive looked suggests that I make it through the console, but that's useless to me. I need automation.

Can anyone help me?

4

2 回答 2

0

是的,可以为几种资源设置自定义物理 ID。ELB 就是其中之一。ATM(2014 年 12 月)此资源支持自定义 pysical id:

  • AWS::CloudWatch::警报
  • AWS::DynamoDB::表
  • AWS::ElasticBeanstalk::应用程序
  • AWS::ElasticBeanstalk::环境
  • AWS::ElasticLoadBalancing::LoadBalancer
  • 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 设置自定义名称,请设置属性BucketName( http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket.html#cfn-s3-bucket-name )

于 2014-12-01T09:22:10.497 回答
0

我一直在遇到同样的问题。我知道可以在使用 Ruby SDK for AWS 创建资源时设置它的物理名称。我们使用此功能,因此我们可以根据环境和服务器角色拆除/创建具有已知和稳定物理名称的 ELB,并且后端节点可​​以通过查找与自己的环境和角色对应的 ELB 在部署时自动加入。

但是,在使用 CloudFormation 时,某些资源(ELB、SG)采用您指定的资源名称并为其添加前缀或后缀,例如 stackID 等。这会破坏上述系统,因为 ELB 名称在每次部署后总是不同的。

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

适用于 Ruby 的 AWS 开发工具包非常易于使用 - 我之前没有 Ruby 的经验 - 但发现部署/销毁资源很简单,因此如果您没有任何 CloudFormation 乐趣,您可能会发现这是一个可以接受的解决您的问题的方法现在但是,像我一样,需要一条自动路线。事实上,您可以使用 Ruby SDK 为您可以控制其名称的项目触发 CloudFormation 堆栈,然后在 Ruby SDK 下完全创建其他项目。

于 2013-09-27T08:57:15.143 回答