參數 - AWS CloudFormation

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

參數

使用選用的 Parameters 區段自訂您的範本。參數可讓您在每次建立或更新堆疊時將自訂值輸入至您的範本。

定義範本中的參數

下列範例宣告名為 InstanceTypeParameter 的參數。此參數可讓您指定堆疊的 Amazon EC2 執行個體類型,以在建立或更新堆疊時使用。

請注意,InstanceTypeParameter 的預設值為 t2.micro。除非提供其他值,否則這是 AWS CloudFormation 用來佈建堆疊的值。

JSON

"Parameters" : { "InstanceTypeParameter" : { "Type" : "String", "Default" : "t2.micro", "AllowedValues" : ["t2.micro", "m1.small", "m1.large"], "Description" : "Enter t2.micro, m1.small, or m1.large. Default is t2.micro." } }

YAML

Parameters: InstanceTypeParameter: Type: String Default: t2.micro AllowedValues: - t2.micro - m1.small - m1.large Description: Enter t2.micro, m1.small, or m1.large. Default is t2.micro.

在範本內參考參數

您可以使用Ref內建函式來參考參數,並 AWS CloudFormation 使用參數的值來佈建堆疊。您可以參考相同範本之 ResourcesOutputs 區段中的參數。

在下列範例中,EC2 執行個體資源的 InstanceType 屬性參考 InstanceTypeParameter 參數值:

JSON

"Ec2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "InstanceType" : { "Ref" : "InstanceTypeParameter" }, "ImageId" : "ami-0ff8a91507f77f867" } }

YAML

Ec2Instance: Type: AWS::EC2::Instance Properties: InstanceType: Ref: InstanceTypeParameter ImageId: ami-0ff8a91507f77f867

參數的一般要求

以下是使用參數時適用的要求:

  • AWS CloudFormation 範本中最多可以有 200 個參數。

  • 每個參數都必須獲指定邏輯名稱 (也稱為邏輯 ID),其必須為英數字元,而且在範本的所有邏輯名稱之間必須是唯一的。

  • 必須為每個參數指定支援的參數類型 AWS CloudFormation。如需詳細資訊,請參閱類型

  • 每個參數都必須在執行階段指派值, AWS CloudFormation 才能成功佈建堆疊。除非提供其他值,否則您可以選擇性地指定 AWS CloudFormation 要使用的預設值。

  • 參數必須在相同的範本內宣告和參考。您可以參考範本之 ResourcesOutputs 區段中的參數。

JSON

"Parameters" : { "ParameterLogicalID" : { "Type" : "DataType", "ParameterProperty" : "value" } }

YAML

Parameters: ParameterLogicalID: Type: DataType ParameterProperty: value

屬性

AllowedPattern

規則表達式,代表 StringCommaDelimitedList 類型允許的模式。當套用於類型 String 參數時,模式必須匹配提供的整個參數值。當套用於類型 CommaDelimitedList 參數時,模式必須匹配清單中的每個值。

必要:否

AllowedValues

陣列,包含參數的允許值清單。當套用於類型 String 參數時,參數值必須是允許值之一。當套用於類型 CommaDelimitedList 參數時,清單中的每個值必須是指定的允許值之一。

必要:否

注意

如果您使用 YAML,並且想要將 YesNo 字串用於 AllowedValues,請使用單引號來防止 YAML 剖析器考慮這些布林值。

ConstraintDescription

字串,說明違反限制時的限制。例如,具有允許模式 [A-Za-z0-9]+ 的參數會在使用者指定無效值時顯示下列錯誤訊息,但沒有限制描述:

Malformed input-Parameter MyParameter must match pattern [A-Za-z0-9]+

透過新增限制描述,例如只能包含字母 (大寫和小寫) 及數字,您可以顯示下列自訂錯誤訊息:

Malformed input-Parameter MyParameter must only contain uppercase and lowercase letters and numbers

必要:否

Default

建立堆疊時,範本要在未指定值時使用的適當類型值。如果您定義參數的限制,則必須指定遵循這些限制的值。

必要:否

Description

多達 4000 個字元的字串,可說明參數。

必要:否

MaxLength

整數值,決定您想要針對 String 類型允許的最大字元數。

必要:否

MaxValue

數值,決定您想要針對 Number 類型允許的最大數值。

必要:否

MinLength

整數值,決定您想要針對 String 類型允許的最小字元數。

必要:否

MinValue

數值,決定您想要針對 Number 類型允許的最小數值。

必要:否

NoEcho

是否遮罩參數值以防止其在主控台、命令列工具或 API 中顯示。如果將NoEcho屬性設定為true,則會針對描述堆疊或堆疊事件的任何呼叫 CloudFormation 傳回遮罩為星號 (*****) 的參數值,但儲存在以下指定位置的資訊除外。

必要:否

重要

使用 NoEcho 屬性不會遮罩任何儲存在下列資訊中的資訊:

  • Metadata板部分。 CloudFormation 不會轉換、修改或密文Metadata章節中包含的任何資訊。如需詳細資訊,請參閱 中繼資料

  • Outputs 範本區段。如需詳細資訊,請參閱 輸出

  • 資源定義的 Metadata 屬性。如需詳細資訊,請參閱 Metadata 屬性

我們強烈建議您不要使用這些機制來包含敏感資訊,例如密碼或秘密。

重要

我們建議您使用堆疊 CloudFormation 範本中的動態參數來參照儲存和管理之外的敏感資訊 (例如 CloudFormation,在 Par AWS Systems Manager ameter Store 或) 中,而不是直接將敏感資訊嵌入範本中 AWS Secrets Manager。

如需詳細資訊,請參閱最請勿在您的範本中內嵌憑證佳做法。

重要

強烈建議不要在作為資源主要識別碼一部分的資源屬性中包含 NoEcho 參數或任何敏感資料。

NoEcho參數包含在構成主資源標識符的屬性中時, CloudFormation 可以在主要資源標識符中使用實際的純文本值。此資源 ID 可能會出現在任何衍生輸出或目的地中。

若要判斷哪些資源属性組成資源類型的主要識別碼,請參閱該資源的資源參考文件。在 Return values (傳回值) 區段中,Ref 函數傳回值表示組成資源類型主要識別碼的資源屬性。

Type

參數的資料類型 (DataType)。

必要:是

AWS CloudFormation 支援下列參數類型:

String

常值字串。

例如,使用者可以指定 "MyUserName"

Number

整數或浮點數。 AWS CloudFormation 將參數值驗證為數字;不過,當您在範本中的其他位置使用參數時 (例如,使用Ref內建函數),參數值會變成字串。

例如,使用者可以指定 "8888"

List<Number>

以逗號分隔的整數或浮點數陣列。 AWS CloudFormation 將參數值驗證為數字;不過,當您在範本中的其他位置使用參數時 (例如,使用Ref內建函數),參數值會變成字串清單。

例如,使用者可以指定 "80,20",而 Ref 會產生 ["80","20"]

CommaDelimitedList

以逗號分隔的常值字串陣列。字串總數應該比逗號總數多一個。此外,還會裁剪每個成員字串的空格。

例如,使用者可以指定 "test,dev,prod",而 Ref 會產生 ["test","dev","prod"]

AWS特定參數類型

AWS 像是 Amazon EC2 key pair 名稱和 VPC ID 等值。如需詳細資訊,請參閱 AWS特定參數類型

SSM 參數類型

對應至 Systems Manager 參數存放區中現有參數的參數。您可以指定「Systems Manager」參數鍵做為SSM參數值,並從「參數存放區」 AWS CloudFormation 擷取最新值以用於堆疊。如需詳細資訊,請參閱 SSM 參數類型

AWS特定參數類型

AWS特定參數類型有助於在開始建立或更新堆疊時截獲無效值。若要指定具有 AWS特定類型的參數,範本使用者必須輸入其 AWS 帳戶中的現有 AWS 值。 AWS CloudFormation 根據帳戶中的現有值驗證這些輸入值。例如,若是 AWS::EC2::VPC::Id 參數類型,使用者必須輸入現有 VPC ID,而此 ID 位於他們建立堆疊所在的帳戶和區域中。

如果您想要允許範本使用者輸入來自不同 AWS 帳戶的輸入值,請勿定義具有 AWS特定類型的參數;而是定義類型String或的參數CommaDelimitedList

支援的 AWS特定參數類型

AWS CloudFormation 支援下列 AWS特定類型:

AWS::EC2::AvailabilityZone::Name

可用區域,例如 us-west-2a

AWS::EC2::Image::Id

Amazon EC2 映像 ID,例如 ami-0ff8a91507f77f867。請注意, AWS CloudFormation 主控台不會顯示此參數類型的值下拉式清單。

AWS::EC2::Instance::Id

Amazon EC2 執行個體 ID,例如 i-1e731a32

AWS::EC2::KeyPair::KeyName

Amazon EC2 金鑰對名稱。

AWS::EC2::SecurityGroup::GroupName

EC2-Classic 或預設 VPC 安全群組名稱,例如 my-sg-abc

AWS::EC2::SecurityGroup::Id

安全群組 ID,例如 sg-a123fd85

AWS::EC2::Subnet::Id

子網路 ID,例如 subnet-123a351e

AWS::EC2::Volume::Id

Amazon EBS 磁碟區 ID,例如 vol-3cdd3f56

AWS::EC2::VPC::Id

VPC ID,例如 vpc-a123baa3

AWS::Route53::HostedZone::Id

Amazon Route 53 託管區域 ID,例如 Z23YXV4OVPL04A

List<AWS::EC2::AvailabilityZone::Name>

區域的可用區域陣列,例如 us-west-2a, us-west-2b

List<AWS::EC2::Image::Id>

Amazon EC2 映像 ID 陣列,例如 ami-0ff8a91507f77f867, ami-0a584ac55a7631c0c。請注意,主 AWS CloudFormation 控台不會顯示此參數類型值的下拉式清單。

List<AWS::EC2::Instance::Id>

Amazon EC2 執行個體 ID 陣列,例如 i-1e731a32, i-1e731a34

List<AWS::EC2::SecurityGroup::GroupName>

EC2-Classic 或預設 VPC 安全群組名稱陣列,例如 my-sg-abc, my-sg-def

List<AWS::EC2::SecurityGroup::Id>

安全群組 ID 陣列,例如 sg-a123fd85, sg-b456fd85

List<AWS::EC2::Subnet::Id>

子網路 ID 陣列,例如 subnet-123a351e, subnet-456b351e

List<AWS::EC2::Volume::Id>

Amazon EBS 磁碟區 ID 陣列,例如 vol-3cdd3f56, vol-4cdd3f56

List<AWS::EC2::VPC::Id>

VPC ID 陣列,例如 vpc-a123baa3, vpc-b456baa3

List<AWS::Route53::HostedZone::Id>

Amazon Route 53 託管區域 ID 陣列,例如 Z23YXV4OVPL04A, Z23YXV4OVPL04B

SSM 參數類型

SSM 參數類型對應於「Systems Manager 參數存放區」中的現有參數。您可以指定「Systems Manager」參數鍵做為SSM參數值,並從「參數存放區」 AWS CloudFormation 擷取最新值以用於堆疊。對於儲存在相同的 SSM 參數 AWS 帳戶,請輸入參數名稱。對於另一個人共用的 SSM 參數 AWS 帳戶,請輸入完整參數 ARN。若要取得有關 Systems Manager 參數的更多資訊,請參閱《使用指南》中的〈Systems Manager 理員參數倉庫〉和〈AWS Systems Manager 使用共用

您也可以使用 ssmssm-secure 動態參數模式,在範本中指定參數。如需詳細資訊,請參閱 使用動態參考來指定範本值

當您建立或更新堆疊並建立變更集時, AWS CloudFormation 會使用執行作業時存在於參數存放區中的任何值。如果呼叫者 AWS 帳戶下的參數存放區中不存在指定的參數,則會 AWS CloudFormation 傳回驗證錯誤。

當您執行變更集時, AWS CloudFormation 會使用變更集中指定的值。您應該先檢閱這些值,再執行變更集,因為它們可能會在您建立變更集與執行變更集之間於參數存放區中變更。

提示

您可以在主控台中堆疊的 Parameters (參數) 索引標籤上,或透過執行 describe-stacksdescribe-change-set,查看 SSM 參數的已解析值。這些值目前用於對應 Systems Manager 參數索引鍵的堆疊定義中。請注意,這些值是在建立或更新堆疊時所設定,因此可能會與參數存放區中的最新值不同。

如果您使用ssm-secure模式將安全字串指定為參數值,則 AWS CloudFormation 不會儲存安全字串值,也不會將其顯示在主控台或 API 呼叫結果中。

因為 SSM 參數的值是 Systems Manager 參數索引鍵,所以您應該會注意到下列行為:

  • 對於堆疊更新,主控台中的 [使用現有值] 選項,以及update-stack告知 AWS CloudFormation 使用現有 Systems Manager 參數金鑰的UsePreviousValue屬性,而不是其值。 AWS CloudFormation 始終在更新堆棧時從參數存儲中獲取最新值。

    但是,如果您使用 ssmssm-secure 動態參數模式來指定參數值,則必須指定供 AWS CloudFormation 使用的 Systems Manager 參數版本。

  • AWS CloudFormation 可以對 Systems Manager 參數鍵執行驗證,但不能對其對應的值執行驗證。針對驗證用途,您可以將參數索引鍵視為字串。您應該執行參數存放區中 Systems Manager 參數值的任何驗證。

如需使用 SSM 參數類型的範例,請參閱 SSM 參數類型

支援的 SSM 參數類型

AWS CloudFormation 支援下列SSM參數類型:

AWS::SSM::Parameter::Name

Systems Manager 參數索引鍵的名稱。

當您想要傳遞參數索引鍵時,請使用此參數。例如,您可以使用此類型來驗證參數已存在。

AWS::SSM::Parameter::Value<String>

值為字串的 Systems Manager 參數。這對應至參數存放區中的 String 參數類型。

AWS::SSM::Parameter::Value<List<String>>AWS::SSM::Parameter::Value<CommaDelimitedList>

值為字串清單的 Systems Manager 參數。這對應至參數存放區中的 StringList 參數類型。

AWS::SSM::Parameter::Value<AWS-specific parameter type>

其值為 AWS特定參數類型的 Systems Manager 參數。例如,以下指定 AWS::EC2::KeyPair::KeyName 類型:

AWS::SSM::Parameter::Value<AWS::EC2::KeyPair::KeyName>

AWS::SSM::Parameter::Value<List<AWS-specific parameter type>>

其值為 AWS特定參數類型清單的 Systems Manager 參數。例如,以下指定 AWS::EC2::KeyPair::KeyName 類型清單:

AWS::SSM::Parameter::Value<List<AWS::EC2::KeyPair::KeyName>>

不支援的 SSM 參數類型

AWS CloudFormation 不支援下列SSM參數類型:

  • SSM 參數類型清單 — 例如:List<AWS::SSM::Parameter::Value<String>>

此外, AWS CloudFormation 不支援將範本參數定義為「SecureStringSystems Manager」參數類型。不過,您可以使用動態參數模式,將安全字串指定為某些資源的參數。如需詳細資訊,請參閱 使用動態參考來指定範本值

在 AWS CloudFormation 主控台中群組和排序參數

當您使用 AWS CloudFormation 主控台建立或更新堆疊時,主控台會依其邏輯 ID 的字母順序列出輸入參數。若要覆寫預設排序,您可以使用 AWS::CloudFormation::Interface 中繼資料金鑰。透過群組和排序參數,可讓使用者更輕鬆地指定參數值。例如,您可以群組所有 VPC 相關參數,讓它們不會分散到整個字母清單。

在中繼資料金鑰中,您可以指定要建立的群組、每個群組中所要包含的參數,以及主控台顯示群組內每個參數的順序。您也可以定義易記參數名稱,讓主控台顯示描述性名稱,而非邏輯 ID。您在中繼資料金鑰中參考的所有參數都會宣告於範本的 Parameters 區段中。

如需詳細資訊與 AWS::CloudFormation::Interface 中繼資料金鑰的範例,請參閱 AWS::CloudFormation::Interface

範例

基本輸入參數

下列範例 Parameters 區段宣告兩個參數。DBPort 參數是預設值為 Number3306 類型。可指定的最小值為 1150,而可指定的最大值為 65535DBPwd 參數是沒有預設值的 String 類型。該NoEcho屬性設置true為防止描述堆棧調用(例如aws cloudformation describe-stacks AWS CLI 命令)返回參數值。可指定的最小長度為 1,而可指定的最大長度為 41。此模式允許大小寫字母字元和數字。

JSON

"Parameters" : { "DBPort" : { "Default" : "3306", "Description" : "TCP/IP port for the database", "Type" : "Number", "MinValue" : "1150", "MaxValue" : "65535" }, "DBPwd" : { "NoEcho" : "true", "Description" : "The database admin account password", "Type" : "String", "MinLength" : "1", "MaxLength" : "41", "AllowedPattern" : "^[a-zA-Z0-9]*$" } }

YAML

Parameters: DBPort: Default: 3306 Description: TCP/IP port for the database Type: Number MinValue: 1150 MaxValue: 65535 DBPwd: NoEcho: true Description: The database admin account password Type: String MinLength: 1 MaxLength: 41 AllowedPattern: ^[a-zA-Z0-9]*$

AWS特定參數類型

使用 AWS特定參數類型時,使用範本建立或更新堆疊的使用者必須指定使用者帳戶中和目前堆疊區域中的現有 AWS 值。 AWS特定參數類型有助於確保這些類型的輸入值存在且在 AWS CloudFormation 建立或更新任何資源之前是正確的。例如,如果您使用 AWS::EC2::KeyPair::KeyName 參數類型,則 AWS CloudFormation 會先根據使用者的現有金鑰對名稱來驗證輸入值,然後再建立任何資源 (例如 Amazon EC2 執行個體)。

如果使用者使用 AWS Management Console,則會使用有效值 AWS CloudFormation 預先填入 AWS特定參數類型。因此,使用者不需要記住和正確地輸入特定名稱或 ID。他們只會從下拉式清單中選擇一個或多個值。而且,根據參數類型,使用者可以依據 ID、名稱或 Name 標籤值來搜尋值。如需詳細資訊,請參閱 指定堆疊名稱和參數

下列範例宣告兩個類型為 AWS::EC2::KeyPair::KeyNameAWS::EC2::Subnet::Id 的參數。這些類型會將有效值限制為現有金鑰對名稱和子網路 ID。因為 mySubnetIDs 參數指定為清單,所以使用者可以指定一或多個子網路 ID。

JSON

"Parameters" : { "myKeyPair" : { "Description" : "Amazon EC2 Key Pair", "Type" : "AWS::EC2::KeyPair::KeyName" }, "mySubnetIDs" : { "Description" : "Subnet IDs", "Type" : "List<AWS::EC2::Subnet::Id>" } }

YAML

Parameters: myKeyPair: Description: Amazon EC2 Key Pair Type: "AWS::EC2::KeyPair::KeyName" mySubnetIDs: Description: Subnet IDs Type: "List<AWS::EC2::Subnet::Id>"

AWS CLI 和 API 支援

目前,使用者無法使用 AWS CLI 或 AWS CloudFormation API 來檢視 AWS特定參數的有效值清單。不過,他們可以使用 aws cloudformation get-template-summary 命令或 GetTemplateSummary API,以檢視每個參數的相關資訊 (例如參數類型)。

逗號分隔清單參數類型

您可以使用 CommaDelimitedList 參數類型,在單一參數中指定多個字串值。因此,您可以使用單一參數 (而非多個不同參數) 來指定多個值。例如,如果您建立具有專屬 CIDR 區塊的三個不同子網路,則可以使用三個不同的參數來指定三個不同的 CIDR 區塊。但是,它較為簡單,只需要使用採用三個 CIDR 區塊清單的單一參數,如下列程式碼片段所示:

JSON

"Parameters" : { "DbSubnetIpBlocks": { "Description": "Comma-delimited list of three CIDR blocks", "Type": "CommaDelimitedList", "Default": "10.0.48.0/24, 10.0.112.0/24, 10.0.176.0/24" } }

YAML

Parameters: DbSubnetIpBlocks: Description: "Comma-delimited list of three CIDR blocks" Type: CommaDelimitedList Default: "10.0.48.0/24, 10.0.112.0/24, 10.0.176.0/24"

逗號分隔清單參數的傳回值

若要參照清單中的特定值,請在範本的 Fn::Select 區段中使用 Resources 內部函數。您可以傳遞所要之物件的索引值和物件清單,如下列程式碼片段所示:

JSON
"DbSubnet1" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "AvailabilityZone" : {"Fn::Join" : ["",[ { "Ref" : "AWS::Region" }, { "Fn::Select" : [ "0", {"Ref" : "VpcAzs"} ] } ] ]} , "VpcId" : { "Ref" : "VPC" }, "CidrBlock" : { "Fn::Select" : [ "0", {"Ref" : "DbSubnetIpBlocks"} ] } } }, "DbSubnet2" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "AvailabilityZone" : {"Fn::Join" : ["",[ { "Ref" : "AWS::Region" }, { "Fn::Select" : [ "1", {"Ref" : "VpcAzs"} ] } ] ]} , "VpcId" : { "Ref" : "VPC" }, "CidrBlock" : { "Fn::Select" : [ "1", {"Ref" : "DbSubnetIpBlocks"} ] } } }, "DbSubnet3" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "AvailabilityZone" : {"Fn::Join" : ["",[ { "Ref" : "AWS::Region" }, { "Fn::Select" : [ "2", {"Ref" : "VpcAzs"} ] } ] ]} , "VpcId" : { "Ref" : "VPC" }, "CidrBlock" : { "Fn::Select" : [ "2", {"Ref" : "DbSubnetIpBlocks"} ] } } }
YAML
DbSubnet1: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - "${AWS::Region}${AZ}" - AZ: !Select [0, !Ref VpcAzs] VpcId: !Ref VPC CidrBlock: !Select [0, !Ref DbSubnetIpBlocks] DbSubnet2: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - "${AWS::Region}${AZ}" - AZ: !Select [1, !Ref VpcAzs] VpcId: !Ref VPC CidrBlock: !Select [1, !Ref DbSubnetIpBlocks] DbSubnet3: Type: AWS::EC2::Subnet Properties: AvailabilityZone: !Sub - "${AWS::Region}${AZ}" - AZ: !Select [2, !Ref VpcAzs] VpcId: !Ref VPC CidrBlock: !Select [2, !Ref DbSubnetIpBlocks]

SSM 參數類型

AWS::SSM::Parameter::Value<String> 類型

下列範本宣告 AWS::SSM::Parameter::Value<String> 參數類型。

JSON
{ "Parameters": { "InstanceType": { "Type": "AWS::SSM::Parameter::Value<String>" } }, "Resources": { "Instance": { "Type": "AWS::EC2::Instance", "Properties": { "InstanceType": { "Ref": "InstanceType" } } } } }
YAML
Parameters: InstanceType: Type: 'AWS::SSM::Parameter::Value<String>' Resources: Instance: Type: 'AWS::EC2::Instance' Properties: InstanceType: !Ref InstanceType

下列命令會根據範例範本來建立堆疊。它提供 Systems Manager 參數索引鍵 (myInstanceType) 作為 InstanceType 範本參數的值。這假設 myInstanceType 參數存在於呼叫者 AWS 帳戶的參數存放區中。

aws cloudformation create-stack --stack-name S1 --template-body example template --parameters ParameterKey=InstanceType,ParameterValue=myInstanceType

 

AWS::SSM::Parameter::Value<AWS::EC2::Image::Id> 類型

下列範本宣告 AWS::SSM::Parameter::Value<AWS::EC2::Image::Id> 參數類型。

JSON
{ "Parameters": { "ImageId": { "Type": "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>" } }, "Resources": { "Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": { "Ref": "ImageId" } } } } }
YAML
Parameters: ImageId: Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>' Resources: Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: !Ref ImageId

下列命令會根據範例範本來建立堆疊。它提供 Systems Manager 參數索引鍵 (myLatestAMI) 作為 ImageId 範本參數的值。這假設myLatestAMI參數存在於呼叫者 AWS 帳戶下的參數存放區中。

aws cloudformation create-stack --stack-name S2 --template-body example template --parameters ParameterKey=ImageId,ParameterValue=myLatestAMI