本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS CloudFormation 組態屬性參考
當您建置 CodePipeline 管道時,您可以將 Deploy
動作新增至管道,並以 AWS CloudFormation 做為提供者。然後,您必須指定管道叫用 AWS CloudFormation 的動作和動作的設定。本主題說明 AWS CloudFormation 組態屬性。若要指定屬性,您可以使用 CodePipeline 主控台,也可以建立JSON物件以用於 AWS CLI、 CodePipeline API或 AWS CloudFormation 範本。
組態屬性 (主控台)
CodePipeline 主控台
注意
當您建立管道時,您只能指定 Create or update a stack (建立或更新堆疊) 或 Create or replace a change set (建立或取代變更組) 動作模式。Advanced (進階) 區段中的屬性只有在您編輯管道時才可使用。
- Action mode (動作模式)
-
處理相關聯階段時 CodePipeline 呼叫 AWS CloudFormation 的動作。選擇下列其中一個動作模式:
-
Create or replace a change set (建立或取代變更組) 會根據您提交的堆疊名稱和範本建立變更組 (若不存在的話)。如果變更集存在, 會將其 AWS CloudFormation 刪除,然後建立新的變更集。
-
Create or update a stack (建立或更新堆疊) 會在指定堆疊不存在時建立堆疊。如果堆疊存在, 會 AWS CloudFormation 更新堆疊。使用此動作來更新現有的 stacks。 CodePipeline 不會取代堆疊。
-
Delete a stack (刪除堆疊) 刪除堆疊。若您指定不存在的堆疊,動作會成功完成,而不會刪除任何堆疊。
-
Execute a change set (執行變更組) 執行變更組。
-
Replace a failed stack (取代故障堆疊) 會在指定堆疊不存在時建立堆疊。如果堆疊存在且處於失敗狀態
ROLLBACK_FAILED
(報告為ROLLBACK_COMPLETE
、DELETE_FAILED
、、 或UPDATE_ROLLBACK_FAILED
)CREATE_FAILED
, 會 AWS CloudFormation 刪除堆疊,然後建立新的堆疊。如果堆疊未處於失敗狀態, 會 AWS CloudFormation 更新它。使用此動作來取代故障的堆疊,無須復原或故障診斷。您通常會選擇此模式以進行測試。
-
- Stack name (堆疊名稱)
-
與現有堆疊或您希望建立的堆疊建立關聯的名稱。在您建立堆疊的 AWS 區域中,名稱必須是唯一的。
注意
堆疊名稱僅能使用英數字元 (區分大小寫) 和連字號。必須以字母字元開頭,且長度不可超過 128 個字元。
- Change set name (變更組合名稱)
-
現有變更組或您希望為指定堆疊建立之新變更組的名稱。
- Template (範本)
-
AWS CloudFormation 範本檔案的位置,其格式為
。ArtifactName
::TemplateFileName
- Template configuration (範本組態)
-
範本組態檔案的位置,其格式為
。範本組態檔案可包含範本參數值、堆疊政策和標籤。若您在其中包含敏感資訊 (例如密碼),請限制此檔案的存取。如需詳細資訊,請參閱AWS CloudFormation 成品。ArtifactName
::TemplateConfigurationFileName
- 功能
-
對於包含特定資源的堆疊,請明確確認 AWS CloudFormation 可能建立或更新這些資源。例如,若您的堆疊範本包含 AWS Identity and Access Management (IAM) 資源,您必須指定
CAPABILITY_IAM
。如需詳細資訊,請參閱 CreateStack API 操作請求參數。若您在您的堆疊範本中具有 IAM 資源,您必須指定此屬性。
您可以指定多個功能。
- Role name (角色名稱)
-
在指定堆疊中的資源上操作時 AWS CloudFormation ,擔任IAM的服務角色名稱。
- Output file name (輸出檔案名稱)
-
在進階區段中,您可以指定輸出檔案名稱,例如
CreateStackOutput.json
,在輸出成品執行指定動作後,將其 CodePipeline 新增至輸出成品。輸出成品包含一個JSON檔案,其中包含 AWS CloudFormation 範本Outputs
區段的內容。如果您未指定名稱, CodePipeline 不會產生輸出成品。
- Parameter overrides (參數覆寫)
-
參數是在您的範本中定義,而且可讓您在建立或更新堆疊時輸入自訂值。您可以指定覆寫範本組態檔案中範本參數值的JSON物件。所有參數名稱都必須在堆疊範本中存在。如需詳細資訊,請參閱CloudFormation 範本 Parameters 語法。
注意
物件的大小上限為 1 KBJSON,可存放在
ParameterOverrides
屬性中。我們建議您使用範本組態檔案來指定您大多數的參數值。僅使用參數覆寫來指定動態參數值。除非您執行管道,否則動態參數是未知的。
下列範例會使用參數覆寫函數定義
ParameterName
參數的值。函數會從 CodePipeline 輸入成品擷取值。如需參數覆寫函數的詳細資訊,請參閱搭配 CodePipeline 管道使用參數覆寫函數。{ "ParameterName" : { "Fn::GetParam" : ["ArtifactName", "config-file-name.json", "ParamName"]} }
組態屬性 (JSON 物件)
當您指定 CloudFormation
作為階段動作的提供者時,請在 Configuration
屬性中定義以下屬性。針對 AWS CLI、 CodePipeline API或 AWS CloudFormation 範本使用 JSON 物件。如需範例,請參閱 逐步解說:建置管線以用於測試和生產堆疊 和 AWS CloudFormation 組態屬性參考。
ActionMode
-
處理相關聯階段時 CodePipeline 呼叫 AWS CloudFormation 的動作。僅指定下列其中一個動作模式:
-
CHANGE_SET_EXECUTE
執行變更集。 -
CHANGE_SET_REPLACE
根據您提交的堆疊名稱和範本建立變更組 (若不存在的話)。如果變更集存在, 會將其 AWS CloudFormation 刪除,然後建立新的變更集。 -
CREATE_UPDATE
在指定堆疊不存在時建立堆疊。若堆疊存在,則 AWS CloudFormation 會更新堆疊。使用此動作來更新現有的 stacks。 CodePipeline 不會取代堆疊。 -
DELETE_ONLY
刪除堆疊。若您指定不存在的堆疊,動作會成功完成,而不會刪除任何堆疊。 -
REPLACE_ON_FAILURE
在指定堆疊不存在時建立堆疊。如果堆疊存在且處於失敗狀態 (報告為ROLLBACK_COMPLETE
、ROLLBACK_FAILED
、CREATE_FAILED
、 或UPDATE_ROLLBACK_FAILED
)DELETE_FAILED
, 會 AWS CloudFormation 刪除堆疊,然後建立新的堆疊。如果堆疊未處於失敗狀態, 會 AWS CloudFormation 更新它。使用此動作來自動取代故障的堆疊,無須復原或故障診斷。您通常會選擇此模式以進行測試。
此屬性為必要。
-
Capabilities
-
對於包含特定資源的堆疊,請明確確認 AWS CloudFormation 可能建立或更新這些資源。例如,若您的堆疊範本包含 AWS Identity and Access Management (IAM) 資源,您必須指定
CAPABILITY_IAM
。如需詳細資訊,請參閱 CreateStack API 操作請求參數。此屬性為條件式。若您在您的堆疊範本中具有 IAM 資源,您必須指定此屬性。
您可以指定多個功能。下列範例會將
CAPABILITY_IAM
和CAPABILITY_AUTO_EXPAND
屬性新增至 範本: ChangeSetName
-
現有變更組或您希望為指定堆疊建立之新變更組的名稱。
針對下列動作模式,此屬性為必要:
CHANGE_SET_REPLACE
和CHANGE_SET_EXECUTE
。針對其他所有動作模式,可忽略此屬性。 OutputFileName
-
輸出檔案的名稱,例如
CreateStackOutput.json
。在執行指定的動作後, 會將檔案 CodePipeline 新增至輸出成品。輸出成品包含一個JSON檔案,其中包含 AWS CloudFormation 範本Outputs
區段的內容。此屬性為選擇性。如果您未指定名稱, CodePipeline 不會產生輸出成品。
ParameterOverrides
-
參數是在您的範本中定義,而且可讓您在建立或更新堆疊時輸入自訂值。您可以指定覆寫範本組態檔案中範本參數值的JSON物件。所有參數名稱都必須在堆疊範本中存在。如需詳細資訊,請參閱CloudFormation 範本 Parameters 語法。
下列範例會將
InstanceType
和KeyName
參數覆寫新增至範本:注意
可存放在
ParameterOverrides
屬性中的JSON物件大小上限為 1 KB。我們建議您使用範本組態檔案來指定您大多數的參數值。僅使用參數覆寫來指定動態參數值。除非您執行管道 , 否則動態參數值都是未知的。
下列範例會使用參數覆寫函數定義
ParameterName
參數的值。函數會從 CodePipeline 輸入成品擷取值。如需參數覆寫函數的詳細資訊,請參閱搭配 CodePipeline 管道使用參數覆寫函數。{ "ParameterName" : { "Fn::GetParam" : ["ArtifactName", "config-file-name.json", "ParamName"]} }
此屬性為選擇性。
RoleArn
-
IAM 服務角色的 Amazon Resource Name (ARN),其在堆疊中的資源上操作時 AWS CloudFormation 擔任該角色。
針對下列動作模式,此屬性為必要:
CREATE_UPDATE
、REPLACE_ON_FAILURE
、DELETE_ONLY
及CHANGE_SET_REPLACE
。執行變更集時,不會套用RoleArn
。如果您不使用 CodePipeline 建立變更集,請確定變更集或堆疊具有相關聯的角色。 StackName
-
現有堆疊或您希望建立之堆疊的名稱。
針對所有動作模式,此屬性為必要。
TemplateConfiguration
-
TemplateConfiguration
是範本組態檔案。您將檔案包含在此動作的輸入成品中。範本組態檔案名稱遵循此格式:Artifactname
::TemplateConfigurationFileName
Artifactname
是出現在其中的輸入成品名稱 CodePipeline。例如,來源階段的成品名稱為SourceArtifact
且test-configuration.json
檔案名稱建立TemplateConfiguration
名稱,如此範例所顯示:"TemplateConfiguration": "SourceArtifact::test-configuration.json"
範本組態檔案可包含範本參數值和堆疊政策。若您在其中包含敏感資訊 (例如密碼),請限制此檔案的存取。如需範例範本組態檔,請參閱 AWS CloudFormation 成品。
此屬性為選擇性。
TemplatePath
-
TemplatePath
代表 AWS CloudFormation 範本檔案。您將檔案包含在此動作的輸入成品中。該檔案名稱遵循此格式:Artifactname
::TemplateFileName
Artifactname
是出現在其中的輸入成品名稱 CodePipeline。例如,來源階段的成品名稱為SourceArtifact
且template.yaml
檔案名稱建立TemplatePath
名稱,如此範例所顯示:"TemplatePath": "SourceArtifact::template.yaml"
針對下列動作模式,此屬性為必要:
CREATE_UPDATE
、REPLACE_ON_FAILURE
和CHANGE_SET_REPLACE
。針對其他所有動作模式,可忽略此屬性。
另請參閱
以下相關資源可協助您使用這些參數。
-
如需 中 CloudFormation 動作參數的詳細資訊 CodePipeline,請參閱AWS CodePipeline 《 使用者指南》中的AWS CloudFormation 部署動作組態參考。
-
如需動作提供者的範例範本值 (例如
Owner
欄位或configuration
欄位),請參閱 AWS CodePipeline User Guide (《 使用者指南》) 中的 Action structure reference (動作結構參考)。 -
若要下載 YAML或 JSON 格式的範例管道堆疊範本,請參閱 AWS CodePipeline 使用者指南中的教學課程:使用 建立管道 AWS CloudFormation。