

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

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

# 開発環境に 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` のプロパティもサポートしています。