本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS CloudFormation 組態屬性參考
建立 CodePipeline 管線時,您可以使用提供者 AWS CloudFormation 身分將Deploy
動作新增至管線。然後,您必須指定管線呼叫的 AWS CloudFormation 動作以及動作的設定。本主題說明 AWS CloudFormation 組態屬性。若要指定屬性,您可以使用 CodePipeline 主控台,或建立要用於 AWS CLI CodePipeline API、或 AWS CloudFormation 範本的JSON物件。
組態屬性 (主控台)
主 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 會更新堆疊。使用此動作可更新現有堆疊。 CodePipeline 不會替換堆棧。
-
Delete a stack (刪除堆疊) 刪除堆疊。若您指定不存在的堆疊,動作會成功完成,而不會刪除任何堆疊。
-
Execute a change set (執行變更組) 執行變更組。
-
Replace a failed stack (取代故障堆疊) 會在指定堆疊不存在時建立堆疊。如果堆疊存在且處於失敗狀態 (回報為
ROLLBACK_COMPLETE
、ROLLBACK_FAILED
、CREATE_FAILED
DELETE_FAILED
、或UPDATE_ROLLBACK_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 可能會建立或更新這些資源的明確確認。例如,您必須指定堆疊範本是
CAPABILITY_IAM
否包含 AWS Identity and Access Management (IAM) 資源。如需詳細資訊,請參閱CreateStack
API作業要求參數。如果您的堆棧模板中有IAM資源,則必須指定此屬性。
您可以指定多個功能。
- Role name (角色名稱)
-
在指定堆疊中的資源上作業時, AWS CloudFormation 假設IAM服務角色的名稱。
- Output file name (輸出檔案名稱)
-
在「進階」段落中,您可以指定輸出檔案名稱,例如
CreateStackOutput.json
,在輸出人工因素執行指定的動作後 CodePipeline 新增至輸出人工因素。輸出成品包含具有 AWS CloudFormation 範本Outputs
區段內容的JSON檔案。如果您未指定名稱,則不 CodePipeline 會產生輸出成品。
- Parameter overrides (參數覆寫)
-
參數是在您的範本中定義,而且可讓您在建立或更新堆疊時輸入自訂值。您可以在範本組態檔案中指定覆寫範本參數值的JSON物件。所有參數名稱都必須在堆疊範本中存在。如需詳細資訊,請參閱定義範本中的參數。
注意
可儲存在屬性中的JSON物件大小上限為 1 KB。
ParameterOverrides
我們建議您使用範本組態檔案來指定您大多數的參數值。僅使用參數覆寫來指定動態參數值。除非您執行管道,否則動態參數是未知的。
下列範例會使用參數覆寫函數定義
ParameterName
參數的值。該函數從 CodePipeline 輸入加工品中檢索值。如需參數覆寫函數的詳細資訊,請參閱搭 CodePipeline 配管線使用參數覆寫函數。{ "ParameterName" : { "Fn::GetParam" : ["ArtifactName", "config-file-name.json", "ParamName"]} }
配置屬性(JSON對象)
當您指定 CloudFormation
作為階段動作的提供者時,請在 Configuration
屬性中定義以下屬性。使用 AWS CLI、 CodePipelineAPI或 AWS CloudFormation 範本的JSON物件。如需範例,請參閱 逐步解說:建置管線以用於測試和生產堆疊 和 AWS CloudFormation 組態屬性參考。
ActionMode
-
處理相關階段時所 CodePipeline 呼叫的 AWS CloudFormation 動作。僅指定下列其中一個動作模式:
-
CHANGE_SET_EXECUTE
執行變更集。 -
CHANGE_SET_REPLACE
根據您提交的堆疊名稱和範本建立變更組 (若不存在的話)。如果變更集存在,請將其 AWS CloudFormation 刪除,然後建立新的變更集。 -
CREATE_UPDATE
在指定堆疊不存在時建立堆疊。若堆疊存在,則 AWS CloudFormation 會更新堆疊。使用此動作可更新現有堆疊。 CodePipeline 不會替換堆棧。 -
DELETE_ONLY
刪除堆疊。若您指定不存在的堆疊,動作會成功完成,而不會刪除任何堆疊。 -
REPLACE_ON_FAILURE
在指定堆疊不存在時建立堆疊。如果堆疊存在且處於失敗狀態 (回報為ROLLBACK_COMPLETE
、ROLLBACK_FAILED
、CREATE_FAILED
DELETE_FAILED
、或UPDATE_ROLLBACK_FAILED
),則會 AWS CloudFormation 刪除堆疊,然後建立新堆疊。如果堆疊不是處於失敗狀態,請 AWS CloudFormation 更新它。使用此動作來自動取代故障的堆疊,無須復原或故障診斷。您通常會選擇此模式以進行測試。
此屬性為必要。
-
Capabilities
-
對於包含特定資源的堆疊, AWS CloudFormation 可能會建立或更新這些資源的明確確認。例如,您必須指定堆疊範本是
CAPABILITY_IAM
否包含 AWS Identity and Access Management (IAM) 資源。如需詳細資訊,請參閱CreateStack
API作業要求參數。此屬性為條件式。如果您的堆棧模板中有IAM資源,則必須指定此屬性。
您可以指定多個功能。下列範例會將
CAPABILITY_IAM
和CAPABILITY_AUTO_EXPAND
屬性新增至範本: ChangeSetName
-
現有變更組或您希望為指定堆疊建立之新變更組的名稱。
針對下列動作模式,此屬性為必要:
CHANGE_SET_REPLACE
和CHANGE_SET_EXECUTE
。針對其他所有動作模式,可忽略此屬性。 OutputFileName
-
輸出檔案的名稱,例如
CreateStackOutput.json
。 CodePipeline 在執行指定的動作後,將檔案新增至輸出人工因素。輸出成品包含具有 AWS CloudFormation 範本Outputs
區段內容的JSON檔案。此屬性為選擇性。如果您未指定名稱,則不 CodePipeline 會產生輸出成品。
ParameterOverrides
-
參數是在您的範本中定義,而且可讓您在建立或更新堆疊時輸入自訂值。您可以在範本組態檔案中指定覆寫範本參數值的JSON物件。所有參數名稱都必須在堆疊範本中存在。如需詳細資訊,請參閱定義範本中的參數。
下列範例會將
InstanceType
和KeyName
參數覆寫新增至範本:注意
可儲存在
ParameterOverrides
屬性中的JSON物件大小上限為 1 KB。我們建議您使用範本組態檔案來指定您大多數的參數值。僅使用參數覆寫來指定動態參數值。除非您執行管道 , 否則動態參數值都是未知的。
下列範例會使用參數覆寫函數定義
ParameterName
參數的值。該函數從 CodePipeline 輸入加工品中檢索值。如需參數覆寫函數的詳細資訊,請參閱搭 CodePipeline 配管線使用參數覆寫函數。{ "ParameterName" : { "Fn::GetParam" : ["ArtifactName", "config-file-name.json", "ParamName"]} }
此屬性為選擇性。
RoleArn
-
IAM服務角色的 Amazon 資源名稱 (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
。針對其他所有動作模式,可忽略此屬性。
另請參閱
以下相關資源可協助您使用這些參數。
-
如需有關中 AWS CloudFormation 動作參數的詳細資訊 CodePipeline,請參閱《AWS CodePipeline 使用指南》中的AWS CloudFormation動作組態參考。
-
如需動作提供者的範例範本值 (例如
Owner
欄位或configuration
欄位),請參閱 AWS CodePipeline User Guide (《 使用者指南》) 中的 Action structure reference (動作結構參考)。 -
若要以YAML或JSON格式下載範例管線堆疊範本,請參閱AWS CodePipeline 使用指南 AWS CloudFormation中的建立管線下的教學課程。
-
如需範例範本組態檔,請參閱 AWS CloudFormation 成品。