

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

# 与合作伙伴产品和服务集成
<a name="integrations-partners"></a>

CodeDeploy 内置了以下合作伙伴产品和服务的集成：


|  |  | 
| --- |--- |
| Ansible |  如果你已经有一套 [Ansible](http://www.ansible.com) 剧本，但只需要某个地方来运行它们，那么 Ansible 的模板将 CodeDeploy 演示几个简单的部署挂钩如何确保 Ansible 在本地部署实例上可用并运行剧本。如果您已经有了构建和维护库存的流程，还可以使用一个 Ansible 模块来安装和运行 CodeDeploy 代理。 了解更多： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/integrations-partners.html)  | 
| Atlassian – Bamboo 和 Bitbucket |  [Bamb](https://www.atlassian.com/software/bamboo/) oo 的 CodeDeploy 任务将包含 AppSpec 文件的目录压缩为.zip 文件，将该文件上传到 Amazon S3，然后根据应用程序中提供的配置开始部署。 CodeDeploy  Atlassian Bitbucket 对的支持 CodeDeploy 使您能够根据需要将代码直接从 Bitbucket 用户界面推送到任何部署组。这意味着，在您更新 Bitbucket 存储库中的代码之后，您不必登录到持续集成（CI）平台或 Amazon EC2 实例即可运行手动部署过程。 了解更多： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/integrations-partners.html)  | 
| Chef |  AWS 提供了两个用于集成 [Chef](https://www.chef.io/) 和 CodeDeploy. 第一本是 Chef 食谱，用于安装和启动 CodeDeploy 代理。这使您能够在使用 CodeDeploy 的同时，使用 Chef 继续管理您的主机基础设施。第二个示例模板演示了 CodeDeploy 如何使用每个节点上的 chef-solo 来编排食谱和食谱的运行。 了解更多： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/integrations-partners.html)  | 
| CircleCI |  [CircleCI](https://circleci.com/) 提供了一个自动测试和持续集成以及部署工具集。在中创建 AWS 要与 circleCI 配合使用的 IAM 角色并在 circle.yml 文件中配置部署参数后，您可以使用 circleCI CodeDeploy 来创建应用程序修订，将其上传到 Amazon S3 存储桶，然后启动和监控您的部署。 了解更多： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/integrations-partners.html)  | 
| CloudBees |  你可以使用 [CloudBees](https://www.cloudbees.com/)DEV @cloud 上提供的 CodeDeploy Jenkins 插件作为构建后的操作。例如，在持续交付管道结束时，可以使用它向服务器队列部署应用程序修订。 了解更多： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/integrations-partners.html)  | 
| Codeship |  您可以使用 [Codeship](https://codeship.com/) 通过 CodeDeploy部署应用程序修订版。您可以使用 Codeship UI 将 CodeDeploy 添加到分支的部署管道中。 了解更多： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/integrations-partners.html)  | 
| GitHub |  您可以使用 CodeDeploy 从[GitHub](http://www.github.com)存储库部署应用程序修订。每当 GitHub 仓库中的源代码发生更改时，您也可以从该存储库触发部署。 了解更多： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/integrations-partners.html)  | 
|  **HashiCorp 领事**  |  在中部署应用程序时，您可以使用开源 HashiCorp Consul 工具来帮助确保应用程序环境的健康和稳定性。 CodeDeploy可以使用 Consul 注册要在部署期间发现的应用程序，将应用程序和节点置于维护模式中以将其从部署中排除，并在目标实例变得运行状况不佳时停止部署。 了解更多： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/integrations-partners.html)  | 
| Jenkins |   CodeDeploy [Jenkins](http://jenkins-ci.org/) 插件为你的 Jenkins 项目提供了一个编译后的步骤。成功构建后，它将压缩工作区，上传到 Amazon S3，并启动新的部署。 了解更多： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/integrations-partners.html)  | 
| Puppet Labs |  AWS 提供了 [Puppet](https://puppetlabs.com/) 的示例模板和。 CodeDeploy第一个是安装和启动 CodeDeploy 代理的 Puppet 模块。这使您能够在使用 CodeDeploy 的同时，使用 Puppet 继续管理您的主机基础设施。第二个示例模板演示了 CodeDeploy 如何使用每个节点上的无主人偶来编排模块和清单的运行。 了解更多： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/integrations-partners.html)  | 
| SaltStack |  您可以将[SaltStack](https://saltproject.io/index.html)基础架构与集成 CodeDeploy。你可以使用该 CodeDeploy 模块在你的小兵上安装和运行 CodeDeploy 代理，或者通过几个简单的部署挂钩，你可以 CodeDeploy 用来编排 Salt States 的运行。 了解更多： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/integrations-partners.html)  | 
|  **TeamCity**  |  您可以使用 CodeDeploy Runner 插件直接从部署应用程序 TeamCity。该插件添加了一个 TeamCity 构建步骤，用于准备应用程序修订并将其上传到 Amazon S3 存储桶，在 CodeDeploy应用程序中注册该修订，创建 CodeDeploy 部署，并且（如果您愿意）等待部署完成。 了解更多： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/integrations-partners.html)  | 
| Travis CI |  您可以将 [Travis CI](https://travis-ci.com/) 配置为在成功构建 CodeDeploy 后触发部署。 了解更多： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/integrations-partners.html)  | 

**Topics**
+ [GitHub](integrations-partners-github.md)

# CodeDeploy 与集成 GitHub
<a name="integrations-partners-github"></a>

CodeDeploy 支持 [GitHub](https://github.com/about)，一种基于 Web 的代码托管和共享服务。 CodeDeploy 可以将存储在存储 GitHub库或 Amazon S3 存储桶中的应用程序修订部署到实例。 CodeDeploy 仅 GitHub 支持 EC2/本地部署。

**Topics**
+ [从中部署 CodeDeploy 修订 GitHub](#github-deployment-steps)
+ [GitHub 行为与 CodeDeploy](#github-behaviors)

## 从中部署 CodeDeploy 修订 GitHub
<a name="github-deployment-steps"></a>

要将 GitHub 存储库中的应用程序修订部署到实例，请执行以下操作：

1. 创建 CodeDeploy 与您要部署的 Amazon EC2 实例类型兼容的修订版。

   要创建兼容版本，请按照[为 CodeDeploy 规划修订](application-revisions-plan.md)和[将应用程序规范文件添加到修订版中 CodeDeploy](application-revisions-appspec-file.md)中的说明执行操作。

1. 使用 GitHub 帐户将您的修订添加到 GitHub 存储库中。

   要创建 GitHub 账户，请参阅[加入 GitHub](https://github.com/join)。要创建 GitHub 存储库，请参阅[创建存储库](https://help.github.com/articles/create-a-repo/)。

1. 使用 CodeDeploy 控制台中的 “**创建部署**” 页面或 AWS CLI **create-deployment**命令将您的修订从 GitHub 存储库部署到配置为在 CodeDeploy部署中使用的目标实例。

   如果要调用该**create-deployment**命令，则必须先使用控制台的 “**创建部署**” 页面授予 GitHub 代表指定应用程序的首选 GitHub账户与之交互的 CodeDeploy 权限。每个应用程序只需进行一次这样的操作。

   要了解如何使用 “**创建部署**” 页面从 GitHub 存储库进行部署，请参阅[使用创建部署 CodeDeploy](deployments-create.md)。

   要了解如何调用**create-deployment**命令从 GitHub 存储库进行部署，请参阅[创建 EC2/本地计算平台部署（CLI）](deployments-create-cli.md)。

   要了解如何准备用于 CodeDeploy 部署的实例，请参阅[使用以下实例 CodeDeploy](instances.md)。

有关更多信息，请参阅 [教程： CodeDeploy 用于从中部署应用程序 GitHub](tutorials-github.md)。

## GitHub 行为与 CodeDeploy
<a name="github-behaviors"></a>

**Topics**
+ [GitHub 使用中的应用程序进行身份验证 CodeDeploy](#behaviors-authentication)
+ [CodeDeploy 与私有和公共 GitHub 存储库的互动](#behaviors-interactions-private-and-public)
+ [CodeDeploy 与组织管理的存储库 GitHub 交互](#behaviors-interactions-organization-managed)
+ [使用自动部 CodePipeline 署 CodeDeploy](#behaviors-deploy-automatically)

### GitHub 使用中的应用程序进行身份验证 CodeDeploy
<a name="behaviors-authentication"></a>

在您授予与之交互的 CodeDeploy 权限后 GitHub，该 GitHub 账户与应用程序之间的关联将存储在中 CodeDeploy。您可以将应用程序关联到其他 GitHub 帐户。您也可以撤消与之交互 CodeDeploy 的权限。 GitHub

**要将 GitHub 账户关联到应用程序 CodeDeploy**

1. 登录 AWS 管理控制台 并在 [https://console.aws.amazon.com/codede](https://console.aws.amazon.com/codedeploy) ploy 上打开 CodeDeploy 控制台。
**注意**  
使用您在[入门 CodeDeploy](getting-started-codedeploy.md)中设置的同一用户登录。

1. 在导航窗格中，展开**部署**，然后选择**应用程序**。

1. 选择您要关联到其他 GitHub账户的应用程序。

1. 如果您的应用程序没有部署组，请选择**创建部署组**来创建一个部署组。有关更多信息，请参阅 [使用创建部署组 CodeDeploy](deployment-groups-create.md)。需要部署组在下一步中选择**创建部署**。

1.  从**部署**中，选择**创建部署**。
**注意**  
您无需创建新的部署。这是目前将其他 GitHub 账户关联到应用程序的唯一方法。

1.  在 **“部署设置”** 中，对于 “**修订类型**”，选择 “**我的应用程序存储在” 中 GitHub**。

1. 请执行以下操作之一：
   + 要创建 AWS CodeDeploy 应用程序与 GitHub帐户的连接，请在单独的 Web 浏览器选项卡 GitHub 中注销。在**GitHub 令牌名称**中，键入用于标识此连接的名称，然后选择 **Connect to GitHub**。网页会提示您授权 CodeDeploy与您的应用程序进行交互。 GitHub 继续执行步骤 10。
   + 要使用已创建的连接，请在**GitHub令牌名称中选择其名称**，然后选择 **Connect to GitHub**。继续执行步骤 8。
   + 要创建与其他 GitHub 帐户的连接，请在单独的 Web 浏览器选项卡 GitHub 中注销。在**GitHub 令牌名称**中，键入用于标识连接的名称，然后选择 **Connect to GitHub**。网页会提示您授权 CodeDeploy 与您的应用程序进行交互。 GitHub 继续执行步骤 10。

1. 如果您尚未登录 GitHub，请按照 “**登录**” 页面上的说明使用要关联应用程序的 GitHub 帐户登录。

1. 选择 “**授权应用程序**”。 GitHub CodeDeploy授予 GitHub 代表所选应用程序的登录 GitHub 账户与之交互的权限。

1. 如果您不需要创建部署，请选择 **Cancel**。

**撤销与之交互 CodeDeploy 的权限 GitHub**

1. [GitHub ](https://github.com/dashboard)使用您要撤销 AWS CodeDeploy 权限的 GitHub 账户的凭据登录。

1. 打开 “ GitHub [应用程序](https://github.com/settings/applications)” 页面，**CodeDeploy**在已授权的应用程序列表中找到，然后按照撤消应用程序授权的 GitHub 步骤进行操作。

### CodeDeploy 与私有和公共 GitHub 存储库的互动
<a name="behaviors-interactions-private-and-public"></a>

CodeDeploy 支持从私有和公共 GitHub存储库部署应用程序。当您代表您 CodeDeploy 授予访问权限时， CodeDeploy将拥有 GitHub 对您的 GitHub 账户有权访问的所有私有 GitHub 仓库的读写权限。但是， CodeDeploy 只能从 GitHub 存储库中读取。它不会写入您的任何私有 GitHub 存储库。

### CodeDeploy 与组织管理的存储库 GitHub 交互
<a name="behaviors-interactions-organization-managed"></a>

默认情况下，由组织管理的 GitHub 存储库（而不是您账户自己的私有或公共存储库）不授予对第三方应用程序的访问权限，包括 CodeDeploy。如果在中启用了组织的第三方应用程序限制， GitHub 并且您尝试从其 GitHub 存储库部署代码，则部署将失败。可通过两种方式解决此问题。
+ 作为组织成员，您可以要求组织所有者批准对 CodeDeploy 的访问权。申请此访问权限的步骤取决于您是否已经 CodeDeploy 为个人账户授权：
  + 如果您的账户已获得 CodeDeploy 授权访问权限，请参阅[请求组织批准您的授权应用程序](https://help.github.com/articles/requesting-organization-approval-for-your-authorized-applications/)。
  + 如果您尚未 CodeDeploy 在账户中获得访问权限，请参阅[请求组织批准第三方应用程序](https://help.github.com/articles/requesting-organization-approval-for-third-party-applications/)。
+ 组织所有者可禁用组织的所有第三方应用程序限制。有关信息，请参阅[禁用组织的第三方应用程序限制](https://help.github.com/articles/disabling-third-party-application-restrictions-for-your-organization/)。

有关更多信息，请参阅[关于第三方应用程序限制](https://help.github.com/articles/about-third-party-application-restrictions/)。

### 使用自动部 CodePipeline 署 CodeDeploy
<a name="behaviors-deploy-automatically"></a>

 CodePipeline 只要源代码发生变化，您就可以从触发部署。有关更多信息，请参阅 [CodePipeline](https://aws.amazon.com/codepipeline/)。