

Amazon CodeCatalyst 不再向新客戶開放。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[如何從 CodeCatalyst 遷移](migration.md)。

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

# 在 CodeCatalyst 中使用開發環境撰寫和修改程式碼
<a name="devenvironment"></a>

開發環境是雲端型開發環境。在 Amazon CodeCatalyst 中，您可以使用開發環境來處理儲存在專案來源儲存庫中的程式碼。建立開發環境時，您有幾個選項：
+ 在 CodeCatalyst 中建立專案特定的開發環境，以使用支援的整合開發環境 (IDE) 來處理程式碼。
+ 建立空的開發環境，從來源儲存庫將程式碼複製到其中，並使用支援的 IDE 處理該程式碼。
+ 在 IDE 中建立開發環境，並將來源儲存庫複製到開發環境

*devfile* 是開放的標準 YAML 檔案，可標準化您的開發環境。換句話說，此檔案會編纂開發環境所需的開發工具。因此，您可以快速設定開發環境、在專案之間切換，以及跨團隊成員複寫開發環境組態。開發環境可將您建立和維護本機開發環境所花費的時間降至最低，因為它們會使用 devfile 來設定您為特定專案編寫程式碼、測試和偵錯所需的所有工具。

**重要**  
開發環境可以透過可存取 CodeCatalyst 登入資料的 devfile 執行指令碼。開啟不受信任的資源之前，請先檢查儲存庫。

開發環境中包含的專案工具和應用程式程式庫是由專案來源儲存庫中的 devfile 所定義。如果您的來源儲存庫中沒有 devfile，CodeCatalyst 會自動套用預設 devfile。此預設 devfile 包含最常使用的程式設計語言和架構的工具。如果您的專案是使用藍圖建立的，則 CodeCatalyst 會自動建立 devfile。如需 devfile 的詳細資訊，請參閱 https：//[https://devfile.io](https://devfile.io)。

建立開發環境之後，只有您可以存取它。在開發環境中，您可以在支援的 IDE 中檢視和處理來源儲存庫的程式碼。

根據預設，開發環境設定為具有 2 核心處理器、4 GB RAM 和 16 GB 的持久性儲存。如果您有空間管理員許可，您可以變更空間的計費方案，以使用不同的開發環境組態選項，並管理運算和儲存限制。

**Topics**
+ [建立開發環境](devenvironment-create.md)
+ [停止開發環境](devenvironment-stop.md)
+ [恢復開發環境](devenvironment-resume.md)
+ [編輯開發環境](devenvironment-edit.md)
+ [刪除開發環境](devenvironment-delete.md)
+ [使用 SSH 連線至開發環境](devenvironment-connect-ssh.md)
+ [設定開發環境的 devfile](devenvironment-devfile.md)
+ [將 VPC 連線與開發環境建立關聯](devenvironment-using-vpc.md)
+ [CodeCatalyst 中開發環境的配額](devenvironment-limits.md)

# 建立開發環境
<a name="devenvironment-create"></a>

您可以透過多種方式建立開發環境：
+ 從**概觀**、開發環境或**來源儲存庫**頁面使用 CodeCatalyst 來源儲存庫或[連結的來源儲存](source-repositories-link.md)庫，在 CodeCatalyst 中建立**開發環境** CodeCatalyst 
+ 在 CodeCatalyst 中建立未從開發環境頁面連線至來源儲存庫的空白開發環境
+ 在您選擇的 IDE 中建立開發環境，並將任何來源儲存庫複製到開發環境

**重要**  
開發環境不適用於使用 Active Directory 做為身分提供者的空間中的使用者。如需詳細資訊，請參閱[當我使用單一登入帳戶登入 CodeCatalyst 時，無法建立開發環境](devenvironments-troubleshooting.md#troubleshoot-create-dev-env-idprovider)。

您可以為每個儲存庫的分支建立一個開發環境。一個專案可以有多個儲存庫。您建立的開發環境只能使用 CodeCatalyst 帳戶進行管理，但您可以開啟開發環境，並使用任何支援的 IDEs。您必須先安裝 AWS 工具組 ，才能在 IDE 中使用開發環境。如需詳細資訊，請參閱[支援開發環境的整合式開發環境](#devenvironment-supported-ide)。根據預設，開發環境會使用 2 核心處理器、4 GB RAM 和 16 GB 的持久性儲存體建立。

**注意**  
如果您建立了與來源儲存庫相關聯的開發環境，**資源**欄一律會顯示您在建立此開發環境時指定的分支。即使您建立另一個分支、切換到開發環境中的另一個分支，或複製其他儲存庫，這也適用。如果您建立了空的開發環境，**資源**欄將是空的。

## 支援開發環境的整合式開發環境
<a name="devenvironment-supported-ide"></a>

您可以使用開發環境搭配下列支援的整合式開發環境 IDEs)：
+ [AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcome.html)
+ [JetBrains IDEs](https://www.jetbrains.com/help)
  + [IntelliJ IDEA Ultimate](https://www.jetbrains.com/help/idea/getting-started.html)
  + [GoLand](https://www.jetbrains.com/help/go/getting-started.html)
  + [PyCharm Professional](https://www.jetbrains.com/help/pycharm/getting-started.html)
+ [Visual Studio 程式碼](https://code.visualstudio.com/docs)

## 在 CodeCatalyst 中建立開發環境
<a name="devenvironment-create-steps"></a>

若要開始使用 CodeCatalyst 中的開發環境，請使用您的[AWS 建置器 ID](id-how-to-sign-in.md) 或 [SSO](sign-in-sso.md) 進行身分驗證和登入。

**從分支建立開發環境**

1. 在 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/) 開啟 CodeCatalyst 主控台。

1. 導覽至您要建立開發環境的專案。

1. 在導覽窗格中，執行下列任一操作：
   + 選擇**概觀**，然後導覽至**我的開發環境**區段。
   + 選擇**程式碼**，然後選擇**開發環境**。
   + 選擇**程式碼**，選擇**來源儲存庫**，然後選擇您要為其建立開發環境的儲存庫。

1. 選擇**建立開發環境**。

1. 從下拉式選單中選擇支援的 IDE。如需詳細資訊，請參閱[支援開發環境的整合式開發環境](#devenvironment-supported-ide)。

1. 選擇**複製儲存庫**。

1. 執行以下任意一項：

   1. 選擇要複製的儲存庫，選擇在**現有分支中工作**，然後從**現有分支下拉式功能表中選擇分支**。
**注意**  
如果您選擇第三方儲存庫，則必須在現有的分支中工作。

   1. 選擇要複製的儲存庫，選擇在**新分支中工作**，在**分支名稱**欄位中輸入分支名稱，然後從從建立分支下拉式功能表中選擇要建立新**分支**的分支。
**注意**  
如果您從**來源儲存庫**頁面或特定來源儲存庫建立開發環境，則不需要選擇儲存庫。開發環境將從您從來源儲存庫頁面中選擇的**來源儲存庫**建立。

1. （選用） 在**別名 - 選用**中，輸入開發環境的別名。

1. （選用） 選擇**開發環境組態**編輯按鈕，以編輯開發環境的運算、儲存或逾時組態。

1. （選用） 在 **Amazon Virtual Private Cloud (Amazon VPC) 中 - 選用**，從下拉式功能表中選取您要與開發環境建立關聯的 VPC 連線。

   如果為您的空間設定預設 VPC，則您的開發環境將執行連線至該 VPC。您可以透過關聯不同的 VPC 連線來覆寫此項目。此外，請注意，不支援 VPC 連線的開發環境 AWS 工具組。

   如果您想要使用的 VPC 連線未列出，可能是因為其中包含專案中不允許的 AWS 帳戶 連線。如需詳細資訊，請參閱《*Amazon CodeCatalyst 管理員指南*》中的[設定專案限制帳戶連線](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-accounts-restriction.html)。
**注意**  
當您使用 VPC 連線建立開發環境時，會在 VPC 內建立新的網路介面。CodeCatalyst 會使用相關聯的 VPC 角色與此界面互動。此外，請確定您的 IPv4 CIDR 區塊**未**設定為 `172.16.0.0/12` IP 地址範圍。

1. 選擇**建立**。建立開發環境時，開發環境狀態欄會顯示**開始**，而狀態欄會在建立開發環境後顯示**執行**中。

**建立空的開發環境**

1. 在 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/) 開啟 CodeCatalyst 主控台。

1. 導覽至您要建立開發環境的專案。

1. 在導覽窗格中，執行下列任一操作：
   + 選擇**概觀**，然後導覽至**我的開發環境**區段。
   + 選擇**程式碼**，然後選擇**開發環境**。

1. 選擇**建立開發環境**。

1. 從下拉式選單中選擇支援的 IDE。如需詳細資訊，請參閱[支援開發環境的整合式開發環境](#devenvironment-supported-ide)。

1. 選擇**建立空的開發環境**。

1. （選用） 在**別名 - 選用**中，輸入開發環境的別名。

1. （選用） 選擇**開發環境組態**編輯按鈕，以編輯開發環境的運算、儲存或逾時組態。

1. （選用） 在 **Amazon Virtual Private Cloud (Amazon VPC) 中 - 選用**，從下拉式功能表中選取您要與開發環境建立關聯的 VPC 連線。

   如果為您的空間設定預設 VPC，則您的開發環境將執行連線至該 VPC。您可以透過關聯不同的 VPC 連線來覆寫此項目。此外，請注意，不支援 VPC 連線的開發環境 AWS 工具組。

   如果您想要使用的 VPC 連線未列出，可能是因為其中包含專案中不允許的 AWS 帳戶 連線。如需詳細資訊，請參閱《*Amazon CodeCatalyst 管理員指南*》中的[設定專案限制帳戶連線](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-accounts-restriction.html)。
**注意**  
當您使用 VPC 連線建立開發環境時，會在 VPC 內建立新的網路介面。CodeCatalyst 會使用相關聯的 VPC 角色與此界面互動。此外，請確定您的 IPv4 CIDR 區塊**未**設定為 `172.16.0.0/12` IP 地址範圍。

1. 選擇**建立**。建立開發環境時，開發環境狀態欄會顯示**開始**，而狀態欄會在建立開發環境後顯示**執行**中。

**注意**  
第一次建立和開啟開發環境可能需要一到兩分鐘。

**注意**  
在 IDE 中開啟開發環境之後，您可能需要將目錄變更為來源儲存庫，才能遞交和推送程式碼的變更。

## 在 IDE 中建立開發環境
<a name="devenvironment-using-ide"></a>

您可以使用開發環境快速處理儲存在專案來源儲存庫中的程式碼。開發環境可提高您的開發速度，因為您可以使用支援的整合開發環境 (IDE)，在專案特定且功能完整的雲端開發環境中立即開始編碼。

如需從 IDE 使用 CodeCatalyst 的相關資訊，請參閱下列文件。
+ [適用於 JetBrains IDEs Amazon CodeCatalyst ](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/codecatalyst-service.html)
+ [Amazon CodeCatalyst for VS 程式碼](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/codecatalyst-service.html)
+ [的 Amazon CodeCatalyst AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/ide-toolkits-cloud9.html)

# 停止開發環境
<a name="devenvironment-stop"></a>

開發環境的`/projects`目錄會存放從來源儲存庫提取的檔案，以及用於設定開發環境的 devfile。`/home` 目錄在開發環境建立時為空白，會存放您使用開發環境時建立的檔案。開發環境的 `/projects`和 `/home`目錄中的所有內容都會持續儲存，因此如果您需要切換到另一個開發環境、儲存庫或專案，可以停止在開發環境中工作。

**警告**  
如果任何執行個體，包括 Web 瀏覽器、遠端 shell 和 IDEs 保持連線，開發環境將不會逾時。因此，請務必關閉所有連線的執行個體，以避免產生額外費用。

如果開發環境在開發環境建立期間**逾時**欄位中選取的時間長度處於閒置狀態，則開發環境會自動停止。您可以在開發環境閒置之前停止它。如果您在建立開發環境時選擇**無逾時**，則開發環境不會自動停止。反之，它會持續執行。

**警告**  
如果您停止與已刪除 VPC 連線相關聯的開發環境，則無法繼續。<a name="devenvironment-stop-steps"></a>

**從開發環境頁面停止開發環境**

1. 在 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/) 開啟 CodeCatalyst 主控台。

1. 導覽至您要停止開發環境的專案。

1. 在導覽窗格中，選擇**程式碼**。

1. 選擇**開發環境**。

1. 選擇您要停止之開發環境的選項按鈕。

1. 從**動作**功能表中，選擇**停止**。

**注意**  
運算使用只會在開發環境執行時計費，但儲存使用會在開發環境存在的整個期間內計費。不使用開發環境來停止運算計費時，請將其停止。

# 恢復開發環境
<a name="devenvironment-resume"></a>

開發環境的`/projects`目錄會存放從來源儲存庫提取的檔案，以及用於設定開發環境的 devfile。`/home` 目錄在開發環境建立時為空白，會存放您使用開發環境時建立的檔案。開發環境的 `/projects`和 `/home`目錄中的所有內容都會持續儲存，因此如果您需要切換到另一個開發環境、儲存庫或專案，並在稍後繼續在開發環境中工作，您可以停止在開發環境中工作。

如果開發環境在開發環境建立期間**逾時**欄位中選取的時間長度處於閒置狀態，則開發環境會自動停止。您必須關閉 AWS Cloud9 瀏覽器索引標籤，開發環境才會閒置。

**注意**  
即使您刪除用來建立開發環境的分支，開發環境仍可使用並執行。如果您想要在刪除分支的開發環境中繼續工作，請建立新的分支，並將變更推送到該分支。<a name="source-resume-summary-steps"></a>

**從概觀頁面繼續開發環境**

1. 開啟 CodeCatalyst 主控台，網址為 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/)。

1. 導覽至您要繼續開發環境的專案，然後導覽至**我的開發環境**區段。

1. 在 **(IDE) 中選擇繼續**。
   + 對於 JetBrains IDEs，在提示選擇應用程式以開啟 JetBrains-gateway 連結時，選擇 JetBrains Gateway-EAP。 ** JetBrains** 選擇**開啟連結**以在出現提示時確認。
   + 針對 VS 程式碼 IDE，當系統提示您**選擇應用程式以開啟 VS 程式碼連結時，請選擇 VS 程式碼**。選擇**開啟連結**以確認。<a name="source-resume-source-steps"></a>

**從來源儲存庫繼續開發環境**

1. 在 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/) 開啟 CodeCatalyst 主控台。

1. 導覽至您要繼續開發環境的專案。

1. 在導覽窗格中，選擇**程式碼**。

1. 選擇**來源儲存庫**。

1. 選擇包含您要繼續之開發環境的來源儲存庫。

1. 選擇分支名稱以檢視分支的下拉式功能表，然後選擇分支。

1. 選擇**繼續開發環境**。
   + 對於 JetBrains IDEs，選擇**開啟連結**以在出現提示時確認**允許此網站使用 JetBrains Gateway 開啟 JetBrains-gateway 連結？**。
   + 對於 VS 程式碼 IDE，選擇**開啟連結**，以在出現提示時確認**允許此網站使用 Visual Studio 程式碼開啟 VS 程式碼連結？**。<a name="devenvironment-resume-steps"></a>

**從開發環境頁面繼續開發環境**

1. 在 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/) 開啟 CodeCatalyst 主控台。

1. 導覽至您要繼續開發環境的專案。

1. 在導覽窗格中，選擇**程式碼**。

1. 選擇**開發環境**。

1. 從 **IDE** 欄中，選擇開發環境的**繼續 (IDE)**。
   + 對於 JetBrains IDEs，選擇**開啟連結**以在出現提示時確認**允許此網站使用 JetBrains Gateway 開啟 JetBrains-gateway 連結？**。
   + 對於 VS 程式碼 IDE，選擇**開啟連結**，在出現提示時確認**允許此網站使用 Visual Studio 程式碼開啟 VS 程式碼連結？**。

**注意**  
系統可能需要幾分鐘來恢復開發環境。

# 編輯開發環境
<a name="devenvironment-edit"></a>

執行 IDE 時，您可以編輯開發環境。如果您編輯運算或非作用中逾時，開發環境會在儲存變更之後重新啟動。<a name="devenvironment-edit-steps"></a>

**編輯開發環境**

1. 在 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/) 開啟 CodeCatalyst 主控台。

1. 導覽至您要編輯開發環境的專案。

1. 在導覽窗格中，選擇**程式碼**。

1. 選擇**開發環境**。

1. 選擇您要編輯的開發環境。

1. 選擇**編輯**。

1. 對運算或非作用中逾時進行變更。

1. 選擇**儲存**。

# 刪除開發環境
<a name="devenvironment-delete"></a>

當您完成處理存放在開發環境中的內容時，您可以刪除開發環境。建立新的開發環境以處理新內容。如果您刪除開發環境，則會永久刪除保留的內容。刪除開發環境之前，請務必遞交程式碼變更並將其推送至開發環境的原始來源儲存庫。在您刪除開發環境之後，開發環境的運算和儲存帳單將會停止。

刪除開發環境後，可能需要幾分鐘的時間才能更新儲存配額。如果您已達到儲存配額，您將無法在此期間建立新的開發環境。

**重要**  
刪除開發環境無法復原。刪除開發環境之後，您就無法再復原它。<a name="devenvironment-delete-steps"></a>

**刪除開發環境**

1. 在 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/) 開啟 CodeCatalyst 主控台。

1. 導覽至您要刪除開發環境的專案。

1. 在導覽窗格中，選擇**程式碼**。

1. 選擇**開發環境**。

1. 選擇您要刪除的開發環境。

1. 選擇 **刪除**。

1. 輸入 **delete** 以確認開發環境刪除。

1. 選擇 **刪除**。

**注意**  
刪除空間中的 VPC 連線之前，請務必移除與該 VPC 相關聯的開發環境。  
即使您刪除開發環境，您也可能不會刪除 VPC 中的網路介面。請務必視需要清理您的 資源。如果刪除 VPC 連線的開發環境時發生錯誤，您必須[分離](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#detach_eni)過時的連線，並在確認未使用後將其[刪除](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#delete_eni)。

# 使用 SSH 連線至開發環境
<a name="devenvironment-connect-ssh"></a>

您可以使用 SSH 連線到開發環境，以無限制地執行動作，例如連接埠轉送、上傳和下載檔案，以及使用其他 IDEs。

**注意**  
如果您想要在關閉 IDE 標籤或視窗後長時間繼續使用 SSH，請務必為開發環境設定高逾時，使其不會因為 IDE 中的閒置而停止。

**先決條件**
+ 您需要下列其中一個作業系統：
  + Windows 10 或更新版本並啟用 OpenSSH 
  + macOS 和 Bash 第 3 版或更新版本
  + Linux 搭配 `yum`、 `dpkg`或 `rpm`套件管理員和 Bash 第 3 版或更新版本
+ 您也需要 2 AWS CLI .9.4 版或更新版本。<a name="devenvironment-connect-ssh-steps"></a>

**使用 SSH 連線至開發環境**

1. 在 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/) 開啟 CodeCatalyst 主控台。

1. 導覽至您要使用 SSH 連線至開發環境的專案。

1. 在導覽窗格中，選擇**程式碼**。

1. 選擇**開發環境**。

1. 選擇您要使用 SSH 連線的執行中開發環境。

1. 選擇**透過 SSH 連線**，選擇所需的作業系統，然後執行下列動作：
   + 如果您尚未這樣做，請在指定的終端機中貼上並執行第一個命令。命令會下載指令碼，並在您的本機環境中執行下列修改，以便您可以使用 SSH 連線至開發環境：
     + 安裝 [的 Session Manager 外掛程式 AWS CLI](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)
     + 修改您的本機 AWS Config 並新增 CodeCatalyst 設定檔，以便您能夠執行 SSO 登入。如需詳細資訊，請參閱[設定 以 AWS CLI 搭配 CodeCatalyst 使用](set-up-cli.md)。
     + 修改本機 SSH 組態，並新增使用 SSH 連線至開發環境所需的組態。
     + 在 SSH 用戶端用來連線至開發環境的`~/.aws/codecatalyst-dev-env`目錄中新增指令碼。此指令碼會呼叫 [CodeCatalyst StartDevEnvironmentSession API](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_StartDevEnvironmentSession.html)，並使用 AWS Systems Manager Session Manager 外掛程式與開發環境建立工作階段，本機 SSH 用戶端會使用此 AWS Systems Manager 工作階段安全地連線至遠端開發環境。
   + 使用第二個命令使用 AWS SSO 登入 Amazon CodeCatalyst。此命令會請求和擷取登入資料，以便 `~/.aws/codecatalyst-dev-env`目錄中的指令碼可以呼叫 [CodeCatalyst StartDevEnvironmentSession API](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_StartDevEnvironmentSession.html)。每次您的登入資料過期時，都應執行此命令。當您在 modal( ssh <destination>) 中執行最後一個命令時，如果您的登入資料已過期，或尚未依照此步驟中的指示執行 SSO 登入，則會收到錯誤。
   + 使用第三個命令，使用 SSH 連線到您指定的開發環境。此命令具有下列結構：

     ```
     ssh codecatalyst-dev-env=<space-name>=<project-name>=<dev-environment-id>
     ```

     您也可以使用此命令來執行 SSH 用戶端允許的其他動作，例如連接埠轉送或上傳和下載檔案：
     + 連接埠轉送：

       ```
       ssh -L <local-port>:127.0.0.1:<remote-port> codecatalyst-dev-env=<space-name>=<project-name>=<dev-environment-id>
       ```
     + 將檔案上傳至開發環境中的主目錄：

       ```
       scp -O </path-to-local-file> codecatalyst-dev-env=<space-name>=<project-name>=<dev-environment-id>:</path-to-remote-file-or-directory>
       ```

# 設定開發環境的 devfile
<a name="devenvironment-devfile"></a>

*devfile* 是一種開放標準，可協助您在團隊中自訂開發開發環境。devfile 是 YAML 檔案，可編纂您所需的開發工具。透過設定 devfile，您可以預先確定所需的專案工具和應用程式程式庫，Amazon CodeCatalyst 會為您將其安裝到您的開發環境。devfile 專屬於為其建立的儲存庫，您可以為每個儲存庫建立個別的 devfile。您的開發環境支援命令和事件，並提供預設的通用 devfile 映像。

如果您使用空白藍圖建立專案，您可以手動建立 devfile。如果您使用不同的藍圖建立專案，CodeCatalyst 會自動建立 devfile。開發環境的`/projects`目錄會存放從來源儲存庫和 devfile 提取的檔案。當您第一次建立開發環境時， `/home`目錄是空的， 會存放您在使用開發環境時建立的檔案。開發環境的 `/projects`和 `/home`目錄中的所有內容都會持續儲存。

**注意**  
只有當您變更 devfile 或 devfile 元件名稱時，`/home`資料夾才會變更。如果您變更 devfile 或 devfile 元件名稱，則會取代`/home`目錄的內容，而且無法復原先前的`/home`目錄資料。

如果您使用來源儲存庫建立的開發環境在其根中不包含 devfile，或者如果您建立沒有來源儲存庫的開發環境，則預設通用 devfile 會自動套用到來源儲存庫。相同的預設通用 devfile 映像會用於所有 IDEs。CodeCatalyst 目前支援 devfile 2.0.0 版。如需 devfile 的詳細資訊，請參閱 [Devfile 結構描述 - 2.0.0 版](https://devfile.io/docs/2.0.0/devfile-schema)。

**注意**  
您只能在您的 devfile 中包含公用容器影像。

請注意，VPC 連線的開發環境僅支援下列開發檔案映像：
+ 通用映像
+ 如果儲存庫與 VPC 位於相同區域，則為私有 Amazon ECR 映像

**Topics**
+ [編輯開發環境的儲存庫 devfile](devenvironment-devfile-moving.md)
+ [CodeCatalyst 支援的 Devfile 功能](#devenvironment-devfile-support)
+ [開發環境的 devfile 範例](#devenvironment-devfile-example)
+ [使用復原模式對儲存庫開發檔進行故障診斷](#devenvironment-devfile-recovery)
+ [指定開發環境的通用 devfile 映像](devenvironment-universal-image.md)
+ [Devfile 命令](devenvironment-devfile-commands.md)
+ [Devfile 事件](devenvironment-devfile-events.md)
+ [Devfile 元件](devenvironment-devfile-components.md)

# 編輯開發環境的儲存庫 devfile
<a name="devenvironment-devfile-moving"></a>

使用下列程序來編輯開發環境的儲存庫 devfile。

## 在 CodeCatalyst 中編輯開發環境的儲存庫 devfile
<a name="devenvironment-devfile-procedure"></a><a name="devenvironment-devfile-steps"></a>

**編輯儲存庫 devfile**

1. 在 https：//[https://codecatalyst.aws/](https://codecatalyst.aws/) 開啟 CodeCatalyst 主控台。

1. 導覽至包含您要為其編輯 devfile 之來源儲存庫的專案。

1. 在導覽窗格中，選擇**程式碼**。

1. 選擇**來源儲存庫**。

1. 選擇包含您要編輯之 devfile 的來源儲存庫。

1. 從檔案清單中，選擇`devfile.yaml`檔案。

1. 選擇**編輯**。

1. 編輯 devfile。

1. 選擇**遞交**，或建立提取請求，以便團隊成員可以檢閱和核准變更。

**注意**  
如果您編輯 devfile，則必須重新啟動 devfile，變更才會生效。這可以透過執行 來完成`/aws/mde/mde start --location devfile.yaml`。如果啟動您的 devfile 時發生問題，它會進入復原模式。不過，如果您編輯與 VPC 連線的開發環境相關聯的 devfile，則必須重新啟動開發環境，變更才會生效。

您可以檢閱執行 正在使用哪個 devfile`/aws/mde/mde status`。位置欄位具有相對於環境`/projects`資料夾的 devfile 路徑。

```
{
            "status": "STABLE",
            "location": "devfile.yaml"
        }
```

您也可以將預設 devfile `/projects/devfile.yaml` 移入您的原始碼儲存庫。若要更新 devfile 的位置，請使用下列命令：`/aws/mde/mde start --location repository-name/devfile.yaml`。

## 在 IDE 中編輯開發環境的儲存庫 devfile
<a name="devenvironment-devfile-ide"></a>

若要變更開發環境的組態，您必須編輯 devfile。我們建議您在支援的 IDE 中編輯 devfile，然後更新開發環境，但您也可以從 CodeCatalyst 中的來源儲存庫根目錄編輯 devfile。如果您在支援的 IDE 中編輯 devfile，則必須遞交變更並推送至來源儲存庫，或建立提取請求，以便團隊成員可以檢閱和核准 devfile 編輯。
+ [在 中編輯開發環境的儲存庫 devfile AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/devenvironment-cloud9.title.html#ide-toolkits-edit-devfile-cloud9)
+ [在 VS 程式碼中編輯開發環境的儲存庫 devfile](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/codecatalyst-devenvironment.html#codecatalyst-devenvironment-devfile)
+ [在 JetBrains 中編輯開發環境的儲存庫 devfile](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/codecatalyst-overview.html#codecatalyst-overview-default)

## CodeCatalyst 支援的 Devfile 功能
<a name="devenvironment-devfile-support"></a>

CodeCatalyst 支援 2.0.0 版的下列 devfile 功能。如需 devfile 的詳細資訊，請參閱 [Devfile 結構描述 - 2.0.0 版](https://devfile.io/docs/2.0.0/devfile-schema)。


| 功能 | Type | 
| --- | --- | 
|  `exec`  |  命令  | 
|  `postStart`  |  事件  | 
|  `container`  |  元件  | 
|  `args`  |  元件屬性  | 
|  `env`  |  元件屬性  | 
|  `mountSources`  |  元件屬性  | 
|  `volumeMounts`  |  元件屬性  | 

## 開發環境的 devfile 範例
<a name="devenvironment-devfile-example"></a>

以下是簡單 devfile 的範例。

```
schemaVersion: 2.0.0
metadata:
  name: al2
components:
  - name: test
    container:
      image: public.ecr.aws/amazonlinux/amazonlinux:2
      mountSources: true
      command: ['sleep', 'infinity']
  - name: dockerstore
commands:
  - id: setupscript
    exec:
      component: test
      commandLine: "chmod +x script.sh"
      workingDir: /projects/devfiles
  - id: executescript
    exec:
      component: test
      commandLine: "/projects/devfiles/script.sh"
  - id: yumupdate
    exec:
      component: test
      commandLine: "yum -y update --security"
events:
  postStart:
    - setupscript
    - executescript
    - yumupdate
```

開發檔案啟動、命令和事件日誌會擷取並儲存在 中`/aws/mde/logs`。若要偵錯開發檔案行為，請使用運作中的開發檔案啟動開發環境並存取日誌。

## 使用復原模式對儲存庫開發檔進行故障診斷
<a name="devenvironment-devfile-recovery"></a>

如果啟動您的 devfile 時發生問題，它會進入復原模式，讓您仍然可以連線到您的環境並修正您的 devfile。在復原模式中，執行 `/aws/mde/mde status`不會包含您 devfile 的位置。

```
{
            "status": "STABLE"
        }
```

您可以在 下的日誌中檢查錯誤`/aws/mde/logs`、修正 devfile，然後再試一次`/aws/mde/mde start`。

# 指定開發環境的通用 devfile 映像
<a name="devenvironment-universal-image"></a>

預設*通用映像*包含最常使用的程式設計語言，以及可用於 IDE 的相關工具。如果未指定映像，CodeCatalyst 會提供此映像，並包含 CodeCatalyst 維護的工具。若要保持新映像版本的通知，請參閱 [使用 SNS 訂閱通用映像通知](#devenvironment-universal-notifications)。

Amazon CodeCatalyst 主動支援下列 devfile 映像：


| 映像版本 | 映像識別符 | 
| --- | --- | 
| Universal image 4.0 | public.ecr.aws/aws-mde/universal-image:4.0 | 
| Universal image 5.0 | public.ecr.aws/aws-mde/universal-image:5.0 | 

**注意**  
您也可以使用 `public.ecr.aws/aws-mde/universal-image:latest`取得目前為 的最新映像`public.ecr.aws/aws-mde/universal-image:5.0`。

CodeCatalyst 已棄用下列映像。您仍然可以使用這些映像，但這些映像不會快取在建置主機上，而且會導致開發環境啟動時間增加。


| 映像版本 | 映像識別符 | 取代日期 | 
| --- | --- | --- | 
| Universal image 1.0 | public.ecr.aws/aws-mde/universal-image:1.0 | 2024 年 8 月 16 日 | 
| Universal image 2.0 | public.ecr.aws/aws-mde/universal-image:2.0 | 2024 年 8 月 16 日 | 
| Universal image 3.0 | public.ecr.aws/aws-mde/universal-image:3.0 | 2025 年 7 月 30 日 | 

**注意**  
如果您使用的是 AWS Cloud9，在升級至 之後，自動完成不適用於 PHP、Ruby 和 CSS`universal-image:3.0`。

**Topics**
+ [使用 SNS 訂閱通用映像通知](#devenvironment-universal-notifications)
+ [通用映像 4.0 執行時間版本](#devenvironment-universal-runtimes-4.0)
+ [通用映像 5.0 執行時間版本](#devenvironment-universal-runtimes-5.0)

## 使用 SNS 訂閱通用映像通知
<a name="devenvironment-universal-notifications"></a>

CodeCatalyst 提供通用映像通知服務。您可以使用它來訂閱 Amazon Simple Notification Service (SNS) 主題，該主題會在 CodeCatalyst 通用映像更新發佈時通知您。如需 SNS 主題的詳細資訊，請參閱[什麼是 Amazon Simple Notification Service？](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)。

每當發佈新的通用映像時，我們會傳送通知給訂閱者；本節說明如何訂閱 CodeCatalyst 通用映像更新。

**訊息範例**

```
{
    "Type": "Notification",
    "MessageId": "123456789",
    "TopicArn": "arn:aws:sns:us-east-1:1234657890:universal-image-updates",
    "Subject": "New Universal Image Release",
    "Message": {
        "v1": {
            "Message": "A new version of the Universal Image has been released. You are now able to launch new DevEnvironments using this image.",
            "image ": {
                "release_type": "MAJOR VERSION",
                "image_name": "universal-image",
                "image_version": "2.0",
                "image_uri": "public.ecr.aws/amazonlinux/universal-image:2.0"
            }
        }
    },
    "Timestamp": "2021-09-03T19:05:57.882Z",
    "UnsubscribeURL": "example url"
}
```

**使用 Amazon SNS 主控台訂閱 CodeCatalyst 通用映像更新**

1. 開啟儀表板的 Amazon SNS 主控台[https://console.aws.amazon.com/sns/v2/home](https://console.aws.amazon.com/sns/v2/home)。

1. 在導覽列中，選擇您的 AWS 區域。

1. 在導覽窗格中選擇 **Subscriptions (訂閱)**，然後選擇 **Create subscription (建立訂閱)**。

1. 在**主題 ARN** 中，輸入 `arn:aws:sns:us-east-1:089793673375:universal-image-updates`。

1. 在 **Protocol (通訊協定)** 中，選擇 **Email (電子郵件)**。

1. 在**端點**中，提供電子郵件地址。此電子郵件地址將用於接收通知。

1. 選擇**建立訂閱**。

1. 您將收到一封確認電子郵件，主旨行為「AWS 通知 - 訂閱確認」。開啟電子郵件，然後選擇**確認訂閱**。

**使用 Amazon SNS 主控台取消訂閱 CodeCatalyst 通用映像更新**

1. 開啟儀表板的 Amazon SNS 主控台[https://console.aws.amazon.com/sns/v2/home](https://console.aws.amazon.com/sns/v2/home)。

1. 在導覽列中，選擇您的 AWS 區域。

1. 在導覽窗格中，選擇**訂閱**，然後選取您要取消訂閱的訂閱。

1. 選擇**動作**，然後選擇**刪除訂閱**。

1. 選擇 **刪除**。

## 通用映像 4.0 執行時間版本
<a name="devenvironment-universal-runtimes-4.0"></a>

下表列出 的可用執行時間`universal-image:4.0`。


**`universal-image:4.0` 執行時間版本**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/codecatalyst/latest/userguide/devenvironment-universal-image.html)

## 通用映像 5.0 執行時間版本
<a name="devenvironment-universal-runtimes-5.0"></a>

下表列出 的可用執行時間`universal-image:5.0`。


**`universal-image:5.0` 執行時間版本**  

| 執行時間名稱  | 版本 | 特定主要和最新次要版本 | 
| --- | --- | --- | 
| aws cli |  2.25  |  `aws-cli: 2.x`  | 
| docker compose |  2.34  |  `docker-compose: 2.x`  | 
| dotnet |  8.0  |  `dotnet: 8.x`  | 
| golang |  1.24  |  `golang: 1.x`  | 
| java |  corretto21  |  `java: corretto21.x`  | 
| nodejs |  22.0  |  `nodejs: 22.x`  | 
| php |  8.3.16  |  `php: 8.x`  | 
| python |  3.12  |  `python: 3.x`  | 
| ruby |  3.4.2  |  `ruby: 3.x`  | 
| terraform |  1.10.5  |  `terraform: 1.x`  | 

# Devfile 命令
<a name="devenvironment-devfile-commands"></a>

目前，CodeCatalyst 僅支援 devfile 中的`exec`命令。如需詳細資訊，請參閱 Devfile.io 文件中的[新增命令](https://devfile.io/docs/2.0.0/adding-commands)。

下列範例示範如何在 devfile 中指定`exec`命令。

```
commands:
  - id: setupscript
    exec:
      component: test
      commandLine: "chmod +x script.sh"
      workingDir: /projects/devfiles
  - id: executescript
    exec:
      component: test
      commandLine: "./projects/devfiles/script.sh"
  - id: updateyum
    exec:
      component: test
      commandLine: "yum -y update --security"
```

連線到開發環境後，您可以透過終端機執行定義的命令。

```
/aws/mde/mde command <command-id>
/aws/mde/mde command executescript
```

對於長時間執行的命令，您可以使用串流旗標即時`-s`輸出命令的執行。

```
/aws/mde/mde -s command <command-id>
```

**注意**  
`command-id` 必須是小寫。

## CodeCatalyst 支援的 Exec 參數
<a name="devenvironment-exec-support"></a>

CodeCatalyst 在 devfile 2.0.0 版上支援下列`exec`參數。
+ `commandLine`
+ `component`
+ `id`
+ `workingDir`

# Devfile 事件
<a name="devenvironment-devfile-events"></a>

目前，CodeCatalyst 僅支援您 devfile 中的`postStart`事件。如需詳細資訊，請參閱 https：//Devfile.io 文件中的 [postStartObject](https://devfile.io/docs/2.0.0/adding-event-bindings#post-start-object)。

下列範例示範如何在 devfile 中新增`postStart`事件繫結。

```
commands:
  - id: executescript
    exec:
      component: test
      commandLine: "./projects/devfiles/script.sh"
  - id: updateyum
    exec:
      component: test
      commandLine: "yum -y update --security"
events:
  postStart:
    - updateyum
    - executescript
```

啟動後，開發環境會依定義的順序執行指定的`postStart`命令。如果命令失敗，開發環境將繼續執行，且執行輸出會存放在 下的日誌中`/aws/mde/logs`。

# Devfile 元件
<a name="devenvironment-devfile-components"></a>

目前，CodeCatalyst 僅支援您 devfile 中的`container`元件。如需詳細資訊，請參閱 Devfile.io 文件中的[新增元件](https://devfile.io/docs/2.0.0/adding-components)。

下列範例示範如何將啟動命令新增至 devfile 中的容器。

```
components:
  - name: test
    container:
      image: public.ecr.aws/amazonlinux/amazonlinux:2
      command: ['sleep', 'infinity']
```

**注意**  
當容器具有短暫的即時項目命令時，您必須包含 `command: ['sleep', 'infinity']`才能讓容器保持執行狀態。

CodeCatalyst 也支援容器元件中的下列屬性：`args`、`mountSources`、 `env`和 `volumeMounts`。

# 將 VPC 連線與開發環境建立關聯
<a name="devenvironment-using-vpc"></a>

*VPC 連線*是 CodeCatalyst 資源，其中包含工作流程存取 VPC 所需的所有組態。空間管理員可以代表空間成員在 Amazon CodeCatalyst 主控台中新增自己的 VPC 連線。透過新增 VPC 連線，空間成員可以執行工作流程動作並建立遵循網路規則的開發環境，以及存取相關聯 VPC 中的資源。

**重要**  
具有 VPC 連線的開發環境不支援[連結至 CodeCatalyst 的第三方來源儲存庫](source-repositories-link.md)。

您只能在開發環境建立時將開發環境與 VPC 連線建立關聯。您無法在建立開發環境之後變更與開發環境相關聯的 VPC 連線。如果您想要使用不同的 VPC 連線，則必須刪除目前的開發環境並建立新的環境。

**注意**  
開發環境只能與可存取您專案的 AWS 帳戶建立 VPC 連線關聯。如需詳細資訊，請參閱《*Amazon CodeCatalyst 管理員指南*》中的[設定專案限制帳戶連線](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-accounts-restriction.html)。

請注意，開發環境會在建立時利用數個 AWS 資源和服務。這表示開發環境會連線至下列 AWS 服務：
+ Amazon CodeCatalyst
+ AWS SSM
+ AWS KMS
+ Amazon ECR
+ Amazon CloudWatch
+ Amazon ECS

**注意**  
AWS 工具組 不支援使用相關聯的 VPC 連線建立開發環境。另請注意，如果您使用 以外的 IDE AWS Cloud9，您可能會遇到大約五分鐘的載入時間。

您必須擁有**空間管理員**角色或**進階使用者**角色，才能在空間層級管理 VPC 連線。如需 VPCs的詳細資訊，請參閱 [ CodeCatalyst 管理員指南中的在 CodeCatalyst 中管理 Amazon VPCs](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.html)。 *CodeCatalyst *

# CodeCatalyst 中開發環境的配額
<a name="devenvironment-limits"></a>

下表說明 Amazon CodeCatalyst 中開發環境的配額和限制。如需 Amazon CodeCatalyst 中配額的詳細資訊，請參閱 [CodeCatalyst 的配額](quotas.md)。


|  |  | 
| --- |--- |
| 每月開發環境時數 | 開發環境時數會受到您空間的整體儲存限制影響。如需詳細資訊，請參閱 [ 定價](https://codecatalyst.aws/explore/pricing)和 [針對開發環境的問題進行故障診斷](devenvironments-troubleshooting.md)。 | 
| 每個空間的開發環境儲存量 | 開發環境儲存受到空間整體儲存限制的影響。如需詳細資訊，請參閱 [ 定價](https://codecatalyst.aws/explore/pricing)和 [針對開發環境的問題進行故障診斷](devenvironments-troubleshooting.md)。 | 
| 開發環境運算的數量  | 開發環境運算會受到空間整體儲存限制的影響。如需詳細資訊，請參閱 [ 定價](https://codecatalyst.aws/explore/pricing)和 [針對開發環境的問題進行故障診斷](devenvironments-troubleshooting.md)。 | 