

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

# 將 CodeDeploy 與 GitHub 整合
<a name="integrations-partners-github"></a>

CodeDeploy 支援 [GitHub](https://github.com/about)，這是一種以 Web 為基礎的程式碼託管和共用服務。CodeDeploy 可以將存放在 GitHub 儲存庫或 Amazon S3 儲存貯體中的應用程式修訂版部署到執行個體。CodeDeploy 僅支援 GitHub for EC2/內部部署部署。

**Topics**
+ [從 GitHub 部署 CodeDeploy 修訂版](#github-deployment-steps)
+ [使用 CodeDeploy 的 GitHub 行為](#github-behaviors)

## 從 GitHub 部署 CodeDeploy 修訂版
<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**命令，您必須先使用主控台的**建立部署**頁面，授予 CodeDeploy 許可，以代表您偏好的 GitHub 帳戶與指定應用程式與 GitHub 互動。每個應用程式都只需要執行此步驟一次。

   若需了解如何使用**建立部署**頁面以從 GitHub 儲存庫進行部署，請參閱[使用 CodeDeploy 建立部署](deployments-create.md)：

   如需了解如何呼叫 **create-deployment** 命令從 GitHub 儲存庫進行部署，請參閱 [建立 EC2/現場部署運算平台部署 (CLI)](deployments-create-cli.md)。

   若要了解如何準備執行個體以用於 CodeDeploy 部署，請參閱 [使用 CodeDeploy 的執行個體](instances.md)。

如需詳細資訊，請參閱[教學課程：使用 CodeDeploy 從 GitHub 部署應用程式](tutorials-github.md)。

## 使用 CodeDeploy 的 GitHub 行為
<a name="github-behaviors"></a>

**Topics**
+ [在 CodeDeploy 中使用應用程式進行 GitHub 身分驗證](#behaviors-authentication)
+ [CodeDeploy 與私有和公有 GitHub 儲存庫的互動](#behaviors-interactions-private-and-public)
+ [CodeDeploy 與組織受管 GitHub 儲存庫的互動](#behaviors-interactions-organization-managed)
+ [使用 CodeDeploy 從 CodePipeline 自動部署 CodeDeploy](#behaviors-deploy-automatically)

### 在 CodeDeploy 中使用應用程式進行 GitHub 身分驗證
<a name="behaviors-authentication"></a>

在您授予 CodeDeploy 與 GitHub 互動的許可後，該 GitHub 帳戶和應用程式之間的關聯會儲存在 CodeDeploy 中。您可以將應用程式和不一樣的 GitHub 帳戶連結。您也可以撤銷 CodeDeploy 與 GitHub 互動的許可。

**將 GitHub 帳戶連結至 CodeDeploy 中的應用程式**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/codedeploy](https://console.aws.amazon.com/codedeploy) 開啟 CodeDeploy 主控台。
**注意**  
使用您在 中設定的相同使用者登入[CodeDeploy 入門](getting-started-codedeploy.md)。

1. 在導覽窗格中，展開**部署**，然後選擇**應用程式**。

1. 選擇要連結到不同 GitHub 帳戶的應用程式。

1. 如果您的應用程式沒有部署群組，請選擇**建立部署群組**來建立一個。如需詳細資訊，請參閱[使用 CodeDeploy 建立部署群組](deployment-groups-create.md)。部署群組需在後續步驟選擇 **Create deployment (建立部署)**。

1.  從 **Deployments (部署)** 選擇 **Create deployment (建立部署)**。
**注意**  
您不必建立新的部署。目前，這是將不同 GitHub 帳戶連結至應用程式的唯一方法。

1.  在 **Deployment settings (部署設定)**，對 **Revision type (修訂版類型)**，選擇 **My application is stored in GitHub (我的應用程式存放在 GitHub)**。

1. 執行以下任意一項：
   + 若要為 AWS CodeDeploy 應用程式建立 GitHub 帳戶的連線，請在單獨的 Web 瀏覽器索引標籤中登出 GitHub。在 **GitHub token name (GitHub 符記名稱)** 中，輸入名稱來識別此連線，然後選擇 **Connect to GitHub (連線至 GitHub)**。網頁會提示您授權 CodeDeploy 為您的應用程式與 GitHub 互動。繼續步驟 10。
   + 若要使用您已建立的連線，請在 **GitHub token name (GitHub 符記名稱)** 中選取其名稱，然後選擇 **Connect to GitHub (連線至 GitHub)**。繼續步驟 8。
   + 若要建立連結到一個不一樣的 GitHub 帳戶，請在網路瀏覽器分頁中登出 GitHub。在 **GitHub token name (GitHub 符記名稱)** 中，輸入名稱來識別連線，然後選擇 **Connect to GitHub (連線至 GitHub)**。網頁會提示您授權 CodeDeploy 為您的應用程式與 GitHub 互動。繼續步驟 10。

1. 如果您尚未登入 GitHub，請依照 **Sign in (登入)** 頁面指示使用 GitHub 帳戶登入到您想連結的應用程式中。

1. 選擇 **Authorize application (授權應用程式)**。GitHub 授予 CodeDeploy 許可，以代表所選應用程式的登入 GitHub 帳戶與 GitHub 互動。

1. 如果您不想要建立部署，請選擇 **Cancel (取消)**。

**撤銷 CodeDeploy 與 GitHub 互動的許可**

1. 使用您要撤銷 AWS CodeDeploy 許可之 [GitHub ](https://github.com/dashboard) 帳戶的登入資料登入 GitHub。

1. 開啟 GitHub [應用程式](https://github.com/settings/applications)頁面，在授權應用程式清單中尋找 **CodeDeploy**，然後遵循 GitHub 程序撤銷應用程式的授權。

### CodeDeploy 與私有和公有 GitHub 儲存庫的互動
<a name="behaviors-interactions-private-and-public"></a>

CodeDeploy 支援從私有和公有 GitHub 儲存庫部署應用程式。當您授予 CodeDeploy 代表您存取 GitHub 的許可時，CodeDeploy 將具有 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/)。

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

您可以在原始程式碼變更時，從 CodePipeline 觸發部署。如需詳細資訊，請參閱 [CodePipeline](https://aws.amazon.com/codepipeline/)。