

Amazon CodeCatalyst は新規のお客様には提供されなくなりました。既存のお客様は、通常どおりサービスを引き続き使用できます。詳細については、「[CodeCatalyst から移行する方法](migration.md)」を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# CodeCatalyst で開発環境を使用してコードを記述および変更する
<a name="devenvironment"></a>

開発環境はクラウドベースの開発環境です。Amazon CodeCatalyst で、開発環境を使用して、プロジェクトのソースリポジトリに保存されているコードを操作できます。開発環境を作成するときは、いくつかのオプションがあります。
+ CodeCatalyst でプロジェクト固有の開発環境を作成して、サポートされている統合開発環境 (IDE) を備えたコードを処理することもできます。
+ 空の開発環境を作成し、ソースリポジトリからコードを複製して、サポートされている IDE でそのコードを処理します。
+ 任意の IDE で開発環境を作成し、ソースリポジトリを開発環境に複製する

*[devfile]* は、開発環境を標準化するオープンスタンダード YAML ファイルです。つまり、このファイルは開発環境に必要な開発ツールを体系化します。その結果、開発環境をすばやくセットアップし、プロジェクト間で切り替え、チームメンバー間で開発環境設定をレプリケートできます。開発環境は、プロジェクトのコード、テスト、デバッグに必要なすべてのツールを設定した devfile を使用するため、ローカルの開発環境の作成と維持に費やす時間を最小限に抑えることができます。

**重要**  
開発環境は、CodeCatalyst 認証情報にアクセスできる devfiles を介してスクリプトを実行できます。信頼できないリソースを開く前に、リポジトリを確認してください。

開発環境に含まれるプロジェクトツールとアプリケーションライブラリは、プロジェクトのソースリポジトリ内の devfile によって定義されます。ソースリポジトリに devfile がない場合、CodeCatalyst は自動的にデフォルトの devfile を適用します。このデフォルトの devfile には、最も頻繁に使用されるプログラミング言語とフレームワーク用のツールが含まれています。プロジェクトがブループリントを使用して作成された場合、CodeCatalyst によって devfile が自動的に作成されます。devfile の詳細については、[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 で作成します。
+ 任意の IDE で開発環境を作成し、この開発環境内に任意のソースリポジトリを複製します。

**重要**  
開発環境は、Active Directory が ID プロバイダーとして使用されているスペースのユーザーは利用できません。詳細については、「[単一のサインオンアカウントを使用して CodeCatalyst にサインインすると、開発環境を作成できない](devenvironments-troubleshooting.md#troubleshoot-create-dev-env-idprovider)」を参照してください。

リポジトリのブランチごとに 1 つの開発環境を作成できます。プロジェクトは複数のリポジトリを持つことができます。作成する開発環境は CodeCatalyst アカウントでのみ管理できますが、開発環境を開いて、サポートされている IDE のいずれかで作業できます。IDE で開発環境を使用するには、 AWS Toolkit がインストールされている必要があります。詳細については、「[開発環境でサポートされている統合開発環境](#devenvironment-supported-ide)」を参照してください。デフォルトでは、開発環境は 2 コアプロセッサ、4 GB の RAM、16 GB の永続ストレージで作成されます。

**注記**  
ソースリポジトリに関連付けられている開発環境を作成した場合、**[リソース]** 列には、この開発環境の作成時に指定したブランチが常に表示されます。これは、別のブランチを作成したり、開発環境内の別のブランチに切り替えたり、追加のリポジトリをクローンしたりする場合にも当てはまります。空の開発環境を作成した場合、**[リソース]** 列は空白になります。

## 開発環境でサポートされている統合開発環境
<a name="devenvironment-supported-ide"></a>

開発環境は、サポートされている以下の統合開発環境 (IDE) で使用できます。
+ [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 Code](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://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. 開発環境を作成するプロジェクトに移動します。

1. ナビゲーションペインで、次のいずれかを実行します。
   + **[概要]** を選択し、次に **[My 開発環境]** セクションに移動します。
   + **[コード]** を選択してから、**[開発環境]** を選択します。
   + **[コード]** を選択し、**[ソースリポジトリ]** を選択して、開発環境を作成するリポジトリを選択します。

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 Toolkitがサポートされないことに注意してください。

   使用する VPC 接続が表示されていない場合は、プロジェクトで許可されていない AWS アカウント 接続が含まれている可能性があります。詳細については、「*Amazon CodeCatalyst 管理者ガイド*」の「[プロジェクト制限アカウント接続の設定](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-accounts-restriction.html)」を参照してください。
**注記**  
VPC 接続を使用して開発環境を作成すると、VPC 内に新しいネットワークインターフェイスが作成されます。CodeCatalyst は、関連付けられた VPC ロールを使用して、このインターフェイスとやり取りします。また、IPv4 CIDR ブロックが IP アドレス範囲 `172.16.0.0/12` **に設定されていないこと**を確認してください。

1. **[作成]** を選択します。開発環境の作成中は、開発環境のステータス列に **[開始中]** と表示され、開発環境が作成されると、ステータス列に **[実行中]** と表示されます。

**空の開発環境を作成するには**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. 開発環境を作成するプロジェクトに移動します。

1. ナビゲーションペインで、次のいずれかを実行します。
   + **[概要]** を選択し、次に **[My 開発環境]** セクションに移動します。
   + **[コード]** を選択してから、**[開発環境]** を選択します。

1. **[開発環境を作成]** を選択します。

1. ドロップダウンメニューからサポートされている IDE を選択します。詳細については「[開発環境でサポートされている統合開発環境](#devenvironment-supported-ide)」を参照してください。

1. **[空の開発環境を作成]** を選択します。

1. (オプション) **[エイリアス - オプション]** で、開発環境のエイリアスを入力します。

1. (オプション) **[開発環境設定]** 編集ボタンを選択して、開発環境のコンピューティング、ストレージ、またはタイムアウトの設定を編集します。

1. (オプション) **[Amazon Virtual Private Cloud (Amazon VPC) - オプション]** で、ドロップダウンメニューから開発環境に関連付ける VPC 接続を選択します。

   スペースにデフォルトの VPC が設定されている場合、開発環境はその VPC に接続して実行されます。この設定は、別の VPC 接続を関連付けることでオーバーライドできます。また、VPC に接続された開発環境では、 AWS Toolkitがサポートされないことに注意してください。

   使用する VPC 接続が表示されていない場合は、プロジェクトで許可されていない AWS アカウント 接続が含まれている可能性があります。詳細については、「*Amazon CodeCatalyst 管理者ガイド*」の「[プロジェクト制限アカウント接続の設定](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-accounts-restriction.html)」を参照してください。
**注記**  
VPC 接続を使用して開発環境を作成すると、VPC 内に新しいネットワークインターフェイスが作成されます。CodeCatalyst は、関連付けられた VPC ロールを使用して、このインターフェイスとやり取りします。また、IPv4 CIDR ブロックが IP アドレス範囲 `172.16.0.0/12` **に設定されていないこと**を確認してください。

1. **[作成]** を選択します。開発環境の作成中は、開発環境のステータス列に **[開始中]** と表示され、開発環境が作成されると、ステータス列に **[実行中]** と表示されます。

**注記**  
開発環境を初めて作成して開くには、1～2 分かかる場合があります。

**注記**  
IDE で開発環境が開いたら、コードに変更をコミットしてプッシュする前に、ディレクトリをソースリポジトリに変更する必要がある場合があります。

## IDE で開発環境を作成する
<a name="devenvironment-using-ide"></a>

開発環境を使用して、プロジェクトのソースリポジトリに保存されているコードを素早く操作できます。開発環境は、サポートされている統合開発環境 (IDE) を使用して、プロジェクト固有の完全に機能するクラウド開発環境ですぐにコーディングを開始できるため、開発速度が向上します。

IDE からの CodeCatalyst の使用については、以下のドキュメントを参照してください。
+ [JetBrains IDE 用 Amazon CodeCatalyst](https://docs.aws.amazon.com/toolkit-for-jetbrains/latest/userguide/codecatalyst-service.html)
+ [VS Code 用 Amazon CodeCatalyst](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/codecatalyst-service.html)
+ [Amazon CodeCatalyst for 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` ディレクトリ内のすべては永続的に保存されるため、別の開発環境、リポジトリ、またはプロジェクトに切り替えて、開発環境での作業を停止できます。

**警告**  
ウェブブラウザ、リモートシェル、IDE などのインスタンスが接続されたままになっても、開発環境はタイムアウトしません。そのため、接続されているすべてのインスタンスを閉じて、追加コストが発生しないようにしてください。

開発環境の作成時に **[タイムアウト]** フィールドで選択した時間まで開発環境のアイドル状態が続くと、開発環境は自動的に停止します。開発環境はアイドル状態になる前に停止できます。開発環境の作成時に **[タイムアウトなし]** を選択した場合、開発環境は自動的に停止しません。代わりに、継続的に実行されます。

**警告**  
削除された VPC 接続に関連付けられている開発環境を停止した場合、再開することはできません。<a name="devenvironment-stop-steps"></a>

**開発環境ページから開発環境を停止するには**

1. [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. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. 開発環境を再開するプロジェクトに移動し、**[開発環境]** セクションに移動します。

1. **[再開 (IDE)]** を選択します。
   + JetBrains IDEs の場合、JetBrains Gateway-EAP を選択し、**JetBrains-gateway リンクを開くアプリケーションを選択する**ように求められます。確認を求められたら、**[リンクを開く]** を選択します。
   + VS Code IDE では、**アプリケーションを選択し、VS Code のリンクを開く**ように求められたら、VS Code を選択します。**[リンクを開く]** を選択して確認します。<a name="source-resume-source-steps"></a>

**ソースリポジトリから開発環境を再開するには**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. 開発環境を再開するプロジェクトに移動します。

1. ナビゲーションペインで、**[コード]** を選択します。

1. **[ソースリポジトリ]** を選択します。

1. 再開する開発環境が含まれるソースリポジトリを選択します。

1. ブランチ名を選択してブランチのドロップダウンメニューを表示し、ブランチを選択します。

1. **[開発環境を再開]** を選択します。
   + JetBrains IDE の場合、**このサイトに JetBrains Gateway との JetBrains-gateway を開くことを許可する**ように求められたら、**[リンクを開く]** を選択して確認します。
   + VS Code IDE の場合、**このサイトに Visual Studio Code との VS Code リンクを開くことを許可する**ように求められたら、**[リンクを開く]** を選択して確認します。<a name="devenvironment-resume-steps"></a>

**開発環境ページから開発環境を再開するには**

1. [https://codecatalyst.aws/](https://codecatalyst.aws/) で CodeCatalyst コンソールを開きます。

1. 開発環境を再開するプロジェクトに移動します。

1. ナビゲーションペインで、**[コード]** を選択します。

1. **[開発環境]** を選択します。

1. **[IDE]** 列から、開発環境の **[再開 (IDE)]** を選択します。
   + JetBrains IDE の場合、**このサイトに JetBrains Gateway との JetBrains-gateway を開くことを許可する**ように求められたら、**[リンクを開く]** を選択して確認します。
   + VS Code IDE の場合、**このサイトに Visual Studio Code との VS Code リンクを開くことを許可する**ように求められたら、**[リンクを開く]** を選択して確認します。

**注記**  
開発環境の再開には数分かかることがあります。

# 開発環境の編集
<a name="devenvironment-edit"></a>

IDE の実行中に、開発環境を編集できます。コンピューティングまたは非アクティブタイムアウトを編集すると、変更を保存した後に開発環境が再起動します。<a name="devenvironment-edit-steps"></a>

**開発環境を編集するには**

1. [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://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 を使用して開発環境に接続し、ポート転送、ファイルのアップロードとダウンロード、その他の IDE の使用など、制限なくアクションを実行できます。

**注記**  
IDE タブまたはウィンドウを閉じた後も SSH を長時間使用し続ける場合は、IDE の非アクティブが原因で停止しないように、開発環境のタイムアウトを高く設定してください。

**前提条件**
+ 次のいずれかの OS が必要です。
  + Windows 10 以降で OpenSSH が有効になっている
  + macOS および Bash バージョン 3 以降
  + `yum`、`dpkg`、または `rpm` パッケージマネージャーと Bash バージョン 3 以降の Linux
+  AWS CLI バージョン 2.9.4 以降も必要です。<a name="devenvironment-connect-ssh-steps"></a>

**SSH を使用して開発環境に接続するには**

1. [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)
     + SSO ログインを実行できるように、ローカル を変更 AWS Config し、CodeCatalyst プロファイルを追加します。詳細については、「[CodeCatalyst AWS CLI で を使用するための のセットアップ](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 プラグインを使用して開発環境との AWS Systems Manager セッションを確立します。このセッションは、ローカル SSH クライアントがリモート開発環境に安全に接続するために使用されます。
   + 2 番目のコマンドを使用して SSO を使用して Amazon CodeCatalyst AWS にサインインします。このコマンドは、`~/.aws/codecatalyst-dev-env` ディレクトリ内のスクリプトが [[CodeCatalyst StartDevEnvironmentSession API]](https://docs.aws.amazon.com/codecatalyst/latest/APIReference/API_StartDevEnvironmentSession.html) を呼び出すことができるように、認証情報をリクエストして取得します。このコマンドは、認証情報の有効期限が切れるたびに実行する必要があります。モーダル (ssh <destination>) で最後のコマンドを実行すると、認証情報の有効期限が切れているか、このステップで指示されているように SSO ログインを実行していない場合にエラーが発生します。
   + 3 番目のコマンドを使用して 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` ディレクトリのすべての内容は永続的に保存されます。

**注記**  
`/home` フォルダは、devfile または devfile コンポーネント名の名前を変更する場合にのみ変更されます。devfile または devfile コンポーネント名を変更すると、`/home` ディレクトリの内容が置き換えられ、以前の `/home` ディレクトリデータは復元できなくなります。

ルートに devfile が含まれないソースリポジトリを使用して開発環境を作成する場合、またはソースリポジトリなしで開発環境を作成する場合、デフォルトのユニバーサル devfile が自動的にソースリポジトリに適用されます。すべての IDE に同じデフォルトのユニバーサル devfile イメージが使用されます。CodeCatalyst は現在、devfile バージョン 2.0.0 をサポートしています。devfile の詳細については、「[Devfile スキーマ - バージョン 2.0.0](https://devfile.io/docs/2.0.0/devfile-schema)」を参照してください。

**注記**  
devfile にはパブリックコンテナイメージのみを含めることができます。

VPC に接続された開発環境では、次の devfile イメージのみがサポートされることに注意してください。
+ ユニバーサルエージェント
+ リポジトリが VPC と同じリージョンにある場合のプライベート Amazon ECR イメージ

**Topics**
+ [開発環境のリポジトリ devfile の編集](devenvironment-devfile-moving.md)
+ [CodeCatalyst でサポートされている Devfile 機能](#devenvironment-devfile-support)
+ [開発環境の devfile の例](#devenvironment-devfile-example)
+ [リカバリモードを使用したリポジトリ devfile のトラブルシューティング](#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://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 を編集する場合は、変更を有効にするために代わりに開発環境を再起動する必要があります。

`/aws/mde/mde status` を実行して、どの devfile が使用されているかを確認できます。場所フィールドには、環境の `/projects` フォルダに対する devfile のパスがあります。

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

`/projects/devfile.yaml` 内のデフォルトの devfile をソースコードリポジトリに移動することもできます。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 Code での開発環境のリポジトリ 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)」を参照してください。


| 機能 | タイプ | 
| --- | --- | 
|  `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
```

Devfile の起動、コマンド、イベントログはキャプチャされ、`/aws/mde/logs` に保存されます。devfile の動作をデバッグするには、有効な devfile を使用して開発環境を起動し、ログにアクセスします。

## リカバリモードを使用したリポジトリ devfile のトラブルシューティング
<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 は、ユニバーサルイメージ通知サービスを提供します。これを使用して、CodeCatalyst ユニバーサルイメージの更新がリリースされたときに通知する Amazon Simple Notification Service (SNS) トピックにサブスクライブできます。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) を開きます。

1. ナビゲーションバーで、 を選択します AWS リージョン。

1. ナビゲーションペインで、**[Subscriptions]** (サブスクリプション) を選択して、**[Create subscription]** (サブスクリプションの作成) を選択します。

1. **[トピック ARN]** で、`arn:aws:sns:us-east-1:089793673375:universal-image-updates` と入力します。

1. [**プロトコル**] で、[**E メール**] を選択します。

1. **[エンドポイント]** で、E メールアドレスを指定します。この E メールアドレスは、通知の受信にのみ使用します。

1. [**Create subscription**] を選択してください。

1. AWS 「通知 - サブスクリプションの確認」という件名の確認メールが届きます。E メールを開き、[**サブスクリプションを確認**] を選択します。

**Amazon SNS コンソールを使用して CodeCatalyst ユニバーサルイメージ更新からサブスクライブ解除するには**

1. Amazon SNS コンソールの [[ダッシュボード]](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/ja_jp/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 ドキュメントの「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` イベントのみをサポートしています。詳細については、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`、`env`、`mountSources`、および `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 Toolkit は、関連付けられた VPC 接続を使用した開発環境の作成をサポートしていません。また、 以外の IDE を使用する場合 AWS Cloud9、約 5 分のロード時間が発生することがあります。

スペースレベルで VPC 接続を管理するには、**[スペース管理者]** ロールまたは **[パワーユーザー]** ロールが必要です。VPC の詳細については、「[CodeCatalyst 管理者ガイド](https://docs.aws.amazon.com/codecatalyst/latest/adminguide/managing-vpcs.html)」の「*CodeCatalyst の Amazon VPC 管理*」を参照してください。

# CodeCatalyst の開発環境のクォータ
<a name="devenvironment-limits"></a>

次の表は、Amazon CodeCatalyst の 開発環境のクォータと制限について説明しています。Amazon CodeCatalyst でのクォータの詳細については、「[CodeCatalyst のクォータ](quotas.md)」を参照してください。


|  |  | 
| --- |--- |
| 開発環境の 1 か月あたりの時間数 | 開発環境の時間は、スペースの全体的なストレージ制限の影響を受けます。詳細については、「[料金表](https://codecatalyst.aws/explore/pricing)」と「[開発環境に関する問題のトラブルシューティング](devenvironments-troubleshooting.md)」を参照してください。 | 
| スペースあたりの開発環境ストレージの量 | 開発環境ストレージは、スペースの全体的なストレージ制限の影響を受けます。詳細については、「[料金表](https://codecatalyst.aws/explore/pricing)」と「[開発環境に関する問題のトラブルシューティング](devenvironments-troubleshooting.md)」を参照してください。 | 
| 開発環境コンピューティングの量  | 開発環境コンピューティングは、スペースの全体的なストレージ制限の影響を受けます。詳細については、「[料金表](https://codecatalyst.aws/explore/pricing)」と「[開発環境に関する問題のトラブルシューティング](devenvironments-troubleshooting.md)」を参照してください。 | 