本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 Systems Manager 參數存放區取得純文字值
建立 CloudFormation 範本時,您可能想要使用儲存在 參數存放區中的純文字值。參數存放區是 的功能 AWS Systems Manager。如需參數存放區的簡介,請參閱 AWS Systems Manager 使用者指南 中的AWS Systems Manager 參數存放區。
若要使用範本中參數存放區的純文字值,請使用ssm
動態參考。此參考可讓您從 參數存放StringList
區中的 類型 參數String
或 存取值。
若要驗證要在堆疊操作中使用的ssm
動態參考版本,請為堆疊操作建立變更集。然後,在範本索引標籤上檢閱已處理的範本。如需詳細資訊,請參閱 建立變更集 和 檢視變更集。
使用ssm
動態參考時,請注意以下幾點重要事項:
-
CloudFormation 不支援動態參考上的偏離偵測。對於您尚未指定參數版本的
ssm
動態參考,建議您在 Systems Manager 中更新參數版本時,也對包含ssm
動態參考的任何堆疊執行堆疊更新操作,以擷取最新的參數版本。 -
若要在 CloudFormation 範本的
Parameters
區段中使用ssm
動態參考,您必須包含版本號碼。 CloudFormation 不允許您在本節中參考沒有版本號碼的參數存放區值。或者,您可以在範本中將 參數定義為 Systems Manager 參數類型。執行此操作時,您可以指定 Systems Manager 參數金鑰做為 參數的預設值。 然後, CloudFormation 會從 參數存放區擷取 參數值的最新版本,而不必指定版本編號。這可以讓您的範本更簡單易維護。如需詳細資訊,請參閱使用 CloudFormation提供的參數類型參考現有的資源和 Systems Manager 參數。 -
對於自訂資源, 會在將請求傳送至自訂資源之前 CloudFormation 解決
ssm
動態參考。 -
CloudFormation 不支援使用動態參考來參考從另一個 共用的參數 AWS 帳戶。
-
CloudFormation 不支援在動態參考中使用 Systems Manager 參數標籤。
許可
若要指定儲存在 Systems Manager 參數存放區中的參數,您必須具有呼叫 的許可 GetParameters 指定參數。若要了解如何建立提供特定 Systems Manager 參數存取權IAM的政策,請參閱 AWS Systems Manager 使用者指南中的使用IAM政策限制 Systems Manager 參數的存取權。
參考模式
若要參考儲存在範本中 Systems Manager 參數存放區的 CloudFormation純文字值,請使用下列ssm
參考模式。
{{resolve:ssm:
parameter-name
:version
}}
針對 parameter-name 和 version,您的參考必須遵守下列規則表達式模式:
{{resolve:ssm:[a-zA-Z0-9_.\-/]+(:\d+)?}}
parameter-name
-
參數存放區中的參數名稱。函數名稱區分大小寫。
必要。
version
-
整數,指定要使用的參數版本。如果您未指定確切版本, 會在您建立或更新堆疊時, CloudFormation 使用最新版本的 參數。如需詳細資訊,請參閱 AWS Systems Manager 使用者指南 中的使用參數版本。
選用。
範例
下列範例會建立EC2啟動範本,參考儲存在 參數存放區中的自訂 AMI ID。動態參考會從版本擷取 AMI ID
的2
參數。golden-ami
JSON
{ "Resources": { "MyLaunchTemplate": { "Type": "AWS::EC2::LaunchTemplate", "Properties": { "LaunchTemplateName": { "Fn::Sub": "${AWS::StackName}-launch-template" }, "LaunchTemplateData": { "ImageId": "{{resolve:ssm:
golden-ami:2
}}", "InstanceType": "t2.micro" } } } } }
YAML
Resources: MyLaunchTemplate: Type: AWS::EC2::LaunchTemplate Properties: LaunchTemplateName: !Sub ${AWS::StackName}-launch-template LaunchTemplateData: ImageId: '{{resolve:ssm:
golden-ami:2
}}' InstanceType: t2.micro