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