本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS CloudFormation 擷取範例:定義資源
使用 AMS AWS CloudFormation 擷取時,您可以自訂 CloudFormation 範本,並使用 CloudFormation 擷取變更類型 (ct-36cn2avfrrj9v) 將其提交至 RFC 中的 AMS。若要建立可多次重複使用的 CloudFormation 範本,請將堆疊組態參數新增至 CloudFormation 擷取變更類型執行輸入,而不是在 CloudFormation 範本中硬式編碼。最大的好處是您可以重複使用範本。
AMS CloudFormation 擷取變更類型輸入結構描述可讓您在 CloudFormation 範本中選擇最多 60 個參數,並提供自訂值。
此範例說明如何定義資源屬性,可用於各種 CloudFormation 範本,做為 AMS CloudFormation 擷取 CT 中的參數。本節中的範例特別顯示 SNS 主題用量。
主題
範例 1:硬式程式碼 the AWS CloudFormation SNSTopic 資源TopicName屬性
在此範例中,您會硬式編碼 CloudFormation 範本中的 AWS CloudFormation SNSTopic 資源TopicName屬性。請注意, Parameters區段為空白。
若要讓 CloudFormation 範本允許您變更新堆疊的 SNSTopic 名稱值,而不必建立新的 CloudFormation 範本,您可以使用 CloudFormation 擷取變更類型的 AMS Parameters區段來建立該組態。透過這樣做,您稍後會使用相同的 CloudFormation 範本來建立具有不同SNSTopic名稱的新堆疊。
{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "My SNS Topic", "Parameters" : { }, "Resources" : { "SNSTopic" : { "Type" : "AWS::SNS::Topic", "Properties" : { "TopicName" : "MyTopicName" } } } }
範例 2:使用 SNSTopic 資源參考 AMS 變更類型中的參數
在此範例中,您可以使用 CloudFormation 範本中定義的SNSTopic資源TopicName屬性來參考 AMS 變更類型Parameter中的 。
{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "My SNS Topic", "Parameters" : { "TopicName" : { "Type" : "String", "Description" : "Topic ID", "Default" : "MyTopicName" } }, "Resources" : { "SNSTopic" : { "Type" : "AWS::SNS::Topic", "Properties" : { "TopicName" : { "Ref" : "TopicName"} } } } }
範例 3:使用 AMS 擷取變更類型提交 JSON 執行參數檔案來建立 SNS 主題
在此範例中,您會使用建立 SNS 主題 的 AMS 擷取 CT 來提交 JSON 執行參數檔案TopicName。SNS 主題必須以此範例中所示的可修改方式在 CloudFormation 範本中定義。
{ "Name": "cfn-ingest", "Description": "CFNIngest Web Application Stack", "CloudFormationTemplateS3Endpoint": "$S3_PRESIGNED_URL", "VpcId": "VPC_ID", "Tags": [ {"Key": "Enviroment Type", "Value": "Dev"} ], "Parameters": [ {"Name": "TopicName", "Value": "MyTopic1"} ], "TimeoutInMinutes": 60 }
範例 4:提交參考相同 CloudFormation 範本的新變更類型
此 JSON 範例會變更 SNS TopicName值,而不變更 CloudFormation 範本。反之,您會提交新的部署 | 擷取 | CloudFormation 範本的堆疊 | 建立參考相同 CFN 範本的變更類型。
{ "Name": "cfn-ingest", "Description": "CFNIngest Web Application Stack", "CloudFormationTemplateS3Endpoint": "$S3_PRESIGNED_URL", "VpcId": "VPC_ID", "Tags": [ {"Key": "Enviroment Type", "Value": "Dev"} ], "Parameters": [ {"Name": "TopicName", "Value": "MyTopic2"} ], "TimeoutInMinutes": 60 }
範例 5:使用 CloudFormation 範本中的預設參數值
在此範例中,建立 SNS TopicName = 'MyTopicName',因為Parameters執行參數中未提供任何TopicName值。如果您不提供Parameters定義,則會使用 CloudFormation 範本中的預設參數值。
{ "Name": "cfn-ingest", "Description": "CFNIngest Web Application Stack", "CloudFormationTemplateS3Endpoint": "$S3_PRESIGNED_URL", "VpcId": "VPC_ID", "Tags": [ {"Key": "Enviroment Type", "Value": "Dev"} ], "TimeoutInMinutes": 60 }