

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

# 使用 CodeDeploy 代理程式
<a name="codedeploy-agent"></a>

 AWS CodeDeploy 代理程式是在執行個體上安裝和設定時，可讓該執行個體在 CodeDeploy 部署中使用的軟體套件。

AWS 支援 CodeDeploy 代理程式的最新次要版本。目前最新的次要版本為 1.8.x。

**注意**  
 只有在您部署到 EC2/現場部署運算平台時，才需要 CodeDeploy 代理程式。使用 Amazon ECS 或 AWS Lambda 運算平台的部署不需要代理程式。

安裝代理程式時，組態檔案會置放於執行個體上。檔案會用於指定代理程式的運作方式。此組態檔案會指定目錄路徑和其他設定 AWS CodeDeploy ，以供 在與執行個體互動時使用。您可以在檔案中變更一部分的組態選項。如需有關使用 CodeDeploy 代理程式組態檔案的資訊，請參閱 [CodeDeploy 代理程式組態參考](reference-agent-configuration.md)。

如需使用 CodeDeploy 代理程式的詳細資訊，例如安裝、更新和驗證版本的步驟，請參閱 [管理 CodeDeploy 代理程式操作](codedeploy-agent-operations.md)。

**Topics**
+ [CodeDeploy 代理程式支援的作業系統](#codedeploy-agent-supported-operating-systems)
+ [CodeDeploy 代理程式的通訊協定和連接埠](#codedeploy-agent-outbound-port)
+ [CodeDeploy 代理程式的版本歷史記錄](#codedeploy-agent-version-history)
+ [管理 CodeDeploy 程序](#codedeploy-agent-processes)
+ [應用程式修訂和日誌檔案清除](#codedeploy-agent-revisions-logs-cleanup)
+ [CodeDeploy 代理程式安裝的檔案](#codedeploy-agent-install-files)
+ [管理 CodeDeploy 代理程式操作](codedeploy-agent-operations.md)

## CodeDeploy 代理程式支援的作業系統
<a name="codedeploy-agent-supported-operating-systems"></a>

### 支援的 Amazon EC2 AMI 作業系統
<a name="codedeploy-agent-supported-operating-systems-ec2"></a>

CodeDeploy 代理程式已在下列 Amazon EC2 AMI 作業系統上進行測試：
+ Amazon Linux 2023 (ARM、x86)
+ Amazon Linux 2 (ARM、x86)
+ Microsoft Windows Server 2022、2019
+ Red Hat Enterprise Linux (RHEL) 9.x、8.x、7.x
+ Ubuntu Server 22.04 LTS、20.04 LTS、18.04 LTS、16.04 LTS

CodeDeploy 代理程式可供您做為開放原始碼，以適應您的需求。它可以與其他 Amazon EC2 AMI 作業系統搭配使用。如需詳細資訊，請前往 GitHub 中的 [CodeDeploy 代理](https://github.com/aws/aws-codedeploy-agent)程式儲存庫。

### 支援的現場部署作業系統
<a name="codedeploy-agent-supported-operating-systems-on-premises"></a>

CodeDeploy 代理程式已在下列內部部署作業系統上進行測試：
+ Microsoft Windows Server 2022、2019
+ Red Hat Enterprise Linux (RHEL) 9.x、8.x、7.x
+ Ubuntu Server 22.04 LTS、20.04 LTS

CodeDeploy 代理程式可供您做為開放原始碼，以適應您的需求。它可搭配其他現場部署執行個體作業系統使用。如需詳細資訊，請前往 GitHub 中的 [CodeDeploy 代理](https://github.com/aws/aws-codedeploy-agent)程式儲存庫。

## CodeDeploy 代理程式的通訊協定和連接埠
<a name="codedeploy-agent-outbound-port"></a>

CodeDeploy 代理程式會透過連接埠 443 使用 HTTPS 進行傳出通訊。

當 CodeDeploy 代理程式在 EC2 執行個體上執行時，將使用 [EC2 中繼資料](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html)端點擷取執行個體相關資訊。深入了解[限制和授與執行個體中繼資料服務存取](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instancedata-data-retrieval.html#instance-metadata-limiting-access)的相關資訊。

## CodeDeploy 代理程式的版本歷史記錄
<a name="codedeploy-agent-version-history"></a>

您的執行個體必須執行 CodeDeploy 代理程式的支援版本。目前支援的最低版本為 1.8.x。

**注意**  
建議使用最新版本的 CodeDeploy 代理程式。如果您遇到問題，請先更新至最新版本，再聯絡 AWS Support。如需升級資訊，請參閱 [更新 CodeDeploy 代理程式](codedeploy-agent-operations-update.md)。

下表列出 CodeDeploy 代理程式的所有版本，以及每個版本隨附的功能和增強功能。


| 版本 | 版本日期 | 詳細資訊 | 
| --- | --- | --- | 
|  1.8.1  |  2026 年 2 月 3 日  |  **已修正**：S3 端點錯誤修正。 **新增**：Sectigo CA 憑證至 Windows CA 清單。  | 
|  1.8.0  |  2025 年 7 月 31 日  |  **已變更**：將適用於 Windows 的 CodeDeploy 代理程式中的 Bundled Ruby 升級至 3.2。  | 
|  1.7.1  |  2024 年 11 月 14 日  |  **已變更**：更新了安全修補程式的相依性。  | 
|  1.7.0  |  2024 年 3 月 6 日  |  **新增**：CodeDeploy 代理程式`:disable_imds_v1:`組態檔案的組態設定。使用此設定可在發生 IMDSv2 錯誤時停用 IMDSv1 IMDSv2的後援。預設為 `false`（啟用後援）。如需詳細資訊，請參閱 [CodeDeploy 代理程式組態參考](https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-agent-configuration.html)。 **新增**：支援 Red Hat Enterprise Linux 9 (RHEL 9) 作業系統。 **新增**：支援 Ubuntu Server 上的 Ruby 3.1 和 3.2 版。 **已修正**：如果 CodeDeploy 代理程式組態檔案無法載入，CodeDeploy 代理程式現在會產生易於使用的錯誤。 **已變更**：在適用於 Windows 的 CodeDeploy 代理程式中，將 Ruby 升級到 2.7.8-1。  | 
|  1.6.0  |  2023 年 3 月 30 日  |  **新增**：支援 Ruby 3.1、3.2。 **新增**：支援 Amazon Linux 2023。 **新增**：支援 Windows Server 2022。 **已變更**： 的預設設定`verbose`現在`false`適用於 Windows Server 執行個體。若要繼續在 Windows 的日誌檔案中列印偵錯訊息，您必須將 `verbose`設定為 `true`。 **已移除**：支援 Windows Server 2016 和 Windows Server 2012 R2。 **已移除**：支援 Amazon Linux 2018.03.x。  | 
|  1.5.0  |  2023 年 3 月 3 日  |  **新增**：支援 Ruby 3。 **新增**：支援 Ubuntu 22.04。 **已修正**：啟動後不久重新啟動 CodeDeploy 代理程式會導致代理程式停止運作的問題。 **已變更**：如果代理程式服務在執行掛接指令碼時意外重新啟動，則 CodeDeploy 代理程式現在會在代理程式啟動時失敗主機部署。此修正可讓您避免在重試部署之前等待 70 分鐘的逾時期間。 **棄用通知**：CodeDeploy 代理程式 1.5.0 是支援 Windows Server 2016 和 Windows Server 2012 R2 的最後一個版本。 **已移除：**支援 Ubuntu 14.04 LTS、Windows Server 2008 R2 和 Windows Server 2008 R2 32 位元上的 CodeDeploy 代理程式。  | 
|  1.4.1  |  2022 年 12 月 6 日  |  **已修正**：與記錄相關的安全性漏洞。 **增強功能**：改善輪詢主機命令時的日誌記錄。  | 
|  1.4.0  |  2022 年 8 月 31 日  |  **新增**：支援 Red Hat Enterprise Linux 8。 **新增**：支援 Windows CodeDeploy 代理程式上的長檔案路徑。若要啟用長檔案路徑，您需要設定適當的 Windows 登錄機碼，然後重新啟動您的代理程式。如需詳細資訊，請參閱[長檔案路徑會導致「沒有此類檔案或目錄」錯誤](troubleshooting-deployments.md#troubleshooting-long-file-paths)。 **已修正**：磁碟已滿時解壓縮操作的問題。CodeDeploy 代理程式現在會偵測 unzip 的[結束程式碼 50](https://linux.die.net/man/1/unzip)，指出完整磁碟、移除部分解壓縮的檔案，並引發例外狀況，以將失敗發佈至 CodeDeploy 伺服器。錯誤訊息顯示為生命週期事件錯誤訊息，且主機層級部署將停止，而不會卡住或逾時。 **已修正**：會導致代理程式失敗的問題。 **已修正**：勾點在邊緣案例競賽條件期間會逾時的問題。沒有指令碼的勾點現在將繼續，不會再導致失敗或逾時。 **已變更**：已移除 CodeDeploy 代理程式`bin`目錄中的`update`指令碼，因為它不再使用。 **已變更**：適用於 Windows Server 的 CodeDeploy 代理程式現在綁定 Ruby 2.7。 **已變更**：新增了新的環境變數，供掛接指令碼根據部署套件的來源 (Amazon S3 或 GitHub) 使用。 如需詳細資訊，請參閱[勾點的環境變數可用性](reference-appspec-file-structure-hooks.md#reference-appspec-file-structure-environment-variable-availability)。  **棄用通知**：CodeDeploy 代理程式 1.4.0 是將包含 32 位元 Windows Server 安裝程式的最後一個版本。 **棄用通知**：CodeDeploy 代理程式 1.4.0 是支援 Windows Server 2008 R2 的最後一個版本。 **已移除**：支援下列 Amazon EC2 AMIs 上的 CodeDeploy 代理程式：Amazon Linux 2014.09、2016.03、2016.09 和 2017.03。   | 
|  1.3.2  |  2021 年 5 月 6 日  |   CodeDeploy 代理程式 1.3.2 解決了會影響執行代理程式之 Windows 主機的 [CVE-2018-1000201](https://nvd.nist.gov/vuln/detail/CVE-2018-1000201)。CVE 引用 ruby-ffi，這是 CodeDeploy 代理程式的相依性。如果您的代理程式已安裝 Amazon EC2 Systems Manager (SSM)，且設定為自動更新，則不需要採取任何動作。否則，需要採取動作來手動更新代理程式。若要升級代理程式，請遵循[在 Windows Server 上更新 CodeDeploy 代理程式](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-update-windows.html)中的指示。   **已修正**：在 Ubuntu 20.04 及更新版本上安裝 CodeDeploy 代理程式時發生問題。 **已修正**：擷取壓縮檔案時發生間歇性問題，因為未正確處理相對路徑。 **新增**：支援 Windows 執行個體的 [AWS PrivateLink 和 VPC 端點](https://docs.aws.amazon.com//vpc/latest/userguide/endpoint-services-overview.html)。 **新增**：AppSpec 檔案改進，如下所述。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/codedeploy/latest/userguide/codedeploy-agent.html) **升級**：CodeDeploy 現在使用適用於 Ruby 3.0 的 AWS SDK。  | 
|  1.3.1  |  2020 年 12 月 22 日  |  **已修正**：1.3.0 導致內部部署執行個體無法啟動的問題。  | 
|  1.3.0  |  2020 年 11 月 10 日  |   此版本已棄用。  **已修正**：已移除不再使用的過期憑證。 **已修正**：從 使用的代理程式解除安裝指令碼中移除提示訊息 AWS Systems Manager，讓您更輕鬆地將主機或機群降級為舊版代理程式。  | 
|  1.2.1  |  2020 年 9 月 23 日  |  **已變更**：將 適用於 Ruby 的 AWS SDK 相依性從 v2 升級到 v3。 **新增**：支援 IMDSv2。如果 IMDSv2 http 請求失敗，請包含 IMDSv1 的無提示後援。 IMDSv2  **已變更**：已更新安全修補程式的 Rake 和 Rubyzip 相依性。 **已修正**：確保空的 PID 檔案會傳回 狀態，`No CodeDeploy Agent Running`並在代理程式啟動時清除 PID 檔案。  | 
|  1.1.2  |  2020 年 8 月 4 日  |  **新增**：支援 Ubuntu Server 19.10 和 20.04。 **注意**：19.10 版已達到其end-of-life，Ubuntu 或 CodeDeploy 不再支援。 **新增**：Linux 和 Ubuntu 的記憶體效率改善，以更及時地釋出預留記憶體。 **新增**：與 Windows Server「無提示清除」的相容性，這在某些情況下會導致代理程式沒有回應。 **新增**：在清除期間忽略非空白目錄，以避免部署失敗。 **新增**：支援洛杉磯 (LA) 的 AWS Local Zone。 **新增**：從執行個體中繼資料擷取 AZ，以提供 AWS Local Zones 的相容性。 **已新增**：使用者現在可以在子目錄中提供封存，而且不需要將其存放在根目錄中。 **新增**：偵測到 Rubyzip 可能導致記憶體洩漏的問題。更新 unzip 命令，先嘗試使用系統安裝的 unzip 公用程式，再使用 Rubyzip。 **新增**： `:enable_auth_policy:` 做為代理程式組態設定。 **已變更**：解壓縮警告現在會被忽略，因此部署將繼續。  | 
|  1.1.0  |  2020 年 6 月 30 日  |  **已變更**：CodeDeploy 代理程式的版本控制現在遵循 Ruby 標準版本控制慣例。 **已新增**：安裝和更新命令的新參數，以允許從命令列安裝特定的代理程式版本。 **已移除**：已移除適用於 Linux 和 Ubuntu 的 CodeDeploy 代理程式自動更新程式。若要設定 CodeDeploy 代理程式的自動更新，請參閱[使用 安裝 CodeDeploy 代理程式 AWS Systems Manager](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install-ssm.html)。  | 
|  1.0.1.1597  |  2018 年 11 月 15 日  |  **增強功能**：CodeDeploy 支援 Ubuntu 18.04。 **增強功能**：CodeDeploy 支援 Ruby 2.5。 **增強功能**：CodeDeploy 支援 FIPS 端點。如需 FIPS 端點的詳細資訊，請參閱 [FIPS 140-2 概觀](https://aws.amazon.com/compliance/fips/)。如需可與 CodeBuild 搭配使用的端點，請參閱 [CodeDeploy 區域和端點](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)。  | 
|  1.0.1.1518  |  2018 年 6 月 12 日  |  **增強功能**：修正 CodeDeploy 代理程式在接受輪詢請求時關閉時導致錯誤的問題。 **增強功能**：新增部署追蹤功能，可防止 CodeDeploy 代理程式在部署進行中時關閉。 **加強功能**：改善刪除檔案時的效能。  | 
|  1.0.1.1458  |  2018 年 3 月 6 日  |  **注意**：現已不支援此版本。如果您使用此版本，您的部署可能會失敗。 **加強功能**：改善憑證驗證，支援更多受信任的授權單位。 **加強功能**：修正包含 BeforeInstall 生命週期事件的部署期間造成本機 CLI 失敗的問題。 **增強功能**：修正 CodeDeploy 代理程式更新時，可能導致作用中部署失敗的問題。  | 
|  1.0.1.1352  |  2017 年 11 月 16 日  |  **注意**：現已不支援此版本。如果您使用此版本，您的部署可能會失敗。 **功能**：推出一項新功能，用於測試和偵錯已安裝 CodeDeploy 代理程式的本機機器或執行個體上的 EC2/現場部署。  | 
|  1.0.1.1106  |  2017 年 5 月 16 日  |  **注意**：現已不支援此版本。如果您使用此版本，您的部署可能會失敗。 **功能**：在不屬於最近一次成功部署之應用程式修訂的目標位置中，針對處理內容的功能推出新支援。現有內容的部署選項現在包含保留內容、覆寫內容，或令部署失敗。 **增強功能**：讓 CodeDeploy 代理程式與 適用於 Ruby 的 AWS SDK (aws-sdk-core 2.9.2) 的 2.9.2 版相容。  | 
|  1.0.1.1095  |  2017 年 3 月 29 日  |  **注意**：現已不支援此版本。如果您使用此版本，您的部署可能會失敗。 **增強功能**：在中國 （北京） 區域引進對 CodeDeploy 代理程式的支援。 **增強功能**：當由生命週期事件掛鉤調用時，啟用 Puppet 以在 Windows Server 執行個體上執行。 **加強功能**：改善 `untar` 操作的處理。  | 
| 1.0.1.1067 | 2017 年 1 月 6 日 |  **注意**：現已不支援此版本。如果您使用此版本，您的部署可能會失敗。 **加強功能**：修訂許多錯誤訊息，包含造成部署失敗的更明確原因。 **增強功能**：修正 CodeDeploy 代理程式無法識別某些部署期間要部署之正確應用程式修訂版的問題。 **加強功能**：還原在 `untar` 操作之前或之後使用 `pushd` 和 `popd` 的方法。  | 
| 1.0.1.1045 | 2016 年 11 月 21 日 |  **注意**：現已不支援此版本。如果您使用此版本，您的部署可能會失敗。 **增強功能**：讓 CodeDeploy 代理程式與 適用於 Ruby 的 AWS SDK (aws-sdk-core 2.6.11) 的 2.6.11 版相容。  | 
| 1.0.1.1037 | 2016 年 10 月 19 日 |  **注意**：現已不支援此版本。如果您使用此版本，您的部署可能會失敗。 Amazon Linux、RHEL 和 Ubuntu Server 執行個體的 CodeDeploy 代理程式已更新，變更如下。對於 Windows Server 執行個體，最新版本仍為 1.0.1.998。 **加強功能**：代理程式現在可以判斷執行個體上安裝的 Ruby 版本，並使用該版本呼叫 `codedeploy-agent` 指令碼。  | 
| 1.0.1.1011.1 | 2016 年 8 月 17 日 |  **注意**：現已不支援此版本。如果您使用此版本，您的部署可能會失敗。 **加強功能**：因殼層支援問題，移除 1.0.1.1011 版推出的變更。此版本的代理程式在功能上與 2016 年 7 月 11 日發行的 1.0.1.998 版相同。 | 
| 1.0.1.1011 | 2016 年 8 月 15 日 |  **注意**：現已不支援此版本。如果您使用此版本，您的部署可能會失敗。 Amazon Linux、RHEL 和 Ubuntu Server 執行個體的 CodeDeploy 代理程式已透過下列變更進行更新。對於 Windows Server 執行個體，最新版本仍為 1.0.1.998。**功能**：新增了在使用 systemd init 系統的作業系統上使用 bash shell 調用 CodeDeploy 代理程式的支援。增強功能：已啟用 CodeDeploy 代理程式和 CodeDeploy 代理程式更新程式中所有 Ruby 2.x 版本的支援。更新的 CodeDeploy 代理程式不再僅依賴 Ruby 2.0。(CodeDeploy 代理程式安裝程式的 deb 和 rpm 版本仍然需要 Ruby 2.0。) | 
| 1.0.1.998 | 2016 年 7 月 11 日 |  **注意**：現已不支援此版本。如果您使用此版本，您的部署可能會失敗。 **增強功能**：已修正對使用*根*目錄以外的使用者設定檔執行 CodeDeploy 代理程式的支援。名為 `USER` 的變數現已取代為 `CODEDEPLOY_USER`，避免與環境變數產生衝突。  | 
| 1.0.1.966 | 2016 年 6 月 16 日 |  **注意**：現已不支援此版本。如果您使用此版本，您的部署可能會失敗。 **功能**：引進對使用*根*目錄以外的使用者設定檔執行 CodeDeploy 代理程式的支援。 **增強功能**：已修正指定您希望 CodeDeploy 代理程式為部署群組封存之應用程式修訂版數量的支援。 **增強功能**：讓 CodeDeploy 代理程式與 適用於 Ruby 的 AWS SDK (aws-sdk-core 2.3) 的 2.3 版相容。 **加強功能**：修正部署期間的 UTF-8 編碼問題。 **加強功能**：改善識別程序名稱的準確度。  | 
| 1.0.1.950 | 2016 年 3 月 24 日 |  **注意**：現已不支援此版本。如果您使用此版本，您的部署可能會失敗。 **功能**：新增安裝代理支援。 **增強功能**：更新安裝指令碼，如果已安裝最新版本，則不下載 CodeDeploy 代理程式。  | 
| 1.0.1.934 | 2016 年 2 月 11 日 |  **注意**：現已不支援此版本。如果您使用此版本，您的部署可能會失敗。 **功能**：引進指定您希望 CodeDeploy 代理程式為部署群組封存之應用程式修訂版數量的支援。  | 
| 1.0.1.880 | 2016 年 1 月 11 日 | **注意**：現已不支援此版本，並可能導致部署失敗。 **增強功能**：讓 CodeDeploy 代理程式與 適用於 Ruby 的 AWS SDK (aws-sdk-core 2.2) 的 2.2 版相容。仍支援 2.1.2 版本。  | 
| 1.0.1.854 | 2015 年 11 月 17 日 | **注意**：現已不支援此版本。如果您使用此版本，您的部署可能會失敗。 **功能**：推出 SHA-256 雜湊演算法支援。 **功能**：推出 `.version` 檔案中的版本追蹤支援。 **功能**：讓部署群組 ID 可透過環境變數使用。 **增強功能**：新增支援使用 Amazon CloudWatch Logs 監控 CodeDeploy 代理程式日誌。 [Amazon CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html)  | 

如需相關資訊，請參閱以下內容：
+ [判斷 CodeDeploy 代理程式的版本](codedeploy-agent-operations-version.md)
+ [安裝 CodeDeploy 代理程式](codedeploy-agent-operations-install.md)

如需 CodeDeploy 代理程式版本的歷史記錄，請參閱 [ GitHub 上的發行儲存庫](https://github.com/aws/aws-codedeploy-agent/releases)。

## 管理 CodeDeploy 程序
<a name="codedeploy-agent-processes"></a>

CodeDeploy 代理程式 (rpm 和 deb) 的所有 Linux 發行版本預設使用[系統化](https://systemd.io/)來管理代理程式程序。

不過，rpm 和 deb 分佈都隨附位於 的啟動指令碼`/etc/init.d/codedeploy-agent`。根據您使用的分佈，使用 等命令時`sudo service codedeploy-agent restart`，`/etc/init.d`可能會執行 的指令碼來啟動代理程式程序，而不是允許 `systemd` 管理程序。在 執行指令碼`/etc/init.d`是不理想的。

為了避免此問題，對於支援 的系統`systemd`，我們建議將 `systemctl`公用程式用於任何代理程式操作，而不是使用 `service`命令。

例如，若要重新啟動 CodeDeploy 代理程式，請使用 `sudo systemctl restart codedeploy-agent`而非具有 `service`公用程式的同等命令。

## 應用程式修訂和日誌檔案清除
<a name="codedeploy-agent-revisions-logs-cleanup"></a>

CodeDeploy 代理程式會在執行個體上封存修訂和日誌檔案。CodeDeploy 代理程式會清除這些成品，以節省磁碟空間。

**應用程式修訂部署日誌**：您可以使用代理程式組態檔案中的 **：max\$1revisions：** 選項，輸入任何正整數來指定要封存的應用程式修訂數目。CodeDeploy 也會封存這些修訂的日誌檔案。所有其他的項目都會遭到刪除，除了最後一次成功部署的日誌檔案。該日誌檔案一律予以保留，即使失敗的部署數超過保留的修訂數也一樣。如果未指定任何值，除了目前部署的修訂之外，CodeDeploy 還會保留五個最新的修訂。

**CodeDeploy 日誌**：對於 Amazon Linux、Ubuntu Server 和 RHEL 執行個體，CodeDeploy 代理程式會在 `/var/log/aws/codedeploy-agent` 資料夾下輪換日誌檔案。日誌檔案會在每天 00:00:00 (執行個體時間) 進行輪換。日誌檔案會在七天之後刪除。輪換日誌檔案的命名模式為 `codedeploy-agent.YYYYMMDD.log`。

## CodeDeploy 代理程式安裝的檔案
<a name="codedeploy-agent-install-files"></a>

CodeDeploy 代理程式會將修訂版、部署歷史記錄和部署指令碼存放在執行個體的根目錄中。此目錄的預設名稱和位置為：

`'/opt/codedeploy-agent/deployment-root'` 適用於 Amazon Linux、Ubuntu Server 和 RHEL 執行個體。

`'C:\ProgramData\Amazon\CodeDeploy'` 適用於 Windows Server 執行個體。

您可以使用 CodeDeploy 代理程式組態檔案中的 **root\$1dir** 設定來設定目錄的名稱和位置。如需詳細資訊，請參閱[CodeDeploy 代理程式組態參考](reference-agent-configuration.md)。

以下是根目錄下檔案及目錄結構的範例。結構假設有 N 個部署群組，且每個部署群組都包含 N 個部署。

```
|--deployment-root/
|-- deployment group 1 ID 
|    |-- deployment 1 ID 
|    |    |-- Contents and logs of the deployment's revision
|    |-- deployment 2 ID
|    |    |-- Contents and logs of the deployment's revision
|    |-- deployment N ID
|    |    |-- Contents and logs of the deployment's revision
|-- deployment group 2 ID
|    |-- deployment 1 ID
|    |    |-- bundle.tar
|    |    |-- deployment-archive
|    |    |    | -- contents of the deployment's revision
|    |    |-- logs
|    |    |    | -- scripts.log     
|    |-- deployment 2 ID
|    |    |-- bundle.tar
|    |    |-- deployment-archive
|    |    |    | -- contents of the deployment's revision
|    |    |-- logs
|    |    |    | -- scripts.log     
|    |-- deployment N ID
|    |    |-- bundle.tar
|    |    |-- deployment-archive
|    |    |    | -- contents of the deployment's revision
|    |    |-- logs
|    |    |    | -- scripts.log     
|-- deployment group N ID
|    |-- deployment 1 ID
|    |    |-- Contents and logs of the deployment's revision
|    |-- deployment 2 ID
|    |    |-- Contents and logs of the deployment's revision
|    |-- deployment N ID
|    |    |-- Contents and logs of the deployment's revision
|-- deployment-instructions
|    |-- [deployment group 1 ID]_cleanup
|    |-- [deployment group 2 ID]_cleanup
|    |-- [deployment group N ID]_cleanup
|    |-- [deployment group 1 ID]_install.json
|    |-- [deployment group 2 ID]_install.json
|    |-- [deployment group N ID]_install.json
|    |-- [deployment group 1 ID]_last_successful_install
|    |-- [deployment group 2 ID]_last_successful_install
|    |-- [deployment group N ID]_last_successful_install
|    |-- [deployment group 1 ID]_most_recent_install
|    |-- [deployment group 2 ID]_most_recent_install
|    |-- [deployment group N ID]_most_recent_install
|-- deployment-logs
|    |-- codedeploy-agent-deployments.log
```


+  **部署群組 ID** 資料夾表示您的每個部署群組。部署群組目錄的名稱便是其 ID (例如，`acde1916-9099-7caf-fd21-012345abcdef`)。每個部署群組目錄都會為該部署群組中的每一次嘗試部署包含一個子目錄。

   您可以使用 [batch-get-deployments](https://docs.aws.amazon.com/cli/latest/reference/deploy/batch-get-deployments.html) 命令來尋找部署群組 ID。
+  **部署 ID** 資料夾表示部署群組中的每一個部署。每一個部署目錄的名稱便是其 ID。每個資料夾都包含：
  +  **bundle.tar** – 包含部署修訂內容的壓縮檔案。若要檢視修訂內容，則可使用 zip 格式的解壓縮公用程式。
  +  **deployment-archive** – 包含部署修訂內容的目錄。
  +  **logs**，一個包含 `scripts.log` 檔案的目錄。此檔案會列出部署 AppSpec 檔案中指定之所有指令碼的輸出。

   如果您想要尋找部署的資料夾，但不知道其部署 ID 或部署群組 ID，您可以使用 [AWS CodeDeploy 主控台](https://console.aws.amazon.com/codedeploy)或 AWS CLI 來尋找它們。如需詳細資訊，請參閱[檢視 CodeDeploy 部署詳細資訊](deployments-view-details.md)。

   部署群組中預設可封存的部署數上限為五。當到達這數字後，便會封存未來的部署，並刪除最舊的封存。您可以使用 CodeDeploy 代理程式組態檔案中的 **max\$1revisions** 設定來變更預設值。如需詳細資訊，請參閱[CodeDeploy 代理程式組態參考](reference-agent-configuration.md)。
**注意**  
 若您想要還原封存部署所使用的硬碟空間，請更新 **max\$1revisions** 設定，將該值減少 1 或 2。下一個部署會刪除封存部署，所以這個數目等於是您指定的。
+  **deployment-instructions** 包含每個部署群組的四個文字檔：
  + **[Deployment Group ID]-cleanup**，一個文字檔，具有在部署期間執行之每個命令的還原版本undo 。範例檔案名稱為`acde1916-9099-7caf-fd21-012345abcdef-cleanup` 
  + **[Deployment Group ID]-install.json**，在最新的部署期間建立的 JSON 檔。它包含在部署中執行的命令。範例檔案名稱為`acde1916-9099-7caf-fd21-012345abcdef-install.json`
  + **[Deployment Group ID]\$1last\$1successfull\$1install**，一個文字檔，其列出上一次成功部署的封存目錄。當 CodeDeploy 代理程式已將部署應用程式中的所有檔案複製到執行個體時，就會建立此檔案。CodeDeploy 代理程式會在下次部署時使用它，以判斷要執行哪些 `ApplicationStop`和 `BeforeInstall`指令碼。範例檔案名稱為`acde1916-9099-7caf-fd21-012345abcdef_last_successfull_install`
  + **[Deployment Group ID]\$1most\$1recent\$1install**，一個文字檔，其列出最近部署的封存目錄的名稱。這個檔案是在部署中的檔案成功下載時建立的。[deployment group ID]\$1last\$1successfull\$1install 檔案則在下載的檔案複製到其最終目的地後建立。範例檔案名稱為`acde1916-9099-7caf-fd21-012345abcdef_most_recent_install`
+  **deployment-logs** 包含下列日誌檔：
  +  每天有部署時建立 **codedeploy-agent.yyyymmdd.log** 檔案。每個日誌檔案包含當日的部署資訊。這些日誌檔也許對偵測問題有用處，例如權限問題。這個日誌檔原本命名為 `codedeploy-agent.log`。隔天，其部署的日期會插入檔案名稱。例如，如果今天是 2018 年 1 月 3 日，您可以查看有關所有今日在`codedeploy-agent.log`的部署 。明日 2018，1 月 4 日，日誌檔會重新命名 `codedeploy-agent.20180103.log`。
  +  **codedeploy-agent-deployments.log** 為每個部署編譯 `scripts.log` 檔案的內容。`scripts.log` 檔案位於每個 `Deployment ID` 資料夾下的 `logs` 子資料夾。此檔案中的項目前面是部署 ID。例如，「`[d-ABCDEF123]LifecycleEvent - BeforeInstall`」可能會在 ID 為 `d-ABCDEF123` 的部署期間寫入。當 `codedeploy-agent-deployments.log`達到其大小上限時，CodeDeploy 代理程式會在刪除舊內容時繼續寫入。

# 管理 CodeDeploy 代理程式操作
<a name="codedeploy-agent-operations"></a>

本節中的指示說明如何安裝、解除安裝、重新安裝或更新 CodeDeploy 代理程式，以及如何驗證 CodeDeploy 代理程式是否正在執行。

**Topics**
+ [驗證 CodeDeploy 代理程式是否正在執行](codedeploy-agent-operations-verify.md)
+ [判斷 CodeDeploy 代理程式的版本](codedeploy-agent-operations-version.md)
+ [安裝 CodeDeploy 代理程式](codedeploy-agent-operations-install.md)
+ [更新 CodeDeploy 代理程式](codedeploy-agent-operations-update.md)
+ [解除安裝 CodeDeploy 代理程式](codedeploy-agent-operations-uninstall.md)
+ [將 CodeDeploy 代理程式日誌傳送至 CloudWatch](codedeploy-agent-operations-cloudwatch-agent.md)

# 驗證 CodeDeploy 代理程式是否正在執行
<a name="codedeploy-agent-operations-verify"></a>

本節說明如果您懷疑 CodeDeploy 代理程式已停止在執行個體上執行，要執行的命令。

**Topics**
+ [驗證 Amazon Linux 或 RHEL 的 CodeDeploy 代理程式是否正在執行](#codedeploy-agent-operations-verify-linux)
+ [驗證 Ubuntu Server 的 CodeDeploy 代理程式是否正在執行](#codedeploy-agent-operations-verify-ubuntu)
+ [驗證適用於 Windows Server 的 CodeDeploy 代理程式是否正在執行](#codedeploy-agent-operations-verify-windows)

## 驗證 Amazon Linux 或 RHEL 的 CodeDeploy 代理程式是否正在執行
<a name="codedeploy-agent-operations-verify-linux"></a>

若要查看 CodeDeploy 代理程式是否已安裝並執行，請登入執行個體，然後執行下列命令：

```
systemctl status codedeploy-agent
```

如果命令傳回錯誤，則不會安裝 CodeDeploy 代理程式。按照 [安裝適用於 Amazon Linux 或 RHEL 的 CodeDeploy 代理程式](codedeploy-agent-operations-install-linux.md) 中的說明加以安裝。

如果已安裝並執行 CodeDeploy 代理程式，您應該會看到類似 的訊息`The AWS CodeDeploy agent is running`。

如果您看到類似 `error: No AWS CodeDeploy agent running` 的訊息，請啟動服務並執行以下兩個命令，一次一個：

```
systemctl start codedeploy-agent
```

```
systemctl status codedeploy-agent
```

## 驗證 Ubuntu Server 的 CodeDeploy 代理程式是否正在執行
<a name="codedeploy-agent-operations-verify-ubuntu"></a>

若要查看 CodeDeploy 代理程式是否已安裝並執行，請登入執行個體，然後執行下列命令：

```
systemctl status codedeploy-agent
```

如果命令傳回錯誤，則不會安裝 CodeDeploy 代理程式。按照 [安裝適用於 Ubuntu Server 的 CodeDeploy 代理程式](codedeploy-agent-operations-install-ubuntu.md) 中的說明加以安裝。

如果已安裝並執行 CodeDeploy 代理程式，您應該會看到類似 的訊息`The AWS CodeDeploy agent is running`。

如果您看到類似 `error: No AWS CodeDeploy agent running` 的訊息，請啟動服務並執行以下兩個命令，一次一個：

```
systemctl start codedeploy-agent
```

```
systemctl status codedeploy-agent
```

## 驗證適用於 Windows Server 的 CodeDeploy 代理程式是否正在執行
<a name="codedeploy-agent-operations-verify-windows"></a>

若要查看 CodeDeploy 代理程式是否已安裝並執行，請登入執行個體，然後執行下列命令：

```
powershell.exe -Command Get-Service -Name codedeployagent
```

您應該會看到類似下列的輸出：

```
Status   Name               DisplayName
------   ----               -----------
Running codedeployagent    CodeDeploy Host Agent Service
```

如果命令傳回錯誤，則不會安裝 CodeDeploy 代理程式。按照 [安裝適用於 Windows Server 的 CodeDeploy 代理程式](codedeploy-agent-operations-install-windows.md) 中的說明加以安裝。

如果 `Status` 顯示 `Running` 以外的服務，請使用下列命令啟動服務：

```
powershell.exe -Command Start-Service -Name codedeployagent
```

您可以按照下列命令重新啟動服務：

```
powershell.exe -Command Restart-Service -Name codedeployagent
```

您可以按照下列命令停止服務：

```
powershell.exe -Command Stop-Service -Name codedeployagent
```

# 判斷 CodeDeploy 代理程式的版本
<a name="codedeploy-agent-operations-version"></a>

您可以透過兩種方式來判斷執行個體上執行的 CodeDeploy 代理程式版本。

首先，從 CodeDeploy 代理程式的 1.0.1.854 版開始，您可以在執行個體的 `.version` 檔案中檢視版本編號。下表顯示每個支援的作業系統的位置和範例版本字串。


| 作業系統 | 檔案位置 | 範例 agent\$1version 字串 | 
| --- | --- | --- | 
| Amazon Linux 和 Red Hat Enterprise Linux (RHEL) | /opt/codedeploy-agent/.version | OFFICIAL\$11.0.1.854\$1rpm | 
| Ubuntu Server | /opt/codedeploy-agent/.version | OFFICIAL\$11.0.1.854\$1deb | 
| Windows Server | C:\$1ProgramData\$1Amazon\$1CodeDeploy\$1.version | OFFICIAL\$11.0.1.854\$1msi | 

其次，您可以在執行個體上執行命令，以判斷 CodeDeploy 代理程式的版本。

**Topics**
+ [判斷 Amazon Linux 或 RHEL 上的版本](#codedeploy-agent-operations-version-linux)
+ [判斷 Ubuntu Server 上的版本](#codedeploy-agent-operations-version-ubuntu)
+ [判斷 Windows Server 上的版本](#codedeploy-agent-operations-version-windows)

## 判斷 Amazon Linux 或 RHEL 上的版本
<a name="codedeploy-agent-operations-version-linux"></a>

登入執行個體並執行下列命令：

```
sudo yum info codedeploy-agent
```

## 判斷 Ubuntu Server 上的版本
<a name="codedeploy-agent-operations-version-ubuntu"></a>

登入執行個體並執行下列命令：

```
sudo dpkg -s codedeploy-agent
```

## 判斷 Windows Server 上的版本
<a name="codedeploy-agent-operations-version-windows"></a>

登入執行個體並執行下列命令：

```
sc qdescription codedeployagent
```

# 安裝 CodeDeploy 代理程式
<a name="codedeploy-agent-operations-install"></a>

若要在 EC2 執行個體或內部部署伺服器上使用 CodeDeploy，必須先安裝 CodeDeploy 代理程式。建議您使用 安裝和更新 CodeDeploy 代理程式 AWS Systems Manager。如需 Systems Manager 的詳細資訊，請參閱[什麼是 AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) 。您可以在建立部署群組時，使用 主控台中的 Systems Manager 設定 CodeDeploy 代理程式的安裝和排程更新。

您也可以使用命令列直接從 S3 儲存貯體安裝 CodeDeploy 代理程式。

如需安裝的建議版本，請參閱 [CodeDeploy 代理程式的版本歷史記錄](codedeploy-agent.md#codedeploy-agent-version-history)。

**Topics**
+ [使用 安裝 CodeDeploy 代理程式 AWS Systems Manager](codedeploy-agent-operations-install-ssm.md)
+ [使用命令列安裝 CodeDeploy 代理程式](codedeploy-agent-operations-install-cli.md)

# 使用 安裝 CodeDeploy 代理程式 AWS Systems Manager
<a name="codedeploy-agent-operations-install-ssm"></a>

您可以使用 AWS 管理主控台 或 AWS CLI ，使用 將 CodeDeploy 代理程式安裝到您的 Amazon EC2 或內部部署執行個體 AWS Systems Manager。您可以選擇安裝特定版本，或選擇永遠安裝最新版本的代理程式。如需 的詳細資訊 AWS Systems Manager，請參閱[什麼是 AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html) 。

 使用 AWS Systems Manager 是安裝和更新 CodeDeploy 代理程式的建議方法。您也可以從 Amazon S3 儲存貯體安裝 CodeDeploy 代理程式。如需有關使用 Simple Storage Service (Amazon S3) 下載連結的資訊，請參閱 [使用命令列安裝 CodeDeploy 代理程式](codedeploy-agent-operations-install-cli.md)。

**Topics**
+ [先決條件](#install-codedeploy-agent-prereqs)
+ [安裝 CodeDeploy 代理程式](#download-codedeploy-agent-on-EC2-Instance)

## 先決條件
<a name="install-codedeploy-agent-prereqs"></a>

依照中的步驟[CodeDeploy 入門](getting-started-codedeploy.md)設定 IAM 許可和 AWS CLI。

如果使用 Systems Manager 在內部部署伺服器上安裝 CodeDeploy 代理程式，您必須向 Amazon EC2 Systems Manager 註冊您的內部部署伺服器。如需詳細資訊，請參閱*AWS Systems Manager 《 使用者指南*》中的[在混合環境中設定 Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-managedinstances.html)。

## 安裝 CodeDeploy 代理程式
<a name="download-codedeploy-agent-on-EC2-Instance"></a>

在您可以使用 Systems Manager 安裝 CodeDeploy 代理程式之前，您必須確定執行個體已針對 Systems Manager 正確設定。

### 安裝或更新 SSM 代理程式
<a name="update-SSM-Agent-EC2instance"></a>

在 Amazon EC2 執行個體上，CodeDeploy 代理程式要求執行個體執行 2.3.274.0 版或更新版本。在安裝 CodeDeploy 代理程式之前，如果您尚未更新，請在執行個體上安裝 SSM 代理程式。

SSM 代理程式預先安裝在 提供的一些 Amazon EC2 AMIs上 AWS。如需詳細資訊，請參閱[預先安裝 SSM 代理AMIs)](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html)。

**注意**  
請確定 CodeDeploy 代理程式也支援執行個體的作業系統。如需詳細資訊，請參閱[CodeDeploy 代理程式支援的作業系統](codedeploy-agent.md#codedeploy-agent-supported-operating-systems)。

如需有關在執行 Linux 的執行個體上安裝或更新 SSM 代理程式的資訊，請參閱*AWS Systems Manager 《 使用者指南*》中的[在 Linux 執行個體上安裝和設定 SSM 代理程式](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-ssm-agent.html)。

如需有關在執行 Windows Server 的執行個體上安裝或更新 SSM 代理程式的資訊，請參閱*AWS Systems Manager 《 使用者指南*》中的[在 Windows 執行個體上安裝和設定 SSM 代理程式](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-ssm-win.html)。

### (選用) 驗證 Systems Manager 先決條件
<a name="install-codedeploy-agent-minimum-requirements"></a>

在您使用 Systems Manager Run Command 安裝 CodeDeploy 代理程式之前，請確認您的執行個體符合 Systems Manager 的最低需求。如需詳細資訊，請參閱《AWS Systems Manager 使用者指南》**中的[設定 AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up.html)。

### 安裝 CodeDeploy 代理程式
<a name="install-codedeploy-agent-EC2"></a>

使用 SSM，您可以安裝 CodeDeploy 一次，或設定排程來安裝新版本。

 若要安裝 CodeDeploy 代理程式，請在遵循使用 經銷商安裝或更新`AWSCodeDeployAgent`套件中的步驟時選擇套件。 [AWS Systems Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/distributor-working-with-packages-deploy.html)

# 使用命令列安裝 CodeDeploy 代理程式
<a name="codedeploy-agent-operations-install-cli"></a>

**注意**  
建議您使用 安裝 CodeDeploy 代理程式，以便 AWS Systems Manager 能夠設定代理程式的排程更新。如需詳細資訊，請參閱[使用 安裝 CodeDeploy 代理程式 AWS Systems Manager](codedeploy-agent-operations-install-ssm.md)。

使用以下主題，使用命令列安裝和執行 CodeDeploy 代理程式。

**Topics**
+ [安裝適用於 Amazon Linux 或 RHEL 的 CodeDeploy 代理程式](codedeploy-agent-operations-install-linux.md)
+ [安裝適用於 Ubuntu Server 的 CodeDeploy 代理程式](codedeploy-agent-operations-install-ubuntu.md)
+ [安裝適用於 Windows Server 的 CodeDeploy 代理程式](codedeploy-agent-operations-install-windows.md)

# 安裝適用於 Amazon Linux 或 RHEL 的 CodeDeploy 代理程式
<a name="codedeploy-agent-operations-install-linux"></a>

登入執行個體，並執行下列命令，一次一個：使用 `yum`來安裝套件時，`sudo yum update`首先執行命令會被視為最佳實務，但如果您不想更新所有套件，則可以略過該命令。

```
sudo yum update
```

```
sudo yum install ruby
```

```
sudo yum install wget
```

（選用） 若要清除任何先前代理程式快取資訊的 AMI，請執行下列指令碼：

```
#!/bin/bash
CODEDEPLOY_BIN="/opt/codedeploy-agent/bin/codedeploy-agent"
$CODEDEPLOY_BIN stop
yum erase codedeploy-agent -y
```

變更為您的主目錄：

```
cd /home/ec2-user
```

**注意**  
在先前的命令中， `/home/ec2-user`代表 Amazon Linux 或 RHEL Amazon EC2 執行個體的預設使用者名稱。如果您的執行個體是使用自訂的 AMI 建立的，AMI 擁有者可能已指定不同的預設使用者名稱。

下載 CodeDeploy 代理程式安裝程式：

```
wget https://bucket-name.s3.region-identifier.amazonaws.com/latest/install
```

*bucket-name* 是 Amazon S3 儲存貯體的名稱，其中包含您區域的 CodeDeploy 資源套件檔案，而 *region-identifier* 是您區域的識別符。

例如：

`https://aws-codedeploy-us-east-2.s3.us-east-2.amazonaws.com/latest/install`

如需儲存貯體名稱和區域識別符的清單，請參閱 [依區域顯示的資源套件儲存貯體名稱](resource-kit.md#resource-kit-bucket-names)。

設定 `install` 檔案的執行許可：

```
chmod +x ./install
```

若要安裝最新版本的 CodeDeploy 代理程式：
+ 

  ```
  sudo ./install auto
  ```

若要安裝 CodeDeploy 代理程式的特定版本：
+ 列出您區域中可用的版本：

  ```
  aws s3 ls s3://aws-codedeploy-region-identifier/releases/ --region region-identifier | grep '\.rpm$'
  ```
+ 安裝其中一個版本：

  ```
  sudo ./install auto -v releases/codedeploy-agent-version.noarch.rpm
  ```
**注意**  
AWS 支援 CodeDeploy 代理程式的最新次要版本。目前最新的次要版本為 1.7.x。

若要確認服務是否正在執行，請執行下列命令：

```
systemctl status codedeploy-agent
```

如果已安裝並執行 CodeDeploy 代理程式，您應該會看到類似 的訊息`The AWS CodeDeploy agent is running`。

如果您看到類似 `error: No AWS CodeDeploy agent running` 的訊息，請啟動服務並執行以下兩個命令，一次一個：

```
systemctl start codedeploy-agent
```

```
systemctl status codedeploy-agent
```

# 安裝適用於 Ubuntu Server 的 CodeDeploy 代理程式
<a name="codedeploy-agent-operations-install-ubuntu"></a>

**注意**  
建議您使用 安裝 CodeDeploy 代理程式，以便 AWS Systems Manager 能夠設定代理程式的排程更新。如需詳細資訊，請參閱[使用 安裝 CodeDeploy 代理程式 AWS Systems Manager](codedeploy-agent-operations-install-ssm.md)。

**在 Ubuntu Server 上安裝 CodeDeploy 代理程式**

1. 登入執行個體。

1. 依序輸入下列命令：

   ```
   sudo apt update
   ```

   ```
   sudo apt install ruby-full
   ```

   ```
   sudo apt install wget
   ```

1. 輸入以下命令：

   ```
   cd /home/ubuntu
   ```

   */home/ubuntu* 代表 Ubuntu Server 執行個體的預設使用者名稱。如果您的執行個體是使用自訂的 AMI 建立的，AMI 擁有者可能已指定不同的預設使用者名稱。

1. 輸入以下命令：

   ```
   wget https://bucket-name.s3.region-identifier.amazonaws.com/latest/install
   ```

   *bucket-name* 是 Amazon S3 儲存貯體的名稱，其中包含您區域的 CodeDeploy 資源套件檔案，而 *region-identifier* 是您區域的識別符。

   例如：

   `https://aws-codedeploy-us-east-2.s3.us-east-2.amazonaws.com/latest/install`

   如需儲存貯體名稱和區域識別符的清單，請參閱 [依區域顯示的資源套件儲存貯體名稱](resource-kit.md#resource-kit-bucket-names)。

1. 輸入以下命令：

   ```
   chmod +x ./install
   ```

1. 執行以下任意一項：
   + 若要在任何支援的 Ubuntu Server 版本上安裝最新版本的 CodeDeploy 代理程式，*但* 20.04 除外：

     ```
     sudo ./install auto
     ```
   + 若要在 Ubuntu Server 20.04 上安裝最新版本的 CodeDeploy 代理程式：
**注意**  
將輸出寫入臨時日誌檔案是解決 Ubuntu Server 20.04 上`install`指令碼的已知錯誤時應該使用的解決方法。

     ```
     sudo ./install auto > /tmp/logfile
     ```
   + 若要在任何支援的 Ubuntu Server 版本上安裝 CodeDeploy 代理程式的特定版本，*但* 20.04 除外：
     + 列出您區域中可用的版本：

       ```
       aws s3 ls s3://aws-codedeploy-region-identifier/releases/ --region region-identifier | grep '\.deb$'
       ```
     + 安裝其中一個版本：

       ```
       sudo ./install auto -v releases/codedeploy-agent-###.deb
       ```
**注意**  
AWS 支援 CodeDeploy 代理程式的最新次要版本。目前最新的次要版本為 1.7.x。
   + 若要在 Ubuntu Server 20.04 上安裝特定版本的 CodeDeploy 代理程式：
     + 列出您區域中可用的版本：

       ```
       aws s3 ls s3://aws-codedeploy-region-identifier/releases/ --region region-identifier | grep '\.deb$'
       ```
     + 安裝其中一個版本：

       ```
       sudo ./install auto -v releases/codedeploy-agent-###.deb > /tmp/logfile
       ```
**注意**  
將輸出寫入臨時日誌檔案是解決 Ubuntu Server 20.04 上`install`指令碼的已知錯誤時應該使用的解決方法。
**注意**  
AWS 支援 CodeDeploy 代理程式的最新次要版本。目前最新的次要版本為 1.7.x。

**檢查服務是否正在執行**

1. 輸入以下命令：

   ```
   systemctl status codedeploy-agent
   ```

   如果已安裝並執行 CodeDeploy 代理程式，您應該會看到類似 的訊息`The AWS CodeDeploy agent is running`。

1. 如果您看到類似 `error: No AWS CodeDeploy agent running` 的訊息，請啟動服務並執行以下兩個命令，一次一個：

   ```
   systemctl start codedeploy-agent
   ```

   ```
   systemctl status codedeploy-agent
   ```

# 安裝適用於 Windows Server 的 CodeDeploy 代理程式
<a name="codedeploy-agent-operations-install-windows"></a>

在 Windows Server 執行個體上，您可以使用下列其中一種方法來下載和安裝 CodeDeploy 代理程式：
+ Use AWS Systems Manager （建議）
+ 執行一系列的 Windows PowerShell 命令。
+ 選擇直接下載連結。
+ 執行 Amazon S3 複製命令。

**注意**  
CodeDeploy 代理程式安裝到的資料夾是 `C:\Program Data\Amazon\CodeDeploy`。請確定此路徑上沒有目錄連接或符號連結。

**Topics**
+ [使用 Systems Manager](#codedeploy-agent-operations-install-system-manager)
+ [使用 Windows PowerShell](#codedeploy-agent-operations-install-windows-powershell)
+ [使用直接連結](#codedeploy-agent-operations-install-windows-direct-link)
+ [使用 Amazon S3 複製命令](#codedeploy-agent-operations-install-windows-s3-copy)

## 使用 Systems Manager
<a name="codedeploy-agent-operations-install-system-manager"></a>

依照 中的指示[使用 安裝 CodeDeploy 代理程式 AWS Systems Manager](codedeploy-agent-operations-install-ssm.md)安裝 CodeDeploy 代理程式。

## 使用 Windows PowerShell
<a name="codedeploy-agent-operations-install-windows-powershell"></a>

登入執行個體，並且在 Windows PowerShell 執行以下命令：

1.  要求所有從網際網路下載的指令碼和組態檔案由信任的發行者簽署。如果您被提示更改執行政策，請輸入「**Y**」。

   ```
    Set-ExecutionPolicy RemoteSigned
   ```

1.  載入 AWS Tools for Windows PowerShell。

   ```
   Import-Module AWSPowerShell
   ```

1.  建立下載 CodeDeploy 代理程式安裝檔案的目錄。

   ```
   New-Item -Path "c:\temp" -ItemType "directory" -Force
   ```

1. 使用 `Set-AWSCredential`和 `Initialize-AWSDefaultConfiguration`命令設定 AWS 登入資料。如需詳細資訊，請參閱《PowerShell 使用者指南》的工具中的[使用 AWS 登入](https://docs.aws.amazon.com/powershell/latest/userguide/specifying-your-aws-credentials.html)資料。 *AWS PowerShell *

1.  下載 CodeDeploy 代理程式安裝檔案。
**注意**  
AWS 支援 CodeDeploy 代理程式的最新次要版本。目前最新的次要版本為 1.7.x。

   若要安裝最新版本的 CodeDeploy 代理程式：
   + 

     ```
     powershell.exe -Command Read-S3Object -BucketName bucket-name -Key latest/codedeploy-agent.msi -File c:\temp\codedeploy-agent.msi
     ```

   若要安裝 CodeDeploy 代理程式的特定版本：
   + 

     ```
     powershell.exe -Command Read-S3Object -BucketName bucket-name -Key releases/codedeploy-agent-###.msi -File c:\temp\codedeploy-agent.msi
     ```

   *bucket-name* 是 Amazon S3 儲存貯體的名稱，其中包含您所在區域的 CodeDeploy 資源套件檔案。例如，對於美國東部 （俄亥俄） 區域，將 *bucket-name* 取代為 `aws-codedeploy-us-east-2`。如需儲存貯體名稱的清單，請參閱 [依區域顯示的資源套件儲存貯體名稱](resource-kit.md#resource-kit-bucket-names)。

1.  執行 CodeDeploy 代理程式安裝檔案。

   ```
   c:\temp\codedeploy-agent.msi /quiet /l c:\temp\host-agent-install-log.txt
   ```

若要確認服務是否正在執行，請執行下列命令：

```
powershell.exe -Command Get-Service -Name codedeployagent
```

 如果 CodeDeploy 代理程式剛安裝且尚未啟動，則在執行**Get-Service**命令之後，您應該會在**狀態**下看到 **Start...**：

```
Status     Name                DisplayName
------     ----                -----------
Start...   codedeployagent    CodeDeploy Host Agent Service
```

如果 CodeDeploy 代理程式已在執行中，則在執行**Get-Service**命令之後，在**狀態**下，您應該會看到 **Running**：

```
Status     Name                DisplayName
------     ----                -----------
Running    codedeployagent    CodeDeploy Host Agent Service
```

## 使用直接連結
<a name="codedeploy-agent-operations-install-windows-direct-link"></a>

如果 Windows Server 執行個體上的瀏覽器安全設定提供許可 （例如 到 `https://s3.*.amazonaws.com`)，您可以使用 區域的直接連結下載 CodeDeploy 代理程式，然後手動執行安裝程式。

連結為：

```
https://s3.region.amazonaws.com/aws-codedeploy-region/latest/codedeploy-agent.msi
```

...其中 *region* 是您 AWS 部署應用程式的 區域。

例如：

```
https://s3.af-south-1.amazonaws.com/aws-codedeploy-af-south-1/latest/codedeploy-agent.msi
```

**重要**  
從與 CodeDeploy 應用程式相同的區域取得`.msi`檔案。當您執行 `codedeploy-agent-log` 檔案時，選擇不同的區域可能會導致 `.msi` 檔案`inconsistent region`失敗。

## 使用 Amazon S3 複製命令
<a name="codedeploy-agent-operations-install-windows-s3-copy"></a>

如果執行個體上安裝 AWS CLI ，您可以使用 Amazon S3 [cp](https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html) 命令下載 CodeDeploy 代理程式，然後手動執行安裝程式。如需詳細資訊，請參閱[在 Microsoft Windows AWS Command Line Interface 上安裝](https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-windows.html) 。

Amazon S3 命令為：

```
aws s3 cp s3://aws-codedeploy-region/latest/codedeploy-agent.msi codedeploy-agent.msi --region region
```

...其中 *region* 是您 AWS 部署應用程式的 區域。

例如：

```
aws s3 cp s3://aws-codedeploy-af-south-1/latest/codedeploy-agent.msi codedeploy-agent.msi --region af-south-1
```

# 更新 CodeDeploy 代理程式
<a name="codedeploy-agent-operations-update"></a>

您可以使用 在所有支援的作業系統上設定 CodeDeploy 代理程式的自動排程更新 AWS Systems Manager。您也可以藉由在執行個體上執行命令，強制在所有支援的作業系統進行更新。

**Topics**
+ [在 Amazon Linux 或 RHEL 上更新 CodeDeploy 代理程式](codedeploy-agent-operations-update-linux.md)
+ [更新 Ubuntu Server 上的 CodeDeploy 代理程式](codedeploy-agent-operations-update-ubuntu.md)
+ [在 Windows Server 上更新 CodeDeploy 代理程式](codedeploy-agent-operations-update-windows.md)

# 在 Amazon Linux 或 RHEL 上更新 CodeDeploy 代理程式
<a name="codedeploy-agent-operations-update-linux"></a>

若要使用 設定 CodeDeploy 代理程式的自動排程更新 AWS Systems Manager，請遵循[使用 安裝 CodeDeploy 代理程式 AWS Systems Manager](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install-ssm.html)中的步驟。

如果您想要強制更新 CodeDeploy 代理程式，請登入執行個體，然後執行下列命令：

```
sudo /opt/codedeploy-agent/bin/install auto
```

# 更新 Ubuntu Server 上的 CodeDeploy 代理程式
<a name="codedeploy-agent-operations-update-ubuntu"></a>

若要使用 設定 CodeDeploy 代理程式的自動排程更新 AWS Systems Manager，請遵循[使用 安裝 CodeDeploy 代理程式 AWS Systems Manager](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install-ssm.html)中的步驟。

如果您想要強制更新 CodeDeploy 代理程式，請登入執行個體，然後執行下列命令：

```
sudo /opt/codedeploy-agent/bin/install auto
```

# 在 Windows Server 上更新 CodeDeploy 代理程式
<a name="codedeploy-agent-operations-update-windows"></a>

您可以使用 啟用 CodeDeploy 代理程式的自動更新 AWS Systems Manager。使用 Systems Manager，您可以透過建立與 Systems Manager State Manager 的關聯來設定 Amazon EC2 或內部部署執行個體的更新排程。您也可以解除安裝目前版本並安裝較新的版本，以手動更新 CodeDeploy 代理程式。

**Topics**
+ [使用 設定自動 CodeDeploy 代理程式更新 AWS Systems Manager](#codedeploy-agent-operations-update-windows-ssm)
+ [手動更新 CodeDeploy 代理程式](#codedeploy-agent-operations-update-windows-manual)
+ [（已棄用） 使用 Windows Server Updater 更新 CodeDeploy 代理程式](#codedeploy-agent-operations-update-windows-updater)

## 使用 設定自動 CodeDeploy 代理程式更新 AWS Systems Manager
<a name="codedeploy-agent-operations-update-windows-ssm"></a>

若要設定 Systems Manager 並啟用 CodeDeploy 代理程式的自動更新，請遵循[使用 安裝 CodeDeploy 代理程式 AWS Systems Manager](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install-ssm.html)中的指示。

## 手動更新 CodeDeploy 代理程式
<a name="codedeploy-agent-operations-update-windows-manual"></a>

若要手動更新 CodeDeploy 代理程式，您可以從 CLI 或使用 Systems Manager 安裝最新版本。遵循[安裝 CodeDeploy 代理程式中的指示。](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-install.html)建議您遵循解除安裝 CodeDeploy 代理程式中[的指示來解除安裝舊版 CodeDeploy 代理程式](https://docs.aws.amazon.com/codedeploy/latest/userguide/codedeploy-agent-operations-uninstall.html)。

## （已棄用） 使用 Windows Server Updater 更新 CodeDeploy 代理程式
<a name="codedeploy-agent-operations-update-windows-updater"></a>

**注意**  
適用於 Windows Server 的 CodeDeploy 代理程式更新程式已棄用，且不會更新至 1.0.1.1597 之後的任何版本。

若要啟用 CodeDeploy 代理程式的自動更新，請在新的或現有的執行個體上安裝適用於 Windows Server 的 CodeDeploy 代理程式更新程式。定期檢查的更新程式的新版本。當偵測到新版本時，更新程式會移除目前的代理程式版本 (若有安裝的話)，然後再安裝最新版本。

更新程式偵測到新版本時，如果部署已在進行，部署會繼續完成。如果部署嘗試在更新程序期間啟動，部署會失敗。

如果您想要強制更新 CodeDeploy 代理程式，請遵循 中的指示[安裝適用於 Windows Server 的 CodeDeploy 代理程式](codedeploy-agent-operations-install-windows.md)。

在 Windows Server 執行個體上，您可以透過執行 Windows PowerShell 命令、使用直接下載連結或執行 Amazon S3 複製命令來下載和安裝 CodeDeploy 代理程式更新程式。

**Topics**
+ [使用 Windows PowerShell](#codedeploy-agent-operations-update-windows-powershell)
+ [使用直接連結](#codedeploy-agent-operations-update-windows-direct-link)
+ [使用 Amazon S3 複製命令](#codedeploy-agent-operations-update-windows-s3-copy)

### 使用 Windows PowerShell
<a name="codedeploy-agent-operations-update-windows-powershell"></a>

登入執行個體，並且在 Windows PowerShell 執行以下命令，一次一個：

```
Set-ExecutionPolicy RemoteSigned
```

 如果您被提示變更執行政策，請選擇 **Y** 讓 Windows PowerShell 要求所有從網際網路下載的指令碼和組態檔，均須由信任的發佈者簽署。

```
Import-Module AWSPowerShell
```

```
New-Item -Path "c:\temp" -ItemType "directory" -Force
```

```
powershell.exe -Command Read-S3Object -BucketName bucket-name -Key latest/codedeploy-agent-updater.msi -File c:\temp\codedeploy-agent-updater.msi
```

```
c:\temp\codedeploy-agent-updater.msi /quiet /l c:\temp\host-agent-updater-log.txt
```

```
powershell.exe -Command Get-Service -Name codedeployagent
```

*bucket-name* 是 Amazon S3 儲存貯體的名稱，其中包含您所在區域的 CodeDeploy 資源套件檔案。例如，對於美國東部 （俄亥俄） 區域，將 *bucket-name* 取代為 `aws-codedeploy-us-east-2`。如需儲存貯體名稱的清單，請參閱 [依區域顯示的資源套件儲存貯體名稱](resource-kit.md#resource-kit-bucket-names)。

如果您需要對更新程序錯誤進行疑難排解，請輸入下列命令來開啟 CodeDeploy 代理程式更新程式日誌檔案：

```
notepad C:\ProgramData\Amazon\CodeDeployUpdater\log\codedeploy-agent.updater.log
```

### 使用直接連結
<a name="codedeploy-agent-operations-update-windows-direct-link"></a>

如果 Windows Server 執行個體上的瀏覽器安全設定提供必要的許可 ` http://s3.*.amazonaws.com ` （例如 )，您可以使用直接連結下載 CodeDeploy 代理程式更新程式。

連結為：

```
https://s3.region.amazonaws.com/aws-codedeploy-region/latest/codedeploy-agent-updater.msi
```

...其中 *region* 是您 AWS 更新應用程式的 區域。

例如：

```
https://s3.af-south-1.amazonaws.com/aws-codedeploy-af-south-1/latest/codedeploy-agent-updater.msi
```

### 使用 Amazon S3 複製命令
<a name="codedeploy-agent-operations-update-windows-s3-copy"></a>

如果執行個體上安裝 AWS CLI ，您可以使用 Amazon S3 [cp](https://docs.aws.amazon.com/cli/latest/reference/s3/cp.html) 命令下載 CodeDeploy 代理程式更新程式，然後手動執行安裝程式。如需詳細資訊，請參閱[在 Microsoft Windows AWS Command Line Interface 上安裝](https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-windows.html) 。

Amazon S3 命令為：

```
aws s3 cp s3://aws-codedeploy-region/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi --region region
```

...其中 *region* 是您 AWS 更新應用程式的 區域。

例如：

```
aws s3 cp s3://aws-codedeploy-af-south-1/latest/codedeploy-agent-updater.msi codedeploy-agent-updater.msi --region af-south-1
```

# 解除安裝 CodeDeploy 代理程式
<a name="codedeploy-agent-operations-uninstall"></a>

您可以在不再需要或想要執行全新安裝時，從執行個體中移除 CodeDeploy 代理程式。

## 從 Amazon Linux 或 RHEL 解除安裝 CodeDeploy 代理程式
<a name="codedeploy-agent-operations-uninstall-linux"></a>

若要解除安裝 CodeDeploy 代理程式，請登入執行個體並執行下列命令：

```
sudo yum erase codedeploy-agent
```

## 從 Ubuntu Server 解除安裝 CodeDeploy 代理程式
<a name="codedeploy-agent-operations-uninstall-ubuntu"></a>

若要解除安裝 CodeDeploy 代理程式，請登入執行個體並執行下列命令：

```
sudo dpkg --purge codedeploy-agent
```

## 從 Windows Server 解除安裝 CodeDeploy 代理程式
<a name="codedeploy-agent-operations-uninstall-windows"></a>

若要解除安裝 CodeDeploy 代理程式，請登入執行個體並執行下列三個命令，一次一個：

```
wmic
```

```
product where name="CodeDeploy Host Agent" call uninstall /nointeractive
```

```
exit
```

您也可以登入執行個體，並在**控制台**開啟**程式和功能**、選擇 **CodeDeploy 主機代理程式**，然後選擇**解除安裝**。

# 將 CodeDeploy 代理程式日誌傳送至 CloudWatch
<a name="codedeploy-agent-operations-cloudwatch-agent"></a>

您可以使用統一的 CloudWatch 代理程式將 CodeDeploy 代理程式指標和日誌資料傳送至 CloudWatch，或更簡單地傳送 CloudWatch 代理程式。 [ CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/UseCloudWatchUnifiedAgent.html)

使用以下指示安裝 CloudWatch 代理程式，並將其設定為與 CodeDeploy 代理程式搭配使用。

## 先決條件
<a name="codedeploy-agent-operations-cloudwatch-prerequisites"></a>

開始之前，請先完成以下任務：
+ 安裝 CodeDeploy 代理程式並確認其正在執行。如需詳細資訊，請參閱[安裝 CodeDeploy 代理程式](codedeploy-agent-operations-install.md)及[驗證 CodeDeploy 代理程式是否正在執行](codedeploy-agent-operations-verify.md)。
+ 安裝 CloudWatch 代理程式。如需詳細資訊，請參閱[安裝 CloudWatch 代理程式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html)。
+ 將下列許可新增至 CodeDeploy IAM 執行個體描述檔：
  + CloudWatchLogsFullAccess
  + CloudWatchAgentServerPolicy

  如需 CodeDeploy 執行個體描述檔的詳細資訊，請參閱 [步驟 4：為您的 Amazon EC2 執行個體建立 IAM 執行個體描述檔](getting-started-create-iam-instance-profile.md)的 [CodeDeploy 入門](getting-started-codedeploy.md)。

## 設定 CloudWatch 代理程式以收集 CodeDeploy 日誌
<a name="codedeploy-agent-operations-cloudwatch-configure"></a>

您可以透過逐步執行精靈或手動建立或編輯組態檔案來設定 CloudWatch 代理程式。

**使用精靈設定 CloudWatch 代理程式 (Linux)**

1. 執行精靈，如[執行 CloudWatch 代理程式組態精靈](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html#cloudwatch-agent-running-wizard)中所述。

1. 在精靈中，當系統要求時`Do you want to monitor any log files?`，輸入 **1**。

1. 指定 CodeDeploy 代理程式日誌檔案，如下所示：

   1. 對於`Log file path`輸入 CodeDeploy 日誌檔案的路徑，例如：**/var/log/aws/codedeploy-agent/codedeploy-agent.log**。

   1. 對於`Log group name`輸入日誌群組名稱，例如：**codedeploy-agent-log**。

   1. 對於`Log stream name`輸入日誌串流名稱，例如：**\$1instance\$1id\$1-codedeploy-agent-log**。

1. 當系統詢問 時`Do you want to specify any additional log files?`，輸入 **1**。

1. 指定 CodeDeploy 代理程式部署日誌，如下所示：

   1. 針對 CodeDeploy 部署日誌檔案`Log file path`輸入路徑，例如：**/opt/codedeploy-agent/deployment-root/deployment-logs/codedeploy-agent-deployments.log**。

   1. 對於`Log group name`輸入日誌群組名稱，例如：**codedeploy-agent-deployment-log**。

   1. 對於`Log stream name`輸入日誌串流名稱，例如：**\$1instance\$1id\$1-codedeploy-agent-deployment-log**。

1. 當系統詢問 時`Do you want to specify any additional log files?`，輸入 **1**。

1. 指定 CodeDeploy 代理程式更新程式日誌，如下所示：

   1. 對於 CodeDeploy `Log file path` 更新程式日誌檔的路徑，例如：**/tmp/codedeploy-agent.update.log**。

   1. 對於`Log group name`輸入日誌群組名稱，例如：**codedeploy-agent-updater-log**。

   1. 對於`Log stream name`輸入日誌串流名稱，例如：**\$1instance\$1id\$1-codedeploy-agent-updater-log**。

**使用精靈設定 CloudWatch 代理程式 (Windows)**

1. 執行精靈，如[執行 CloudWatch 代理程式組態精靈](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html#cloudwatch-agent-running-wizard)中所述。

1. 在精靈中，當系統要求時`Do you want to monitor any customized log files?`，輸入 **1**。

1. 指定 CodeDeploy 日誌檔案，如下所示：

   1. 對於`Log file path`輸入路徑 r CodeDeploy 代理程式日誌檔案，例如：**C:\$1ProgramData\$1Amazon\$1CodeDeploy\$1log\$1codedeploy-agent-log.txt**。

   1. 對於`Log group name`輸入日誌群組名稱，例如：**codedeploy-agent-log**。

   1. 對於`Log stream name`輸入日誌串流名稱，例如：**\$1instance\$1id\$1-codedeploy-agent-log**。

1. 當系統詢問 時`Do you want to specify any additional log files?`，輸入 **1**。

1. 指定 CodeDeploy 代理程式部署日誌，如下所示：

   1. 對於`Log file path`輸入 CodeDeploy 部署日誌檔案的路徑，例如：**C:\$1ProgramData\$1Amazon\$1CodeDeploy\$1deployment-logs\$1codedeploy-agent-deployments.log**。

   1. 對於`Log group name`輸入日誌群組名稱，例如：**codedeploy-agent-deployment-log**。

   1. 對於`Log stream name`輸入日誌串流名稱，例如：**\$1instance\$1id\$1-codedeploy-agent-deployment-log**。

**透過手動建立或編輯組態檔案 (Linux) 來設定 CloudWatch 代理程式**

1. 建立或編輯 CloudWatch 代理程式組態檔案，如[手動建立或編輯 CloudWatch 代理程式組態檔案](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html)所述。

1. 請確定檔案已呼叫`/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json`且包含下列程式碼：

   ```
   ...
   "logs": {
       "logs_collected": {
           "files": {
               "collect_list": [
                   {
                       "file_path": "/var/log/aws/codedeploy-agent/codedeploy-agent.log",
                       "log_group_name": "codedeploy-agent-log",
                       "log_stream_name": "{instance_id}-agent-log"
                   },
                   {
                       "file_path": "/opt/codedeploy-agent/deployment-root/deployment-logs/codedeploy-agent-deployments.log",
                       "log_group_name": "codedeploy-agent-deployment-log",
                       "log_stream_name": "{instance_id}-codedeploy-agent-deployment-log"
                   },
                   {
                       "file_path": "/tmp/codedeploy-agent.update.log",
                       "log_group_name": "codedeploy-agent-updater-log",
                       "log_stream_name": "{instance_id}-codedeploy-agent-updater-log"
                   }
               ]
           }
       }
   }
   ...
   ```

**手動建立或編輯組態檔案來設定 CloudWatch 代理程式 (Windows)**

1. 建立或編輯 CloudWatch 代理程式組態檔案，如[手動建立或編輯 CloudWatch 代理程式組態檔案](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.html)所述。

1. 請確定檔案已呼叫`C:\ProgramData\Amazon\AmazonCloudWatchAgent\amazon-cloudwatch-agent.json`且包含下列程式碼：

   ```
   ...
   "logs": {
           "logs_collected": {
               "files": {
                   "collect_list": [
                       {
                           "file_path": "C:\\ProgramData\\Amazon\\CodeDeploy\\log\\codedeploy-agent-log.txt",
                           "log_group_name": "codedeploy-agent-log",
                           "log_stream_name": "{instance_id}-codedeploy-agent-log"
                       },
                       {
                           "file_path": "C:\\ProgramData\\Amazon\\CodeDeploy\\deployment-logs\\codedeploy-agent-deployments.log",
                           "log_group_name": "codedeploy-agent-deployment-log",
                           "log_stream_name": "{instance_id}-codedeploy-agent-deployment-log"
                       }
                   ]
               },
               ...
           }
       },
   ...
   ```

## 重新啟動 CloudWatch 代理程式
<a name="codedeploy-agent-operations-cloudwatch-restart"></a>

進行變更後，請重新啟動 CloudWatch 代理程式，如[啟動 CloudWatch 代理程式](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance-fleet.html#start-CloudWatch-Agent-EC2-fleet)中所述。