

これは AWS CDK v2 デベロッパーガイドです。旧版の CDK v1 は 2022 年 6 月 1 日にメンテナンスを開始し、2023 年 6 月 1 日にサポートを終了しました。

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

# `cdk watch`
<a name="ref-cli-cmd-watch"></a>

デプロイとホットスワップを実行するための変更について、ローカル AWS CDK プロジェクトを継続的に監視します。

このコマンドは `cdk deploy` に似ていますが、1 つのコマンドで継続的なデプロイおよびホットスワップを実行できます。

このコマンドは `cdk deploy --watch` のショートカットです。

`cdk watch` セッションを終了するには、`Ctrl+C` を押して進行状況を中断します。

監視されるファイルは、`cdk.json` ファイルの `"watch"` 設定によって決まります。1 つの文字列または文字列の配列を受け入れる 2 つのサブキーの `"include"` と `"exclude"` があります。各エントリは、`cdk.json` ファイルの場所と相関するパスとして解釈されます。`*` と `**` の両方が受け入れられます。

`cdk init` コマンドを使用してプロジェクトを作成する場合、プロジェクトの `cdk.json` ファイルで `cdk watch` に対して次のデフォルト動作が設定されます。
+  `"include"` は `"**/*"` に設定され、プロジェクトのルートにあるすべてのファイルおよびディレクトリが含まれます。
+  `"exclude"` はオプションですが、デフォルトで既に無視されているファイルおよびフォルダを除きます。`.`、CDK 出力ディレクトリ、`node_modules` ディレクトリで始まるファイルおよびディレクトリで構成されます。

`watch` を設定する最小設定は `"watch": {}` です。

CDK コードまたはアプリケーションコードのいずれかがデプロイ前にビルドステップを必要とする場合、`cdk watch` は `cdk.json` ファイル内の `"build"` キーと連携します。

**重要**  
このコマンドは、CDK アプリの開発段階での迅速なデプロイを目的としており、本番デプロイには推奨されません。

同じ `cdk deploy --hotswap` の制限が `cdk watch` に適用されます。詳細については、「` cdk deploy --hotswap `」を参照してください。

## 使用方法
<a name="ref-cli-cmd-watch-usage"></a>

```
$ cdk watch <arguments> <options>
```

## 引数
<a name="ref-cli-cmd-watch-args"></a><a name="ref-cli-cmd-watch-args-stack-name"></a>

 **CDK スタック ID**   
監視するアプリの CDK スタックのコンストラクト ID。  
 *タイプ*: 文字列  
 *必須:* いいえ

## オプション
<a name="ref-cli-cmd-watch-options"></a>

すべての CDK CLI コマンドで動作するグローバルオプションのリストについては、「[グローバルオプション](ref-cli-cmd.md#ref-cli-cmd-options)」を参照してください。<a name="ref-cli-cmd-watch-options-build-exclude"></a>

 `--build-exclude, -E <ARRAY>`   
指定された ID でアセットを再構築しないでください。  
このオプションは 1 つのコマンドで複数回指定できます。  
 *デフォルト値*: `[]` <a name="ref-cli-cmd-watch-options-change-set-name"></a>

 `--change-set-name <STRING>`   
作成する CloudFormation の変更セットの名前。<a name="ref-cli-cmd-watch-options-concurrency"></a>

 `--concurrency <NUMBER>`   
スタック間の依存関係を考慮しながら、複数のスタックを並列にデプロイおよびホットスワップします。このオプションを使用してデプロイを高速化します。それでも、CloudFormation やその他の AWS アカウントレート制限を考慮する必要があります。  
実行する同時デプロイ (依存関係がある場合) の最大数を指定する数値を指定します。  
 *デフォルト値*: `1` <a name="ref-cli-cmd-watch-options-exclusively"></a>

 `--exclusively, -e <BOOLEAN>`   
要求されたスタックのみをデプロイし、依存関係を含めないでください。<a name="ref-cli-cmd-watch-options-force"></a>

 `--force, -f <BOOLEAN>`   
テンプレートが同じである場合でも、必ずスタックをデプロイしてください。  
 *デフォルト値*: `false` <a name="ref-cli-cmd-watch-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk watch` コマンドのコマンドリファレンス情報を表示します。<a name="ref-cli-cmd-watch-options-hotswap"></a>

 `--hotswap <BOOLEAN>`   
デフォルトでは、`cdk watch` は可能な場合はホットスワップデプロイを使用してリソースを更新します。CDK CLI はホットスワップデプロイの実行を試み、失敗しても完全な CloudFormation デプロイにはフォールバックしません。ホットスワップで更新できない変更が検出された場合、無視されます。  
 *デフォルト値*: `true` <a name="ref-cli-cmd-watch-options-hotswap-fallback"></a>

 `--hotswap-fallback <BOOLEAN>`   
デフォルトでは、`cdk watch` はホットスワップデプロイの実行を試み、CloudFormation デプロイを必要とする変更を無視します。ホットスワップデプロイが失敗した場合、フォールバックして完全な CloudFormation デプロイを実行するため、`--hotswap-fallback` を指定します。<a name="ref-cli-cmd-watch-options-logs"></a>

 `--logs <BOOLEAN>`   
デフォルトでは、`cdk watch` はアプリケーション内のすべての CloudWatch ロググループを監視し、ログイベントをローカルで `stdout` にストリーミングします。  
 *デフォルト値*: `true` <a name="ref-cli-cmd-watch-options-progress"></a>

 `--progress <STRING>`   
CDK CLI がデプロイの進行状況を表示する方法を設定します。  
+  `bar` – リソースのイベントが現在デプロイされている状態で、スタックデプロイイベントを進行状況バーとして表示します。
+  `events` – すべての CloudFormation イベントを含む完全な履歴を提供します。
このオプションは、プロジェクトの `cdk.json` ファイルまたはローカル開発マシンの `~/.cdk.json` で設定することもできます。  

```
{
   "progress": "events"
}
```
 *有効な値*:`bar`、`events`\$1   
 *デフォルト値*: `bar` <a name="ref-cli-cmd-watch-options-rollback"></a>

 `--rollback <BOOLEAN>`   
デプロイ中にリソースの作成または更新に失敗した場合、CDK CLI が戻る前にデプロイは最新の安定状態にロールバックします。その時点までに行われたすべての変更は元に戻されます。作成されたリソースは削除され、更新プログラムはロールバックされます。  
`--no-rollback` または `-R` を使用してこの動作を非アクティブ化します。リソースの作成または更新に失敗した場合、CDK CLI はその時点までに行われた変更をそのままにして戻ります。すばやく反復する開発環境に役立ちます。  
`false` のとき、リソースの置き換えの原因となるデプロイは必ずに失敗します。この値は、新しいリソースを更新または作成するデプロイにのみ使用できます。
 *デフォルト値*: `true` <a name="ref-cli-cmd-watch-options-toolkit-stack-name"></a>

 `--toolkit-stack-name <STRING>`   
既存の CDK Toolkit スタックの名前。  
デフォルトでは、 は指定された AWS 環境に という名前のスタック`CDKToolkit`を`cdk bootstrap`デプロイします。このオプションを使用し、ブートストラップスタックに別の名前を指定します。  
CDK CLI はこの値を使用してブートストラップスタックのバージョンを検証します。

## 例
<a name="ref-cli-cmd-watch-examples"></a>

### 論理 ID DevelopmentStack を持つ CDK スタックの変更の監視
<a name="ref-cli-cmd-watch-examples-1"></a>

```
$ cdk watch DevelopmentStack
Detected change to 'lambda-code/index.js' (type: change). Triggering 'cdk deploy'
DevelopmentStack: deploying...

 ✅  DevelopmentStack
```

### 変更の監視対象と除外対象のため、cdk.json ファイルの設定
<a name="ref-cli-cmd-watch-examples-2"></a>

```
{
   "app": "mvn -e -q compile exec:java",
   "watch": {
    "include": "src/main/**",
    "exclude": "target/*"
   }
}
```

### cdk.json ファイルを設定し、デプロイ前に Java を使用して CDK プロジェクトの構築
<a name="ref-cli-cmd-watch-examples-3"></a>

```
{
  "app": "mvn -e -q exec:java",
  "build": "mvn package",
  "watch": {
    "include": "src/main/**",
    "exclude": "target/*"
  }
}
```