

Amazon CodeCatalyst 不再向新客戶開放。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[如何從 CodeCatalyst 遷移](migration.md)。

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

# 使用工作流程部署
<a name="deploy"></a>



使用 [CodeCatalyst 工作流程](workflow.md)，您可以將應用程式和其他資源部署到 Amazon ECS 等各種目標 AWS Lambda。

## 如何部署應用程式？
<a name="deploy-concepts"></a>

若要透過 CodeCatalyst 部署應用程式或資源，請先建立工作流程，然後在其中指定部署動作。*部署動作*是工作流程建置區塊，可定義您要部署*的內容*、您要部署*的位置*，以及您想要部署*的方式* （例如，使用藍/綠方案）。您可以使用 CodeCatalyst 主控台的視覺化編輯器或 YAML 編輯器，將部署動作新增至工作流程。

部署應用程式或資源的高階步驟如下所示。

**部署應用程式 （高階任務）**

1. 在 CodeCatalyst 專案中，您可以為要部署的應用程式**新增原始碼**。如需詳細資訊，請參閱[在 CodeCatalyst 中將原始程式碼存放在專案的儲存庫中](source-repositories.md)。

1. 在 CodeCatalyst 專案中，您可以**新增環境**，定義您要部署的目標 AWS 帳戶 和選用 Amazon Virtual Private Cloud (VPC)。如需詳細資訊，請參閱[部署至 AWS 帳戶 和 VPCs](deploy-environments.md)。

1. 在 CodeCatalyst 專案中，您可以**建立工作流程**。工作流程是您定義如何建置、測試和部署應用程式的地方。如需詳細資訊，請參閱[工作流程入門](workflows-getting-started.md)。

1. 在工作流程中，您可以**新增觸發**條件、**建置動作**，以及選擇性**的測試動作**。如需詳細資訊，請參閱[使用觸發程序自動啟動工作流程執行](workflows-add-trigger.md)、[新增建置動作](build-add-action.md)及[新增測試動作](test-add-action.md)。

1. 在工作流程中，您可以**新增部署動作**。您可以從數個 CodeCatalyst 提供的部署動作中選擇到應用程式的不同目標，例如 Amazon ECS。（您也可以使用建置動作或 GitHub 動作來部署應用程式。 如需建置動作和 GitHub 動作的詳細資訊，請參閱 [部署動作的替代方案](#deploy-concepts-alternatives)。)

1. 您可以手動或透過觸發程序自動**啟動工作流程**。工作流程會依序執行建置、測試和部署動作，將您的應用程式和資源部署到目標。如需詳細資訊，請參閱[手動啟動工作流程執行](workflows-manually-start.md)。

## 部署動作的清單
<a name="deploy-concepts-action-supported"></a>

下列部署動作可供使用：
+ 部署 CloudFormation 堆疊 – 此動作 AWS 會根據您提供的[CloudFormation 範本](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification.html)，在 中建立 CloudFormation [AWS Serverless Application Model](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html) 堆疊。如需詳細資訊，請參閱[部署 CloudFormation 堆疊](deploy-action-cfn.md)。
+ 部署到 Amazon ECS – 此動作會註冊您提供[的任務定義](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html#welcome-task-definitions)檔案。如需詳細資訊，請參閱[使用工作流程部署至 Amazon ECS](deploy-action-ecs.md)。
+ 部署至 Kubernetes 叢集 – 此動作會將應用程式部署至 Amazon Elastic Kubernetes Service 叢集。如需詳細資訊，請參閱[使用工作流程部署至 Amazon EKS](deploy-action-eks.md)。
+ AWS CDK 部署 – 此動作會將[AWS CDK 應用程式](https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html#getting_started_concepts)部署到 AWS。如需詳細資訊，請參閱[使用工作流程部署 AWS CDK 應用程式](cdk-dep-action.md)。

**注意**  
還有其他 CodeCatalyst 動作可以部署資源；不過，這些動作不會被視為*部署*動作，因為其部署資訊不會出現在**環境**頁面上。若要進一步了解**環境**頁面和檢視部署，請參閱 [部署至 AWS 帳戶 和 VPCs](deploy-environments.md)和 [檢視部署資訊](deploy-view-deployment-info.md)。

## 部署動作的優點
<a name="deploy-concepts-why-use"></a>

在工作流程中使用部署動作有下列優點：
+ **部署歷史記錄** – 檢視部署的歷史記錄，以協助管理和傳達部署軟體中的變更。
+ 可**追蹤性** – 透過 CodeCatalyst 主控台追蹤部署的狀態，並查看每個應用程式修訂版的部署時間和位置。
+ **回復** – 發生錯誤時自動回復部署。您也可以設定警示來啟用部署轉返。
+ **監控** – 在部署進行工作流程的各個階段時觀察部署。
+ **與其他 CodeCatalyst 功能的整合** – 儲存原始程式碼，然後建置、測試和部署它，全都從單一應用程式完成。

## 部署動作的替代方案
<a name="deploy-concepts-alternatives"></a>

您不需要使用部署動作，但建議使用這些動作，因為它們提供上一節中概述的優點。反之，您可以使用下列 [CodeCatalyst 動作](workflows-actions.md#workflows-actions-types-cc)：
+ **建置**動作。

  一般而言，如果您想要部署到不存在對應部署動作的目標，或者如果您想要對部署程序進行更多控制，您可以使用建置動作。如需使用建置動作部署資源的詳細資訊，請參閱 [使用工作流程建置](build-workflow-actions.md)。
+ **GitHub 動作**。

  您可以在 CodeCatalyst 工作流程中使用 [GitHub 動作](workflows-actions.md#workflows-actions-types-github)來部署應用程式和資源 （而不是 CodeCatalyst 動作）。如需如何在 CodeCatalyst 工作流程中使用 GitHub 動作的詳細資訊，請參閱 [與 GitHub 動作整合](integrations-github-actions.md)

如果您不想使用 CodeCatalyst 工作流程，您也可以使用下列 AWS 服務來部署應用程式：
+ AWS CodeDeploy – 請參閱[什麼是 CodeDeploy？](https://docs.aws.amazon.com/codedeploy/latest/userguide/welcome.html)
+ AWS CodeBuild 和 AWS CodePipeline – 請參閱[什麼是 AWS CodeBuild？](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) [什麼是 AWS CodePipeline？](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)
+ CloudFormation – 請參閱[什麼是 CloudFormation？](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)

針對複雜的企業部署，使用 CodeDeploy、CodeBuild、CodePipeline 和 CloudFormation 服務。

**Topics**
+ [如何部署應用程式？](#deploy-concepts)
+ [部署動作的清單](#deploy-concepts-action-supported)
+ [部署動作的優點](#deploy-concepts-why-use)
+ [部署動作的替代方案](#deploy-concepts-alternatives)
+ [使用工作流程部署至 Amazon ECS](deploy-action-ecs.md)
+ [使用工作流程部署至 Amazon EKS](deploy-action-eks.md)
+ [部署 CloudFormation 堆疊](deploy-action-cfn.md)
+ [使用工作流程部署 AWS CDK 應用程式](cdk-dep-action.md)
+ [使用工作流程引導 AWS CDK 應用程式](cdk-boot-action.md)
+ [使用工作流程將檔案發佈至 Amazon S3](s3-pub-action.md)
+ [部署至 AWS 帳戶 和 VPCs](deploy-environments.md)
+ [在工作流程圖表中顯示應用程式 URL](deploy-app-url.md)
+ [移除部署目標](deploy-remove-target.md)
+ [依遞交追蹤部署狀態](track-changes.md)
+ [檢視部署日誌](deploy-deployment-logs.md)
+ [檢視部署資訊](deploy-view-deployment-info.md)