

亚马逊 CodeCatalyst 不再向新买家开放。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [如何从中迁移 CodeCatalyst](migration.md)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

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



使用[CodeCatalyst 工作流程](workflow.md)，您可以将应用程序和其他资源部署到各种目标， AWS Lambda例如 Amazon ECS 等。

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

要通过部署应用程序或资源 CodeCatalyst，首先要创建一个工作流，然后在其中指定部署操作。*部署操作*是一个工作流程构造块，它定义了要部署的*内容*、部署*位置*以及部署*方式*（例如，使用 blue/green 方案）。您可以使用 CodeCatalyst 控制台的可视化编辑器或 YAML 编辑器向工作流程添加部署操作。

部署应用程序或资源的步骤大致如下。

**部署应用程序（高级别任务）**

1. 在您的 CodeCatalyst 项目中，您可以为要部署的应用程序**添加源代码**。有关更多信息，请参阅 [将源代码存储在项目的存储库中 CodeCatalyst](source-repositories.md)。

1. 在您的 CodeCatalyst 项目中，您可以**添加一个环境**来定义目标 AWS 账户 和要部署到的可选亚马逊虚拟私有云 (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 模板或[AWS Serverless Application Model 模板](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html)](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-specification.html)在中创建 CloudFormation 堆栈。有关更多信息，请参阅 [部署 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)