

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

# 教學課程：使用 CodeDeploy 從 GitHub 部署應用程式
<a name="tutorials-github"></a>

在本教學課程中，您會使用 CodeDeploy 將範例應用程式修訂從 GitHub 部署到執行 Amazon Linux 的單一 Amazon EC2 執行個體、單一 Red Hat Enterprise Linux (RHEL) 執行個體或單一 Windows Server 執行個體。如需 GitHub 與 CodeDeploy 整合的相關資訊，請參閱 [將 CodeDeploy 與 GitHub 整合](integrations-partners-github.md)。

**注意**  
您也可以使用 CodeDeploy 將應用程式修訂版從 GitHub 部署到 Ubuntu Server 執行個體。您可以使用 [步驟 2：建立範例應用程式修訂](tutorials-on-premises-instance-2-create-sample-revision.md)中所述的範例修訂版[教學課程：使用 CodeDeploy 將應用程式部署至內部部署執行個體 (Windows Server、Ubuntu Server 或 Red Hat Enterprise Linux)](tutorials-on-premises-instance.md)，也可以建立與 Ubuntu Server 執行個體和 CodeDeploy 相容的修訂版。若要建立您自己的修訂版，請參閱[規劃 CodeDeploy 的修訂](application-revisions-plan.md)和[將應用程式規格檔案新增至 CodeDeploy 的修訂版](application-revisions-appspec-file.md)

**Topics**
+ [先決條件](tutorials-github-prerequisites.md)
+ [步驟 1：設定 GitHub 帳戶](tutorials-github-create-github-account.md)
+ [步驟 2：建立 GitHub 儲存庫](tutorials-github-create-github-repository.md)
+ [步驟 3：上傳範例應用程式到您的 GitHub 儲存庫](tutorials-github-upload-sample-revision.md)
+ [步驟 4：佈建執行個體](tutorials-github-provision-instance.md)
+ [步驟 5：建立應用程式和部署群組](tutorials-github-create-application.md)
+ [步驟 6：將應用程式部署至執行個體](tutorials-github-deploy-application.md)
+ [步驟 7：監控和驗證部署](tutorials-github-verify.md)
+ [步驟 8：清理](tutorials-github-clean-up.md)

# 先決條件
<a name="tutorials-github-prerequisites"></a>

在開始本教學課程之前，執行以下作業：
+ 在您的本機電腦上安裝 Git。若要安裝 Git，請參閱 [Git 下載](http://git-scm.com/downloads)。
+ 完成 [CodeDeploy 入門](getting-started-codedeploy.md) 中的步驟，包含安裝及設定 AWS CLI。如果您想要使用 AWS CLI 從 GitHub 部署修訂到執行個體，這尤其重要。

# 步驟 1：設定 GitHub 帳戶
<a name="tutorials-github-create-github-account"></a>

您將需要 GitHub 帳戶來建立要存放修訂版的 GitHub 儲存庫。如果您已經有一個 GitHub 帳戶，請跳到[步驟 2：建立 GitHub 儲存庫](tutorials-github-create-github-repository.md)。

1. 移至 [https://github.com/join](https://github.com)。

1. 輸入使用者名稱、您的電子郵件地址，以及一個密碼。

1. 選擇 **Sign up for GitHub (註冊 GitHub)**，然後依照說明操作。

# 步驟 2：建立 GitHub 儲存庫
<a name="tutorials-github-create-github-repository"></a>

您將需要 GitHub 儲存庫來存放修訂版。

如果您已經有 GitHub 儲存庫，在這整個教學課程中請務必用它的名稱取代 **CodeDeployGitHubDemo**，然後請直接跳到[步驟 3：上傳範例應用程式到您的 GitHub 儲存庫](tutorials-github-upload-sample-revision.md)。

1. 在 [GitHub 首頁](https://github.com/dashboard)上，執行以下其中一項操作：
   + 在 **Your repositories (您的儲存庫)**，選擇 **New repository (新的儲存庫)**。
   + 在瀏覽列上，選擇 **Create new (新建)** (**\$1**)，然後選擇 **New repository (新的存放庫)**。

1. 在 **Create a new repository (建立新的存放庫)** 網頁中，執行下列動作：
   + 在 **Repository name (儲存庫名稱)** 方塊中，輸入 **CodeDeployGitHubDemo**。
   + 選取 **Public (公有)**。
**注意**  
選取預設的 **Public (公有)** 選項，表示任何人都可以查看這個儲存庫。您可以選取 **Private (私有)** 選項，以限制誰可以查看和遞交到儲存庫。
   + 清除 **Initialize this repository with a README (以 README 初始化這個儲存庫)** 核取方塊。您將在下一個階段手動建立一個 `README.md` 檔案。
   + 選擇**建立儲存庫**。

1. 依照您的本機指示輸入命令列，以建立儲存庫。
**注意**  
如果您已經在 GitHub 上啟用雙因素驗證，如果系統提示輸入密碼，請確認您輸入個人存取權杖代替 GitHub 登入密碼。如需詳細資訊，請參閱[提供您的 2FA 驗證碼](https://help.github.com/articles/providing-your-2fa-authentication-code/)。

**在本機 Linux、macOS 或 Unix 機器上：**

1. 從終端機執行以下命令，一次一個，其中 *user-name* 是您的 GitHub 使用者名稱：

   ```
   mkdir /tmp/CodeDeployGitHubDemo
   ```

   ```
   cd /tmp/CodeDeployGitHubDemo
   ```

   ```
   touch README.md
   ```

   ```
   git init
   ```

   ```
   git add README.md
   ```

   ```
   git commit -m "My first commit"
   ```

   ```
   git remote add origin https://github.com/user-name/CodeDeployGitHubDemo.git
   ```

   ```
   git push -u origin master
   ```

1. 在 `/tmp/CodeDeployGitHubDemo` 位置使終端機保持開啟。

**在本機 Windows 電腦上：**

1. 從命令提示字元以管理員身分執行執行下列命令，一次一個：

   ```
   mkdir c:\temp\CodeDeployGitHubDemo
   ```

   ```
   cd c:\temp\CodeDeployGitHubDemo
   ```

   ```
   notepad README.md
   ```

1. 在記事本中，儲存 `README.md` 檔案。關閉記事本。執行以下命令、一次一個，其中 *user-name* 是您的 GitHub 使用者名稱：

   ```
   git init
   ```

   ```
   git add README.md
   ```

   ```
   git commit -m "My first commit"
   ```

   ```
   git remote add origin https://github.com/user-name/CodeDeployGitHubDemo.git
   ```

   ```
   git push -u origin master
   ```

1. 在 `c:\temp\CodeDeployGitHubDemo`位置中使命令提示字元保持開啟。

# 步驟 3：上傳範例應用程式到您的 GitHub 儲存庫
<a name="tutorials-github-upload-sample-revision"></a>

在此步驟中，您將從公有 Amazon S3 儲存貯體將範例修訂複製到 GitHub 儲存庫。(為了簡化，對於此教學課程提供的範例修訂版是單一網頁)。

**注意**  
如果您使用其中一個修訂版，而不是我們的範例修訂版，您的修訂版必須：  
遵循 [規劃 CodeDeploy 的修訂](application-revisions-plan.md) 和 [將應用程式規格檔案新增至 CodeDeploy 的修訂版](application-revisions-appspec-file.md) 中的方針​。
使用對應的執行個體類型。
可從 GitHub 儀表板存取。
如果您的修訂版符合這些要求，請直接跳到[步驟 5：建立應用程式和部署群組](tutorials-github-create-application.md)。  
如果您要部署到 Ubuntu Server 執行個體，則需要將與 Ubuntu Server 執行個體和 CodeDeploy 相容的修訂版上傳至 GitHub 儲存庫。如需詳細資訊，請參閱[規劃 CodeDeploy 的修訂](application-revisions-plan.md)及[將應用程式規格檔案新增至 CodeDeploy 的修訂版](application-revisions-appspec-file.md)。

**Topics**
+ [從本機 Linux、macOS 或 Unix 機器推送範例修訂](#tutorials-github-upload-sample-revision-unixes)
+ [從本機 Windows 電腦推送範例修訂版](#tutorials-github-upload-sample-revision-windows)

## 從本機 Linux、macOS 或 Unix 機器推送範例修訂
<a name="tutorials-github-upload-sample-revision-unixes"></a>

您的終端機仍然開啟，例如 `/tmp/CodeDeployGitHubDemo` 位置，請一次執行以下一個命令：

**注意**  
如果您打算部署到 Windows Server 執行個體，請在 命令`SampleApp_Linux.zip`中`SampleApp_Windows.zip`取代 。

```
(Amazon S3 copy command)
```

```
unzip SampleApp_Linux.zip
```

```
rm SampleApp_Linux.zip
```

 

```
git add .
```

```
git commit -m "Added sample app"
```

```
git push
```

其中 *(Amazon S3 複製命令）* 是下列其中一項：
+ `aws s3 cp s3://aws-codedeploy-us-east-2/samples/latest/SampleApp_Linux.zip . --region us-east-2` 適用於美國東部 （俄亥俄） 區域
+ `aws s3 cp s3://aws-codedeploy-us-east-1/samples/latest/SampleApp_Linux.zip . --region us-east-1` 適用於美國東部 （維吉尼亞北部） 區域
+ `aws s3 cp s3://aws-codedeploy-us-west-1/samples/latest/SampleApp_Linux.zip . --region us-west-1`，表示美國西部 (加利佛尼亞北部) 區域
+ `aws s3 cp s3://aws-codedeploy-us-west-2/samples/latest/SampleApp_Linux.zip . --region us-west-2` 適用於美國西部 （奧勒岡） 區域
+ `aws s3 cp s3://aws-codedeploy-ca-central-1/samples/latest/SampleApp_Linux.zip . --region ca-central-1` 適用於加拿大 （中部） 區域
+ `aws s3 cp s3://aws-codedeploy-eu-west-1/samples/latest/SampleApp_Linux.zip . --region eu-west-1` 適用於歐洲 （愛爾蘭） 區域 
+ `aws s3 cp s3://aws-codedeploy-eu-west-2/samples/latest/SampleApp_Linux.zip . --region eu-west-2` 適用於歐洲 （倫敦） 區域 
+ `aws s3 cp s3://aws-codedeploy-eu-west-3/samples/latest/SampleApp_Linux.zip . --region eu-west-3` 適用於歐洲 （巴黎） 區域 
+ `aws s3 cp s3://aws-codedeploy-eu-central-1/samples/latest/SampleApp_Linux.zip . --region eu-central-1` 適用於歐洲 （法蘭克福） 區域
+ `aws s3 cp s3://aws-codedeploy-il-central-1/samples/latest/SampleApp_Linux.zip . --region il-central-1` 適用於以色列 （特拉維夫） 區域
+ `aws s3 cp s3://aws-codedeploy-ap-east-1/samples/latest/SampleApp_Linux.zip . --region ap-east-1` 適用於亞太區域 （香港） 區域
+ `aws s3 cp s3://aws-codedeploy-ap-northeast-1/samples/latest/SampleApp_Linux.zip . --region ap-northeast-1` 適用於亞太區域 （東京） 區域
+ `aws s3 cp s3://aws-codedeploy-ap-northeast-2/samples/latest/SampleApp_Linux.zip . --region ap-northeast-2` 適用於亞太區域 （首爾） 區域
+ `aws s3 cp s3://aws-codedeploy-ap-southeast-1/samples/latest/SampleApp_Linux.zip . --region ap-southeast-1` 適用於亞太區域 （新加坡） 區域
+ `aws s3 cp s3://aws-codedeploy-ap-southeast-2/samples/latest/SampleApp_Linux.zip . --region ap-southeast-2` 適用於亞太區域 （雪梨） 區域
+ `aws s3 cp s3://aws-codedeploy-ap-southeast-4/samples/latest/SampleApp_Linux.zip . --region ap-southeast-4` 適用於亞太區域 （墨爾本） 區域
+ `aws s3 cp s3://aws-codedeploy-ap-south-1/samples/latest/SampleApp_Linux.zip . --region ap-south-1` 適用於亞太區域 （孟買） 區域
+ `aws s3 cp s3://aws-codedeploy-sa-east-1/samples/latest/SampleApp_Linux.zip . --region sa-east-1` 適用於南美洲 （聖保羅） 區域

## 從本機 Windows 電腦推送範例修訂版
<a name="tutorials-github-upload-sample-revision-windows"></a>

 您的命令提示字元仍然開啟，例如 `c:\temp\CodeDeployGitHubDemo` 位置，請一次執行以下一個命令：

**注意**  
如果您打算部署到 Amazon Linux 或 RHEL 執行個體，請在 命令`SampleApp_Windows.zip`中`SampleApp_Linux.zip`取代 。

```
(Amazon S3 copy command)
```

直接解壓縮 ZIP 檔案的 `the` 內容到本機目錄 (例如 `c:\temp\CodeDeployGitHubDemo`)，而不是到新的子目錄。

```
git add .
```

```
git commit -m "Added sample app"
```

```
git push
```

其中 *(Amazon S3 複製命令）* 是下列其中一項：
+ `aws s3 cp s3://aws-codedeploy-us-east-2/samples/latest/SampleApp_Windows.zip . --region us-east-2` 適用於美國東部 （俄亥俄） 區域
+ `aws s3 cp s3://aws-codedeploy-us-east-1/samples/latest/SampleApp_Windows.zip . --region us-east-1` 適用於美國東部 （維吉尼亞北部） 區域
+ `aws s3 cp s3://aws-codedeploy-us-west-1/samples/latest/SampleApp_Windows.zip . --region us-west-1`，表示美國西部 (加利佛尼亞北部) 區域
+ `aws s3 cp s3://aws-codedeploy-us-west-2/samples/latest/SampleApp_Windows.zip . --region us-west-2` 適用於美國西部 （奧勒岡） 區域
+ `aws s3 cp s3://aws-codedeploy-ca-central-1/samples/latest/SampleApp_Windows.zip . --region ca-central-1` 適用於加拿大 （中部） 區域
+ `aws s3 cp s3://aws-codedeploy-eu-west-1/samples/latest/SampleApp_Windows.zip . --region eu-west-1` 適用於歐洲 （愛爾蘭） 區域
+ `aws s3 cp s3://aws-codedeploy-eu-west-2/samples/latest/SampleApp_Windows.zip . --region eu-west-2` 適用於歐洲 （倫敦） 區域
+ `aws s3 cp s3://aws-codedeploy-eu-west-3/samples/latest/SampleApp_Windows.zip . --region eu-west-3` 適用於歐洲 （巴黎） 區域
+ `aws s3 cp s3://aws-codedeploy-eu-central-1/samples/latest/SampleApp_Windows.zip . --region eu-central-1` 適用於歐洲 （法蘭克福） 區域
+ `aws s3 cp s3://aws-codedeploy-il-central-1/samples/latest/SampleApp_Windows.zip . --region il-central-1` 適用於以色列 （特拉維夫） 區域
+ `aws s3 cp s3://aws-codedeploy-ap-east-1/samples/latest/SampleApp_Windows.zip . --region ap-east-1` 適用於亞太區域 （香港） 區域
+ `aws s3 cp s3://aws-codedeploy-ap-northeast-1/samples/latest/SampleApp_Windows.zip . --region ap-northeast-1` 適用於亞太區域 （東京） 區域
+ `aws s3 cp s3://aws-codedeploy-ap-northeast-2/samples/latest/SampleApp_Windows.zip . --region ap-northeast-2` 適用於亞太區域 （首爾） 區域
+ `aws s3 cp s3://aws-codedeploy-ap-southeast-1/samples/latest/SampleApp_Windows.zip . --region ap-southeast-1` 適用於亞太區域 （新加坡） 區域
+ `aws s3 cp s3://aws-codedeploy-ap-southeast-2/samples/latest/SampleApp_Windows.zip . --region ap-southeast-2` 適用於亞太區域 （雪梨） 區域
+ `aws s3 cp s3://aws-codedeploy-ap-southeast-4/samples/latest/SampleApp_Windows.zip . --region ap-southeast-4` 適用於亞太區域 （墨爾本） 區域
+ `aws s3 cp s3://aws-codedeploy-ap-south-1/samples/latest/SampleApp_Windows.zip . --region ap-south-1` 適用於亞太區域 （孟買） 區域
+ `aws s3 cp s3://aws-codedeploy-sa-east-1/samples/latest/SampleApp_Windows.zip . --region sa-east-1` 適用於南美洲 （聖保羅） 區域

若要將您自己的修訂推送至 Ubuntu Server 執行個體，請將您的修訂複製到本機儲存庫，然後呼叫下列命令：

```
git add .
git commit -m "Added Ubuntu app"
git push
```

# 步驟 4：佈建執行個體
<a name="tutorials-github-provision-instance"></a>

在此步驟中，您會建立或設定將部署範本應用程式的執行個體。您可以部署到執行 CodeDeploy 支援的其中一個作業系統的 Amazon EC2 執行個體或內部部署執行個體。如需相關資訊，請參閱[CodeDeploy 代理程式支援的作業系統](codedeploy-agent.md#codedeploy-agent-supported-operating-systems)。（如果您已將執行個體設定為在 CodeDeploy 部署中使用，請跳至下一個步驟。)

**佈建執行個體**

1. 遵循 中的指示[啟動 Amazon EC2 執行個體 （主控台）](instances-ec2-create.md#instances-ec2-create-console)來佈建執行個體。

1. 啟動執行個體時，請記得在**新增標籤頁面上指定標籤**。如需如何指定標籤的詳細資訊，請參閱 [啟動 Amazon EC2 執行個體 （主控台）](instances-ec2-create.md#instances-ec2-create-console)。

**驗證 CodeDeploy 代理程式是否在執行個體上執行**
+ 遵循 中的指示[驗證 CodeDeploy 代理程式是否正在執行](codedeploy-agent-operations-verify.md)來驗證代理程式是否正在執行。

成功佈建執行個體並確認 CodeDeploy 代理程式正在執行後，請前往下一個步驟。

# 步驟 5：建立應用程式和部署群組
<a name="tutorials-github-create-application"></a>

在此步驟中，您將使用 CodeDeploy 主控台或 AWS CLI 來建立應用程式和部署群組，以用於從 GitHub 儲存庫部署範例修訂版。



## 建立應用程式和部署群組 (主控台)
<a name="tutorials-github-create-application-console"></a>

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

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

   

1. 選擇 **Create application (建立應用程式)**，然後選取 **Custom application (自訂應用程式)**。

1. 在 **Application name (應用程式名稱)** 中，輸入 **CodeDeployGitHubDemo-App**。

1. 在 **Compute Platform (運算平台)** 中，選擇 **EC2/On-premises (EC2/ 現場部署)**。

1. 選擇**建立應用程式**。

1. 在 **Deployment groups (部署群組)** 標籤中，選擇 **Create deployment group (建立部署群組)**。

1. 在 **Deployment group name (部署群組名稱)** 中，輸入 **CodeDeployGitHubDemo-DepGrp**。

1. 在**服務角色**中，選擇您在為 CodeDeploy [建立服務角色中建立的 CodeDeploy 服務角色](getting-started-create-service-role.md)名稱。

1. 在 **Deployment type (部署類型)** 中，選擇 **In-place (就地)**。

1. 在**環境組態**中，根據您使用的執行個體類型，選擇 **Amazon EC2 執行個體**或**內部部署執行個體**。對於 **Key (金鑰)** 和 **Value (數值)**，輸入套用到您的執行個體的標籤金鑰和數值，做為 [步驟 4：佈建執行個體](tutorials-github-provision-instance.md) 的一部分。

1. 在 **Deployment configuration (部署組態)** 中，選擇 **CodeDeployDefault.AllatOnce**。

1. 在 **Load Balancer (負載平衡器)** 中，清除 **Enable load balancing (啟用負載平衡)**。

1. 展開 **Advanced (進階)**。

1. 在 **Alarms (警示)** 中，選取 **Ignore alarm configuration (忽略警示組態)**。

1. 選擇 **Create deployment group (建立部署群組)**，然後繼續進行下一個步驟。

## 建立應用程式和部署群組 (CLI)
<a name="tutorials-github-create-application-cli"></a>

1. 呼叫 **create-application**命令，在名為 的 CodeDeploy 中建立應用程式`CodeDeployGitHubDemo-App`：

   ```
   aws deploy create-application --application-name CodeDeployGitHubDemo-App
   ```

1. 呼叫 **create-deployment-group** 命令，建立名為 `CodeDeployGitHubDemo-DepGrp` 的部署群組。
   + 如果您要部署到 Amazon EC2 執行個體，*ec2-tag-key* 是套用到 Amazon EC2 執行個體的 Amazon EC2 執行個體標籤金鑰，做為 的一部分[步驟 4：佈建執行個體](tutorials-github-provision-instance.md)。
   + 如果您要部署到 Amazon EC2 執行個體，*ec2-tag-value* 是套用至 Amazon EC2 執行個體的 Amazon EC2 執行個體標籤值，做為 的一部分[步驟 4：佈建執行個體](tutorials-github-provision-instance.md)。
   + 如果您是部署到現場部署執行個體，*on-premises-tag-key* 會是套用到您的現場部署執行個體的現場部署執行個體標籤金鑰，做為 [步驟 4：佈建執行個體](tutorials-github-provision-instance.md) 的一部分。
   + 如果您是部署到現場部署執行個體，*on-premises-tag-value* 會是套用到您的現場部署執行個體的現場部署執行個體標籤數值，做為 [步驟 4：佈建執行個體](tutorials-github-provision-instance.md) 的一部分。
   + *service-role-arn* 是您在[為 CodeDeploy 建立服務角色中建立之服務角色的服務角色](getting-started-create-service-role.md) ARN。(若要尋找服務角色 ARN，請按照[取得服務角色 ARN (CLI)](getting-started-create-service-role.md#getting-started-get-service-role-cli)中的指示)。

   ```
   aws deploy create-deployment-group --application-name CodeDeployGitHubDemo-App --ec2-tag-filters Key=ec2-tag-key,Type=KEY_AND_VALUE,Value=ec2-tag-value --on-premises-tag-filters Key=on-premises-tag-key,Type=KEY_AND_VALUE,Value=on-premises-tag-value --deployment-group-name CodeDeployGitHubDemo-DepGrp --service-role-arn service-role-arn
   ```
**注意**  
[create-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html) 命令支援建立觸發，導致將部署和執行個體中指定事件的相關 Amazon SNS 通知傳送給主題訂閱者。此命令也支援自動轉返部署和設定警示的選項，以在符合 Amazon CloudWatch 警示中的監控閾值時停止部署。本教學課程不包含這些動作的命令。

# 步驟 6：將應用程式部署至執行個體
<a name="tutorials-github-deploy-application"></a>

在此步驟中，您可以使用 CodeDeploy 主控台或 AWS CLI ，將範例修訂從 GitHub 儲存庫部署到您的執行個體。



## 部署修訂版本 (主控台)
<a name="tutorials-github-deploy-application-console"></a>

1. 在 **Deployment group details (部署群組詳細資訊)** 頁面上，選擇 **Create deployment (建立部署)**。

1. 在 **Deployment group (部署群組)** 中，選擇 **`CodeDeployGitHubDemo-DepGrp`**。

1. 在 **Revision type (修訂版類型)** 中，選擇 **GitHub**。

1. 在 **Connect to GitHub (連線至 GitHub)** 中，執行下列其中一項：
   + 若要為 CodeDeploy 應用程式建立 GitHub 帳戶的連線，請在單獨的 Web 瀏覽器索引標籤中登出 GitHub。在 **GitHub account (GitHub 帳戶)** 中，輸入名稱來識別此連線，然後選擇 **Connect to GitHub (連線至 GitHub)**。網頁會提示您為名為 的應用程式授權 CodeDeploy 與 GitHub 互動`CodeDeployGitHubDemo-App`。繼續步驟 5。
   + 若要使用您已建立的連線，請在 **GitHub account (GitHub 帳戶)** 中選取其名稱，然後選擇 **Connect to GitHub (連線至 GitHub)**。繼續步驟 7。
   + 若要建立連結到一個不一樣的 GitHub 帳戶，請在網路瀏覽器分頁中登出 GitHub。選擇 **Connect to a different GitHub account (連接到不同的 GitHub 帳戶)**，然後選擇 **Connect to GitHub (連接到 GitHub)**。繼續步驟 5。

1. 按照 **Sign in (登入)** 頁面上的指示，登入 GitHub 帳戶。

1. 在 **授權應用程式** 頁面上，請選擇 **授權應用程式**。

1. 在 CodeDeploy **Create 部署**頁面的**儲存庫名稱**中，輸入您用來登入的 GitHub 使用者名稱，後面接著正斜線 (`/`)，後面接著您推送應用程式修訂的儲存庫名稱 （例如，***my-github-user-name*/CodeDeployGitHubDemo**)。

   如果您不確定要輸入的值，或者您若想要指定不同的儲存庫：

   1. 在獨立的網路瀏覽器分頁中連結到您的 [GitHub 儀表板](https://github.com/dashboard)。

   1. 在 **Your repositories (您的儲存庫)** 中，將滑鼠指標移至目標儲存庫名稱上。出現工具提示顯示 GitHub 使用者或組織名稱之後接斜線 (`/`)，再接儲存庫名稱。輸入這個值到 **Repository name (儲存庫名稱)**。
**注意**  
如果目標儲存庫名稱沒有顯示在 **Your repositories (您的儲存庫)** 中，請使用 **Search GitHub (搜尋 GitHub)** 方塊，尋找目標儲存庫名稱以及 GitHub 使用者或組織名稱。

1. 在 **Commit ID (遞交 ID)** 方塊中，輸入與推送應用程式修訂版到 GitHub 相關的遞交 ID。

   如果您不確定要輸入的值：

   1. 在獨立的網路瀏覽器分頁中連結到您的 [GitHub 儀表板](https://github.com/dashboard)。

   1. 在**儲存庫**中，選擇 **CodeDeployGitHubDemo**。

   1. 在遞交清單中，尋找並複製與推送應用程式修訂版到 GitHub 相關的遞交 ID。此 ID 通常長度為 40 個字元，並且由字母和數字所組成。(請勿使用較短版本的遞交 ID，其通常是較長版本的前 10 個字元)。

   1. 將遞交 ID 貼至 **Commit ID (遞交 ID)** 方塊中。

1. 選擇 **Deploy (部署)**，並繼續下一個步驟。

## 若要部署修訂版 (CLI)
<a name="tutorials-github-deploy-application-cli"></a>

在您可以呼叫與 GitHub 互動的任何 AWS CLI 命令 （例如 **create-deployment**命令，接下來會呼叫） 之前，您必須授予 CodeDeploy 許可，以使用您的 GitHub 使用者帳戶來與`CodeDeployGitHubDemo-App`應用程式的 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. 選擇 **CodeDeployGitHubDemo-App**。

1. 在 **Deployments (部署)** 標籤上，選擇 **Create deployment (建立部署)**。
**注意**  
您將無法建立新的部署。這是目前授予 CodeDeploy 許可來代表 GitHub 使用者帳戶與 GitHub 互動的唯一方法。

1. 從**部署群組**中，選擇 **CodeDeployGitHubDemo-DepGrp**。

1. 在 **Revision type (修訂版類型)** 中，選擇 **GitHub**。

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

1. 按照 **Sign in (登入)** 頁面上的指示，使用您的 GitHub 使用者名稱或電子郵件和密碼登入。

1. 在 **授權應用程式** 頁面上，請選擇 **授權應用程式**。

1. 在 CodeDeploy **建立部署**頁面上，選擇**取消**。

1. 呼叫 **create-deployment** 命令從 GitHub 儲存庫的修訂版部署到執行個體，其中：
   + *repository* 是您的 GitHub 帳戶名稱，後面是正斜線 (`/`)，接著是您的儲存庫 (`CodeDeployGitHubDemo`) 的名稱，例如 `MyGitHubUserName/CodeDeployGitHubDemo`。

     如果您不確定要使用的值，或者您若想要指定不同的儲存庫：

     1. 在獨立的網路瀏覽器分頁中連結到您的 [GitHub 儀表板](https://github.com/dashboard)。

     1. 在 **Your repositories (您的儲存庫)** 中，將滑鼠指標移至目標儲存庫名稱上。出現工具提示顯示 GitHub 使用者或組織名稱之後接斜線 (`/`)，再接儲存庫名稱。這是要使用的值。
**注意**  
如果目標儲存庫名稱沒有出現在 **Your repositories (您的儲存庫)** 中，請使用 **Search GitHub (搜尋 GitHub)** 方塊，尋找目標儲存庫名稱以及對應的 GitHub 使用者或組織名稱。
   + *commit-id* 是與您推送至儲存庫 (例如 `f835159a...528eb76f`) 的應用程式修訂版的版本相關的遞交。

     如果您不確定要使用的值：

     1. 在獨立的網路瀏覽器分頁中連結到您的 [GitHub 儀表板](https://github.com/dashboard)。

     1. 在**儲存庫**中，選擇 **CodeDeployGitHubDemo**。

     1. 在遞交清單中，尋找與推送應用程式修訂版到 GitHub 相關的遞交 ID。此 ID 通常長度為 40 個字元，並且由字母和數字所組成。(請勿使用較短版本的遞交 ID，其通常是較長版本的前 10 個字元)。使用此值。

   如果您在本機 Linux、macOS 或 Unix 機器上工作：

   ```
   aws deploy create-deployment \
     --application-name CodeDeployGitHubDemo-App \
     --deployment-config-name CodeDeployDefault.OneAtATime \
     --deployment-group-name CodeDeployGitHubDemo-DepGrp \
     --description "My GitHub deployment demo" \
     --github-location repository=repository,commitId=commit-id
   ```

   如果您正在使用本機 Windows 電腦：

   ```
   aws deploy create-deployment --application-name CodeDeployGitHubDemo-App --deployment-config-name CodeDeployDefault.OneAtATime --deployment-group-name CodeDeployGitHubDemo-DepGrp --description "My GitHub deployment demo" --github-location repository=repository,commitId=commit-id
   ```

# 步驟 7：監控和驗證部署
<a name="tutorials-github-verify"></a>

在此步驟中，您將使用 CodeDeploy 主控台或 AWS CLI 來驗證部署是否成功。您將使用 Web 瀏覽器中查看部署到您建立或設定執行個體的網頁。

**注意**  
如果您要部署到 Ubuntu Server 執行個體，請使用您自己的測試策略來判斷部署的修訂版在執行個體上是否如預期運作，然後前往下一個步驟。

**監控和驗證部署 (主控台)**

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

   

1. 在部署清單中，尋找應用程式****值為 **CodeDeployGitHubDemo-App** 和**部署群組**值為 **CodeDeployGitHubDemo-DepGrp** 的資料列。如果 **Succeeded (成功)** 或 **Failed (失敗)** 未出現在 **Status (狀態)** 欄中，請定期選擇 **Refresh (重新整理)** 按鈕。

1. 如果 **Failed (失敗)** 出現在 **Status (狀態)** 欄中，請按照 [檢視執行個體詳細資訊 （主控台）](instances-view-details.md#instances-view-details-console) 中的指示，排除部署問題。

1. 如果 **Succeeded (成功)** 出現在 **Status (狀態)** 欄中，您現在可以透過 Web 瀏覽器驗證部署。我們的範例修訂版將單一網頁部署到執行個體。如果您要部署到 Amazon EC2 執行個體，請在 Web 瀏覽器中，前往執行個體`http://public-dns`的 （例如 `http://ec2-01-234-567-890.compute-1.amazonaws.com`)。

1. 如果您可以看到網頁，那麼恭喜！您現在已成功使用 AWS CodeDeploy 從 GitHub 部署修訂，您可以提前跳到 [步驟 8：清理](tutorials-github-clean-up.md)。

**若要監控和驗證部署 (CLI)**

1. 呼叫 **list-deployments** 命令以取得名為 `CodeDeployGitHubDemo-App` 之應用程式的部署 ID 以及名為 `CodeDeployGitHubDemo-DepGrp` 的部署群組。

   ```
   aws deploy list-deployments --application-name CodeDeployGitHubDemo-App --deployment-group-name CodeDeployGitHubDemo-DepGrp --query "deployments" --output text
   ```

1. 呼叫 **get-deployment** 命令，提供從 **list-deployments** 命令輸出的部署 ID：

   ```
   aws deploy get-deployment --deployment-id deployment-id --query "deploymentInfo.[status, creator]" --output text
   ```

1. 如果傳回 **Failed (失敗)** ，請按照 [檢視執行個體詳細資訊 （主控台）](instances-view-details.md#instances-view-details-console) 中的指示來排除部署問題。

1. 如果傳回 **Succeeded (成功)**，您現在可以嘗試透過 Web 瀏覽器驗證部署。我們的範例修訂版是部署到執行個體的單一網頁。如果您要部署到 Amazon EC2 執行個體，您可以在 Web 瀏覽器中檢視此頁面，方法是前往 `http://public-dns` Amazon EC2 執行個體的 （例如 `http://ec2-01-234-567-890.compute-1.amazonaws.com`)。

1. 如果您可以看到網頁，那麼恭喜！您已成功使用 AWS CodeDeploy 從 GitHub 儲存庫進行部署。

# 步驟 8：清理
<a name="tutorials-github-clean-up"></a>

若要避免您在本教學課程中使用的資源進一步收費，您必須終止 Amazon EC2 執行個體及其相關聯的資源。或者，您可以刪除與此教學課程相關聯的 CodeDeploy 部署元件記錄。如果您使用 GitHub 儲存庫只適用於此教學課程，則您現在可以將其刪除。

## 刪除 CloudFormation 堆疊 （如果您使用 CloudFormation 範本建立 Amazon EC2 執行個體）
<a name="tutorials-github-clean-up-cloudformation-template"></a>

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) 開啟 CloudFormation 主控台。

1. 在 **Stacks (堆疊)** 欄中，選擇開頭為 `CodeDeploySampleStack` 的堆疊。

1. 選擇 **刪除**。

1. 出現提示時，選擇 **Delete stack (刪除堆疊)**。Amazon EC2 執行個體和相關聯的 IAM 執行個體描述檔和服務角色會遭到刪除。

## 若要手動取消註冊和清除內部部署執行個體 (如果您佈建的是內部部署執行個體)
<a name="tutorials-github-clean-up-on-premises-instance"></a>

1. 使用 AWS CLI 對此處以 *your-instance-name* 表示的內部部署執行個體和*您所在區域的*關聯區域呼叫[取消註冊](https://docs.aws.amazon.com/cli/latest/reference/deploy/deregister.html)命令：

   ```
   aws deploy deregister --instance-name your-instance-name --no-delete-iam-user --region your-region
   ```

1. 從現場部署執行個體中，呼叫[解除安裝](https://docs.aws.amazon.com/cli/latest/reference/deploy/uninstall.html)命令：

   ```
   aws deploy uninstall
   ```

## 手動終止 Amazon EC2 執行個體 （如果您手動啟動 Amazon EC2 執行個體）
<a name="tutorials-github-clean-up-ec2-instance"></a>

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)：// 開啟 Amazon EC2 主控台。

1. 在導覽窗格的 **Instances (執行個體)** 下方，選擇 **Instances (執行個體)**。

1. 選取您要終止的 Amazon EC2 執行個體旁的方塊。在 **Actions (動作)** 選單中，指向 **Instance State (執行個體狀態)**，然後選擇 **Terminate (終止)**。

1. 出現提示時，選擇 **Yes, Terminate (是，終止)**。

## 刪除 CodeDeploy 部署元件記錄
<a name="tutorials-github-clean-up-codedeploy-records"></a>

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

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

   

1. 選擇 **CodeDeployGitHubDemo-App**。

1. 選擇**刪除應用程式**。

1. 當出現提示時，輸入 **Delete**，然後選擇 **Delete (刪除)**。

## 刪除 GitHub 儲存庫
<a name="tutorials-github-clean-up-github-repository"></a>

請參閱 GitHub 中的[刪除儲存庫](https://help.github.com/articles/deleting-a-repository/)說明。 [GitHub ](https://help.github.com)