

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

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

# AWS CDK CLI コマンドリファレンス
<a name="ref-cli-cmd"></a>

このセクションには、AWS Cloud Development Kit (AWS CDK) コマンドラインインターフェイス (CLI) のコマンドのリファレンス情報が含まれます。CDK CLI は CDK Toolkit とも呼ばれます。

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

```
$ cdk <command> <arguments> <options>
```

## コマンド
<a name="ref-cli-cmd-commands"></a><a name="ref-cli-cmd-commands-acknowledge"></a>

 ` acknowledge ack `   
発行番号で通知を確認し、再度表示しないようにします。<a name="ref-cli-cmd-commands-bootstrap"></a>

 ` bootstrap `   
`CDKToolkit` という名前の CDK ブートストラップスタックを AWS 環境にデプロイし、CDK デプロイ用の AWS 環境を準備します。<a name="ref-cli-cmd-commands-context"></a>

 ` context `   
CDK アプリケーションのキャッシュされたコンテキスト値を管理します。<a name="ref-cli-cmd-commands-deploy"></a>

 ` deploy `   
AWS 環境に 1 つ以上の CDK スタックをデプロイします。<a name="ref-cli-cmd-commands-destroy"></a>

 ` destroy `   
AWS 環境から 1 つ以上の CDK スタックを削除します。<a name="ref-cli-cmd-commands-diff"></a>

 ` diff `   
差分を実行し、CDK スタック間のインフラストラクチャの変更を確認します。<a name="ref-cli-cmd-commands-docs"></a>

 ` docs doc `   
ブラウザで CDK ドキュメントを開きます。<a name="ref-cli-cmd-commands-doctor"></a>

 ` doctor `   
ローカル CDK プロジェクトおよび開発環境に関する便利な情報の検査および表示します。<a name="ref-cli-cmd-commands-drift"></a>

 ` drift `   
CDK を使用して定義、管理、およびデプロイするリソースの設定ドリフトを検出します。<a name="ref-cli-cmd-commands-flags"></a>

 ` flags `   
CDK CLI の機能フラグ設定を表示および変更します。<a name="ref-cli-cmd-commands-import"></a>

 ` import `   
AWS CloudFormation リソースインポートを使用し、既存の AWS リソースを CDK スタックにインポートします。<a name="ref-cli-cmd-commands-init"></a>

 ` init `   
テンプレートから新しい CDK プロジェクトを作成します。<a name="ref-cli-cmd-commands-list"></a>

 ` list, ls `   
CDK アプリからのすべての CDK スタックおよびその依存関係を一覧表示します。<a name="ref-cli-cmd-commands-metadata"></a>

 ` metadata `   
CDK スタックに関連付けられたメタデータを表示します。<a name="ref-cli-cmd-commands-migrate"></a>

 ` migrate `   
AWS リソース、AWS CloudFormation スタック、AWS CloudFormation テンプレートを新しい CDK プロジェクトに移行します。<a name="ref-cli-cmd-commands-notices"></a>

 ` notices `   
CDK アプリケーションの通知を表示します。<a name="ref-cli-cmd-commands-refactor"></a>

 ` refactor `   
CDK アプリケーションでコードをリファクタリングするときに、デプロイされたリソースを保持します。<a name="ref-cli-cmd-commands-synthesize"></a>

 ` synthesize, synth `   
CDK アプリを合成し、各スタックの AWS CloudFormation テンプレートを含むクラウドアセンブリを作成します。<a name="ref-cli-cmd-commands-watch"></a>

 ` watch `   
ローカル CDK プロジェクトの変更を継続的に監視し、デプロイおよびホットスワップを実行します。

## グローバルオプション
<a name="ref-cli-cmd-options"></a>

次のオプションは、すべての CDK CLI コマンドと互換性があります。<a name="ref-cli-cmd-options-app"></a>

 `--app, -a <STRING>`   
アプリまたはクラウドアセンブリのディレクトリを実行するコマンドを指定します。  
 必須: はい<a name="ref-cli-cmd-options-asset-metadata"></a>

 `--asset-metadata <BOOLEAN>`   
アセットを使用するリソースに `aws:asset:*` AWS CloudFormation メタデータを含めます。  
 *必須:* いいえ  
 *デフォルト値*: `true` <a name="ref-cli-cmd-options-build"></a>

 `--build <STRING>`   
事前合成ビルドを実行するコマンド。  
 *必須:* いいえ<a name="ref-cli-cmd-options-ca-bundle-path"></a>

 `--ca-bundle-path <STRING>`   
HTTPS 要求の検証に使用する CA 証明書へのパス。  
このオプションが指定されない場合、CDK CLI は `AWS_CA_BUNDLE` 環境変数から読み取ります。  
 必須: はい<a name="ref-cli-cmd-options-ci"></a>

 `--ci <BOOLEAN>`   
CDK CLI コマンドが継続的インテグレーション (CI) 環境で実行されていることを示します。  
このオプションは、CI パイプラインで一般的な自動オペレーションにより適するように CDK CLI の動作を変更します。  
このオプションを指定するとき、ログは `stderr` ではなく、`stdout` に送信されます。  
 必須: いいえ  
 *デフォルト値*: `false` <a name="ref-cli-cmd-options-context"></a>

 `--context, -c <ARRAY>`   
コンテキスト文字列パラメータをキーと値のペアとして追加します。<a name="ref-cli-cmd-options-debug"></a>

 `--debug <BOOLEAN>`   
詳細なデバッグ情報を有効にします。このオプションでは、CDK CLI がバックグラウンドで行っている動作に関する詳細を含む冗長出力が生成されます。  
 必須: いいえ  
 *デフォルト値*: `false` <a name="ref-cli-cmd-options-ec2creds"></a>

 `--ec2creds, -i <BOOLEAN>`   
CDK CLI が Amazon EC2 インスタンス認証情報の取得を試行するように強制します。  
デフォルトでは、CDK CLI は Amazon EC2 インスタンスのステータスを推測します。  
 必須: いいえ  
 *デフォルト値*: `false` <a name="ref-cli-cmd-options-help"></a>

 `--help, -h <BOOLEAN>`   
CDK CLI のコマンドのリファレンス情報を表示します。  
 *必須:* いいえ  
 *デフォルト値*: `false` <a name="ref-cli-cmd-options-ignore-errors"></a>

 `--ignore-errors <BOOLEAN>`   
合成エラーは有効でない出力を生成する可能性があるため、無視してください。  
 *必須:* いいえ  
 *デフォルト値*: `false` <a name="ref-cli-cmd-options-json"></a>

 `--json, -j <BOOLEAN>`   
標準出力 (`stdout`) に出力される AWS CloudFormation テンプレートには、YAML ではなくて JSON を使用します。  
 *必須:* いいえ  
 *デフォルト値*: `false` <a name="ref-cli-cmd-options-lookups"></a>

 `--lookups <BOOLEAN>`   
コンテキストルックアップを実行します。  
この値が `false` であり、コンテキスト検索を実行する必要がある場合、合成は失敗します。  
 *必須:* いいえ  
 *デフォルト値*: `true` <a name="ref-cli-cmd-options-no-color"></a>

 `--no-color <BOOLEAN>`   
コンソール出力から色やその他のスタイルを削除します。  
 *必須:* いいえ  
 *デフォルト値*: `false` <a name="ref-cli-cmd-options-notices"></a>

 `--notices <BOOLEAN>`   
関連する通知を表示します。  
 *必須:* いいえ  
 *デフォルト値*: `false` <a name="ref-cli-cmd-options-output"></a>

 `--output, -o <STRING>`   
合成されたクラウドアセンブリを出力するディレクトリを指定します。  
 *必須:* はい  
 *デフォルト値*: `cdk.out` <a name="ref-cli-cmd-options-path-metadata"></a>

 `--path-metadata <BOOLEAN>`   
各リソースに `aws::cdk::path` AWS CloudFormation メタデータを含めます。  
 *必須:* いいえ  
 *デフォルト値*: `true` <a name="ref-cli-cmd-options-plugin"></a>

 `--plugin, -p <ARRAY>`   
CDK 機能を拡張するノードパッケージの名前またはパス。このオプションは、1 つのコマンドで複数回指定できます。  
このオプションは、プロジェクトの `cdk.json` ファイルまたはローカル開発マシンの `~/.cdk.json`で設定できます。  

```
{
   // ...
   "plugin": [
      "module_1",
      "module_2"
   ],
   // ...
}
```
 *必須:* いいえ<a name="ref-cli-cmd-options-profile"></a>

 `--profile <STRING>`   
CDK CLI で使用する AWS 環境情報を含む AWS プロファイルの名前を指定します。  
 *必須:* はい<a name="ref-cli-cmd-options-proxy"></a>

 `--proxy <STRING>`   
指定されたプロキシを使用します。  
このオプションが指定されない場合、CDK CLI は `HTTPS_PROXY` 環境変数から読み取ります。  
 *必須:* はい  
 *デフォルト値*: `HTTPS_PROXY` 環境変数から読み取ります。<a name="ref-cli-cmd-options-role-arn"></a>

 `--role-arn, -r <STRING>`   
AWS CloudFormation を操作するとき、CDK CLI が引き受ける IAM ロールの ARN。  
 *必須:* いいえ<a name="ref-cli-cmd-options-staging"></a>

 `--staging <BOOLEAN>`   
アセットを出力ディレクトリにコピーします。  
アセットが出力ディレクトリにコピーされないように、`false` を指定します。AWS SAM CLI がローカルデバッグを実行するとき、元のソースファイルを参照できるようになります。  
 *必須:* いいえ  
 *デフォルト値*: `true` <a name="ref-cli-cmd-options-strict"></a>

 `--strict <BOOLEAN>`   
警告を含むスタックを構築しないでください。  
 *必須:* いいえ  
 *デフォルト値*: `false` <a name="ref-cli-cmd-options-trace"></a>

 `--trace <BOOLEAN>`   
スタック警告のトレースを出力します。  
 *必須:* いいえ  
 *デフォルト値*: `false` <a name="ref-cli-cmd-options-verbose"></a>

 `--verbose, -v <COUNT>`   
デバッグログを表示します。このオプションは複数回指定し、冗長性を増加することができます。  
 *必須:* いいえ<a name="ref-cli-cmd-options-version"></a>

 `--version <BOOLEAN>`   
CDK CLI バージョン番号を表示します。  
 *必須:* いいえ  
 *デフォルト値*: `false` <a name="ref-cli-cmd-options-version-reporting"></a>

 `--version-reporting <BOOLEAN>`   
合成された AWS CloudFormation テンプレートに ` AWS::CDK::Metadata` リソースを含めます。  
 *必須:* いいえ  
 *デフォルト値*: `true` 

## オプションの提供と設定
<a name="ref-cli-cmd-configure"></a>

コマンドライン引数を使用してオプションを渡すことができます。ほとんどのオプションは、`cdk.json` 設定ファイルで設定できます。複数の設定ソースを使用するとき、CDK CLI は次の優先順位に従います。

1.  **コマンドライン値** – コマンドラインで提供されるオプションは、`cdk.json` ファイルで設定されたオプションを上書きします。

1.  **プロジェクト設定ファイル** – CDK プロジェクトのディレクトリ内の `cdk.json` ファイル。

1.  **ユーザー設定ファイル** – ローカルマシンの `~/.cdk.json` にある `cdk.json` ファイル。

## コマンドラインでオプションを渡す
<a name="ref-cli-cmd-pass"></a><a name="ref-cli-cmd-pass-bool"></a>

 **ブール値を渡す**   
ブール値を受け入れるオプションは、次の方法で指定できます。  
+ `true` および `false` 値の使用 — コマンドでブール値を指定します。以下に例を示します。

  ```
  $ cdk deploy --watch=true
  $ cdk deploy --watch=false
  ```
+ オプションの対照物の指定 — `no` を追加してオプション名を変更し、`false` 値を指定します。以下に例を示します。

  ```
  $ cdk deploy --watch
  $ cdk deploy --no-watch
  ```
+ デフォルトが `true` または `false` のオプションの場合、デフォルトから変更しない限り、オプションを指定する必要はありません。

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

発行番号で通知を確認し、再度表示しないようにします。

対処済みまたはユーザーに該当しない通知を非表示にするために便利です。

確認は CDK プロジェクトレベルで保存されます。1 つの CDK プロジェクトで通知を承認した場合、他のプロジェクトで確認されるまでそのプロジェクトでも表示されます。

## 使用
<a name="ref-cli-cmd-ack-usage"></a>

```
$ cdk acknowledge <arguments> <options>
```

## 引数
<a name="ref-cli-cmd-ack-args"></a><a name="ref-cli-cmd-ack-args-notice-id"></a>

 **通知 ID**   
通知の ID。  
 *タイプ*: 文字列  
 *必須:* いいえ

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

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

 `--help, -h <BOOLEAN>`   
`cdk acknowledge` コマンドのコマンドリファレンス情報を表示します。

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

### 別の CDK CLI コマンドの実行時に表示される通知の確認と非表示
<a name="ref-cli-cmd-ack-examples-1"></a>

```
$ cdk deploy
... # Normal output of the command

NOTICES

16603   Toggling off auto_delete_objects for Bucket empties the bucket

        Overview: If a stack is deployed with an S3 bucket with
                  auto_delete_objects=True, and then re-deployed with
                  auto_delete_objects=False, all the objects in the bucket
                  will be deleted.

        Affected versions: <1.126.0.

        More information at: https://github.com/aws/aws-cdk/issues/16603


17061   Error when building EKS cluster with monocdk import

        Overview: When using monocdk/aws-eks to build a stack containing
                  an EKS cluster, error is thrown about missing
                  lambda-layer-node-proxy-agent/layer/package.json.

        Affected versions: >=1.126.0 <=1.130.0.

        More information at: https://github.com/aws/aws-cdk/issues/17061

$ cdk acknowledge 16603
```

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

`CDKToolkit` という名前の CDK ブートストラップスタックを AWS 環境にデプロイし、CDK デプロイ用の AWS 環境を準備します。

ブートストラップスタックは、AWS 環境内の Amazon S3 バケットおよび Amazon ECR リポジトリをプロビジョニングする CloudFormation スタックです。AWS CDK CLI はこれらのリソースを使用し、デプロイ中に合成されたテンプレートおよび関連アセットを保存します。

## 使用
<a name="ref-cli-cmd-bootstrap-usage"></a>

```
$ cdk bootstrap <arguments> <options>
```

## 引数
<a name="ref-cli-cmd-bootstrap-args"></a><a name="ref-cli-cmd-bootstrap-args-env"></a>

 **AWS 環境**   
ブートストラップスタックを `aws://<account-id>/<region>` の形式で対象の AWS 環境にデプロイします。  
例:`aws://123456789012/us-east-1`   
ブートストラップスタックを複数の環境にデプロイするため、この引数は 1 つのコマンドで複数回指定できます。  
デフォルトでは、CDK CLI は CDK アプリで参照されるすべての環境をブートストラップするか、デフォルトのソースから環境を決定します。`--profile` オプション、環境変数、デフォルトの AWS CLI ソースを使用して指定される環境の場合があります。

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

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

 `--bootstrap-bucket-name, --toolkit-bucket-name, -b <STRING>`   
CDK CLI で使用される Amazon S3 バケットの名前。このバケットは作成され、現在存在することはできません。  
このオプションを指定し、Amazon S3 バケットのデフォルト名を上書きします。  
このオプションを使用すると、合成のカスタマイズが必要な場合があります。詳細については、「[CDK スタック合成をカスタマイズする](configure-synth.md#bootstrapping-custom-synth)」を参照してください。  
 *デフォルト値*: 未定義<a name="ref-cli-cmd-bootstrap-options-bootstrap-customer-key"></a>

 `--bootstrap-customer-key <BOOLEAN>`   
ブートストラップバケットのカスタマーマスターキー (CMK) を作成します (課金されますが、アクセス許可をカスタマイズできます。最新のブートストラップのみ適用されます)。  
このオプションは `--bootstrap-kms-key-id` と互換性がありません。  
 *デフォルト値*: 未定義<a name="ref-cli-cmd-bootstrap-options-bootstrap-kms-key-id"></a>

 `--bootstrap-kms-key-id <STRING>`   
`SSE-KMS` の暗号化に使用する AWS KMS マスターキー ID。  
このオプションを指定し、Amazon S3 バケットの暗号化に使用されるデフォルト AWS KMS キーを上書きします。  
このオプションは `--bootstrap-customer-key` と互換性がありません。  
 *デフォルト値*: 未定義<a name="ref-cli-cmd-bootstrap-options-cloudformation-execution-policies"></a>

 `--cloudformation-execution-policies <ARRAY>`   
スタックのデプロイ中に AWS CloudFormation が引き受けるデプロイロールにアタッチする必要があるマネージド IAM ポリシー ARN。  
デフォルトでは、スタックは `AdministratorAccess` ポリシーを使用して、完全な管理者アクセス許可でデプロイされます。  
このオプションは、1 つのコマンドで複数回指定できます。個々の ARNs をカンマで区切った状態で、複数の ARN を 1 つの文字列として指定することもできます。以下に例を示します。  

```
$ cdk bootstrap --cloudformation-execution-policies "arn:aws:iam::aws:policy/AWSLambda_FullAccess,arn:aws:iam::aws:policy/AWSCodeDeployFullAccess"
```
デプロイの失敗を回避するには、指定したポリシーが、ブートストラップされる環境に実行するデプロイに対して十分であることを確認してください。  
このオプションは、最新のブートストラップにのみ適用されます。  
最新のブートストラップテンプレートは、`--trust` リストで任意の AWS アカウントに `--cloudformation-execution-policies` が暗示するアクセス許可を効果的に付与します。デフォルトでは、ブートストラップされたアカウントに任意のリソースへの読み取りおよび書き込みのアクセス許可が拡張されます。使い慣れたポリシーおよび信頼されたアカウントを使用して[ブートストラップスタックを設定](bootstrapping-customizing.md)することを確認してください。
 *デフォルト値*: `[]` <a name="ref-cli-cmd-bootstrap-options-custom-permissions-boundary"></a>

 `--custom-permissions-boundary, -cpb <STRING>`   
使用するアクセス許可の境界の名前を指定します。  
このオプションは `--example-permissions-boundary` と互換性がありません。  
 *デフォルト値*: 未定義<a name="ref-cli-cmd-bootstrap-options-example-permissions-boundary"></a>

 `--example-permissions-boundary, -epb <BOOLEAN>`   
AWS CDK が提供するアクセス許可の境界の例を使用します。  
このオプションは `--custom-permissions-boundary` と互換性がありません。  
CDK が提供するアクセス許可の境界ポリシーを例として扱う必要があります。機能をテストする場合、コンテンツを編集してポリシーの例を参照してください。デプロイがまだ存在しない場合、実際のデプロイのために新しいポリシーに変換します。懸念事項はドリフトを避けることです。ほとんどの場合、アクセス許可の境界は維持され、命名規則を含む専用の規則があります。  
アクセス許可の境界の使用など、アクセス許可の設定の詳細については、「[セキュリティと安全開発ガイド](https://github.com/aws/aws-cdk/wiki/Security-And-Safety-Dev-Guide)」を参照してください。  
 *デフォルト値*: 未定義<a name="ref-cli-cmd-bootstrap-options-execute"></a>

 `--execute <BOOLEAN>`   
変更セットを実行するかどうかを設定します。  
 *デフォルト値*: `true` <a name="ref-cli-cmd-bootstrap-options-force"></a>

 `--force, -f <BOOLEAN>`   
ブートストラップテンプレートのバージョンがダウングレードされる場合でも、必ずブートストラップしてください。  
 *デフォルト値*: `false` <a name="ref-cli-cmd-bootstrap-options-help"></a>

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

 `--previous-parameters <BOOLEAN>`   
既存のパラメータに以前の値を使用します。  
一連のパラメータを使用してブートストラップテンプレートをデプロイしたら、このオプションを `false` に設定し、今後のデプロイにパラメータを変更する必要があります。`false` のとき、以前に提供されたすべてのパラメータを再供給する必要があります。  
 *デフォルト値*: `true` <a name="ref-cli-cmd-bootstrap-options-public-access-block-configuration"></a>

 `--public-access-block-configuration <BOOLEAN>`   
CDK CLI によって作成および使用される Amazon S3 バケットにパブリックアクセス設定をブロックします。  
 *デフォルト値*: `true` <a name="ref-cli-cmd-bootstrap-options-qualifier"></a>

 `--qualifier <STRING>`   
ブートストラップスタックごとに一意の 9 桁の文字列値。この値は、ブートストラップスタックのリソースの物理 ID に追加されます。  
修飾子を指定することにより、同じ環境で複数のブートストラップスタックをプロビジョニングするときにリソース名の衝突を回避できます。  
修飾子を変更するとき、CDK アプリは変更された値をスタックシンセサイザーに渡す必要があります。詳細については、「[CDK スタック合成をカスタマイズする](configure-synth.md#bootstrapping-custom-synth)」を参照してください。  
 *デフォルト値*: `hnb659fds`。この値には重要性がありません。<a name="ref-cli-cmd-bootstrap-options-show-template"></a>

 `--show-template <BOOLEAN>`   
ブートストラップの代わりに、現在のブートストラップテンプレートを標準出力 (`stdout`) に出力します。次に、必要に応じてテンプレートをコピーおよびカスタマイズできます。  
 *デフォルト値*: `false` <a name="ref-cli-cmd-bootstrap-options-tags"></a>

 `--tags, -t <ARRAY>`   
`KEY=VALUE` の形式でブートストラップスタックに追加するタグ。  
 *デフォルト値*: `[]` <a name="ref-cli-cmd-bootstrap-options-template"></a>

 `--template <STRING>`   
ビルトインのテンプレートではなく、指定されたファイルのテンプレートを使用します。<a name="ref-cli-cmd-bootstrap-options-termination-protection"></a>

 `--termination-protection <BOOLEAN>`   
ブートストラップスタックの AWS CloudFormation 終了保護を切り替えます。  
`true` のとき、終了保護が有効になります。ブートストラップスタックが誤って削除されることを防止ます。  
終了保護の詳細については、「*AWS CloudFormation ユーザーガイド*」の「[スタックを削除から保護](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html)」を参照してください。  
 *デフォルト値*: 未定義<a name="ref-cli-cmd-bootstrap-options-toolkit-stack-name"></a>

 `--toolkit-stack-name <STRING>`   
作成するブートストラップスタックの名前。  
デフォルトでは、`cdk bootstrap` は指定された AWS 環境に `CDKToolkit` という名前のスタックをデプロイします。このオプションを使用し、ブートストラップスタックに別の名前を指定します。  
CDK CLI はこの値を使用してブートストラップスタックのバージョンを検証します。  
 *デフォルト値*: `CDKToolkit`   
 *必須:* はい<a name="ref-cli-cmd-bootstrap-options-trust"></a>

 `--trust <ARRAY>`   
この環境にデプロイを実行するために信頼される AWS アカウント ID。  
ブートストラップを実行するアカウントは常に信頼されます。  
このオプションでは、`--cloudformation-execution-policies` も指定する必要があります。  
このオプションは、1 つのコマンドで複数回指定できます。  
このオプションは、最新のブートストラップにのみ適用されます。  
信頼されたアカウントを既存のブートストラップスタックに追加するには、以前に提供したアカウントを含め、信頼するすべてのアカウントを指定する必要があります。信頼するアカウントとして新しいアカウントのみを指定した場合、以前に信頼されたアカウントは削除されます。  
以下は、2 つのアカウントを信頼する場合の例です。  

```
$ cdk bootstrap aws://123456789012/us-west-2 --trust 234567890123 --trust 987654321098 --cloudformation-execution-policies arn:aws:iam::aws:policy/AdministratorAccess
 ⏳  Bootstrapping environment aws://123456789012/us-west-2...
Trusted accounts for deployment: 234567890123, 987654321098
Trusted accounts for lookup: (none)
Execution policies: arn:aws:iam::aws:policy/AdministratorAccess
CDKToolkit: creating CloudFormation changeset...
 ✅  Environment aws://123456789012/us-west-2 bootstrapped.
```
最新のブートストラップテンプレートは、`--trust` リストで任意の AWS アカウントに `--cloudformation-execution-policies` が暗示するアクセス許可を効果的に付与します。デフォルトでは、ブートストラップされたアカウントに任意のリソースへの読み取りおよび書き込みのアクセス許可が拡張されます。使い慣れたポリシーおよび信頼されたアカウントを使用して[ブートストラップスタックを設定](bootstrapping-customizing.md)することを確認してください。
 *デフォルト値*: `[]` <a name="ref-cli-cmd-bootstrap-options-trust-for-lookup"></a>

 `--trust-for-lookup <ARRAY>`   
この環境で値を検索するために信頼される AWS アカウント ID。  
このオプションを使用し、スタックを直接デプロイするアクセス許可を実際に付与することなく、環境にデプロイされるスタックを合成するアクセス許可を付与します。  
このオプションは、1 つのコマンドで複数回指定できます。  
このオプションは、最新のブートストラップにのみ適用されます。  
 *デフォルト値*: `[]` 

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

### 製品プロファイルで指定された AWS 環境のブートストラップ
<a name="ref-cli-cmd-bootstrap-examples-1"></a>

```
$ cdk bootstrap --profile prod
```

### ブートストラップスタックを環境の foo と bar にデプロイ
<a name="ref-cli-cmd-bootstrap-examples-2"></a>

```
$ cdk bootstrap --app='node bin/main.js' foo bar
```

### ブートストラップテンプレートをエクスポートしてカスタマイズ
<a name="ref-cli-cmd-bootstrap-examples-3"></a>

ブートストラップテンプレートで満たされていない特定の要件がある場合、ニーズに合わせてカスタマイズできます。

AWS CloudFormation を使用してブートストラップテンプレートをエクスポート、変更、デプロイできます。次の内容は、既存のテンプレートをエクスポートする例です。

```
$ cdk bootstrap --show-template > bootstrap-template.yaml
```

カスタムテンプレートを使用するように CDK CLI に指示することもできます。以下に例を示します。

```
$ cdk bootstrap --template my-bootstrap-template.yaml
```

### アクセス許可の境界を持つブートストラップ。次に、そのアクセス許可の境界を削除します
<a name="ref-cli-cmd-bootstrap-examples-4"></a>

カスタムアクセス許可の境界でブートストラップするには、次の内容を実行します。

```
$ cdk bootstrap --custom-permissions-boundary my-permissions-boundary
```

アクセス許可の境界を削除するには、次の内容を実行します。

```
$ cdk bootstrap --no-previous-parameters
```

### 修飾子を使用し、開発環境用に作成されたリソースを区別します
<a name="ref-cli-cmd-bootstrap-examples-5"></a>

```
$ cdk bootstrap --qualifier dev2024
```

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

AWS CDK アプリケーションのキャッシュされたコンテキスト値を管理します。

 *コンテキスト*は、スタックの合成およびデプロイ方法に影響を与える可能性のある設定と環境情報を表します。`cdk context` を使用して以下を行います。
+ 設定されたコンテキスト値を表示します。
+ コンテキスト値を設定および管理します。
+ コンテキスト値を削除します。

## 使用
<a name="ref-cli-cmd-context-usage"></a>

```
$ cdk context <options>
```

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

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

 `--clear <BOOLEAN>`   
すべてのコンテキストをクリアします。<a name="ref-cli-cmd-context-options-force"></a>

 `--force, -f <BOOLEAN>`   
欠落しているキーエラーを無視します。  
 *デフォルト値*: `false` <a name="ref-cli-cmd-context-options-help"></a>

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

 `--reset, -e <STRING>`   
リセットするコンテキストキーまたはそのインデックス。

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

AWS 環境に 1 つ以上の AWS CDK スタックをデプロイします。

デプロイ中、CDK CLI は AWS CloudFormation コンソールから観察できるものと同様の進行状況インジケータを出力します。

AWS 環境がブートストラップされていない場合、アセットがなくて合成されたテンプレートが 51,200 バイト未満のスタックのみが正常にデプロイされます。

## 使用
<a name="ref-cli-cmd-deploy-usage"></a>

```
$ cdk deploy <arguments> <options>
```

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

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

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

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

 `--all <BOOLEAN>`   
CDK アプリにすべてのスタックをデプロイします。  
 *デフォルト値*: `false` <a name="ref-cli-cmd-deploy-options-asset-parallelism"></a>

 `--asset-parallelism <BOOLEAN>`   
アセットを並行して構築および公開するかどうかを指定します。<a name="ref-cli-cmd-deploy-options-asset-prebuild"></a>

 `--asset-prebuild <BOOLEAN>`   
最初のスタックをデプロイする前に、すべてのアセットを構築するかどうかを指定します。このオプションは、Docker のビルドが失敗する場合に役立ちます。  
 *デフォルト値*: `true` <a name="ref-cli-cmd-deploy-options-build-exclude"></a>

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

 `--change-set-name <STRING>`   
作成する AWS CloudFormation の変更セットの名前。  
このオプションは `--method='direct'` と互換性がありません。<a name="ref-cli-cmd-deploy-options-concurrency"></a>

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

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

 `--force, -f <BOOLEAN>`   
デプロイして既存のスタックを更新すると、CDK CLI はデプロイされたスタックのテンプレートおよびタグを、デプロイされるスタックと比較します。変更が検出されない場合、CDK CLI はデプロイをスキップします。  
変更が検出されない場合でも、この動作を上書きしてスタックを常にデプロイするには、このオプションを使用します。  
 *デフォルト値*: `false` <a name="ref-cli-cmd-deploy-options-help"></a>

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

 `--hotswap <BOOLEAN>`   
開発を高速化するためのホットスワップデプロイ。可能な場合、このオプションはより高速なホットスワップデプロイの実行を試みます。例えば、CDK アプリで Lambda 関数のコードを変更した場合、CDK CLI は CloudFormation デプロイを実行するのではなく、サービス API を介してリソースを直接更新します。  
CDK CLI がホットスワップをサポートしていない変更を検出した場合、それらの変更は無視されてメッセージが表示されます。完全な CloudFormation デプロイをフォールバックとして実行する場合、代わりに `--hotswap-fallback` を使用します。  
CDK CLI は、現在の AWS 認証情報を使用して API コールを実行します。`@aws-cdk/core:newStyleStackSynthesis` 機能フラグが `true` に設定されている場合でも、ブートストラップスタックからロールを引き受けることはありません。CloudFormation を使用しない場合、これらのロールには AWS リソースを直接更新するために必要なアクセス許可がありません。そのため、認証情報がホットスワップデプロイを実行しているスタックの AWS アカウントと同じであり、リソースを更新するために必要な IAM アクセス許可があることを確認してください。  
現在、ホットスワップは次の変更でサポートされています。  
+ Lambda 関数のコードアセット (Docker イメージおよびインラインコードを含む)、タグの変更、設定の変更 (説明変数および環境変数のみをサポート)。
+ Lambda バージョンおよびエイリアスの変更。
+ AWS Step Functions ステートマシンの定義の変更。
+ Amazon ECS サービスのコンテナアセットの変更。
+ Amazon S3 バケットデプロイのウェブサイトアセットの変更。
+ AWS CodeBuild プロジェクトのソースおよび環境の変更。
+ AWS AppSync リゾルバーおよび関数の VTL マッピングテンプレートの変更。
+ AWS AppSync GraphQL API のスキーマの変更。
特定の CloudFormation 組み込み関数の使用は、ホットスワップデプロイの一部としてサポートされています。具体的には次のとおりです。  
+  `Ref` 
+  `Fn::GetAtt` – 部分的にのみサポートされています。サポートされているリソースおよび属性については、[この実装](https://github.com/aws/aws-cdk/blob/main/packages/aws-cdk/lib/api/evaluate-cloudformation-template.ts#L477-L492)を参照してください。
+  `Fn::ImportValue` 
+  `Fn::Join` 
+  `Fn::Select` 
+  `Fn::Split` 
+  `Fn::Sub` 
このオプションは、ネストされたスタックとも互換性があります。  
+ このオプションは、デプロイを高速化するために CloudFormation スタックに意図的にドリフトを導入します。このため、開発目的にのみ使用してください。本番環境のデプロイにはこのオプションを使用しないでください。
+ このオプションは実験的と考えられており、今後は大幅な変更行われる場合があります。
+ 特定のパラメータのデフォルトは、ホットスワップパラメータとは異なる場合があります。例えば、Amazon ECS サービスの最小正常率は、現在 `0` に設定されます。これが発生した場合、必要に応じてソースを確認してください。
 *デフォルト値*: `false` <a name="ref-cli-cmd-deploy-options-hotswap-fallback"></a>

 `--hotswap-fallback <BOOLEAN>`   
このオプションは `--hotswap` に似ています。違いは、必要な変更が検出された場合、`--hotswap-fallback` は CloudFormation の完全なデプロイを実行するためにフォールバックすることです。  
このオプションの詳細については、「`--hotswap`」を参照してください。  
 *デフォルト値*: `false` <a name="ref-cli-cmd-deploy-options-ignore-no-stacks"></a>

 `--ignore-no-stacks <BOOLEAN>`   
CDK アプリにスタックが含まれていない場合でも、デプロイを実行してください。  
このオプションは次のシナリオで役立ちます。`dev` や `prod` など、複数の環境を持つアプリある場合があります。開発を開始すると、本番環境アプリにリソースがないか、リソースがコメントアウトされている場合があります。アプリにスタックがないことを示すメッセージを含むデプロイエラーが発生します。`--ignore-no-stacks` を使用してこのエラーをバイパスします。  
 *デフォルト値*: `false` <a name="ref-cli-cmd-deploy-options-import-existing-resources"></a>

 `--import-existing-resources <BOOLEAN>`   
AWS アカウントから、既存の管理されていない AWS CloudFormation リソースをインポートします。  
このオプションを使用すると、同じアカウントの既存の管理されていないリソースと同じカスタム名を持つ合成された AWS CloudFormation テンプレートのリソースが、スタックにインポートされます。  
このオプションを使用して、既存のリソースを新規または既存のスタックにインポートできます。  
既存のリソースをインポートし、同じ `cdk deploy` コマンドで新しいリソースをデプロイできます。  
カスタム名の詳細については、「*AWS CloudFormation ユーザーガイド*」の「[名前タイプ](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html)」を参照してください。  
`ImportExistingResources` CloudFormation パラメータの詳細については、「[AWS CloudFormation が ChangeSet の新しいパラメータを使用してリソースのインポートを簡素化](https://aws.amazon.com/about-aws/whats-new/2023/11/aws-cloudformation-import-parameter-changesets/)」を参照してください。  
このオプションの使用の詳細については、「*aws-cdk-cli GitHub リポジトリ*」の「[既存のリソースをインポートする](https://github.com/aws/aws-cdk-cli/tree/main/packages/aws-cdk#import-existing-resources)」を参照してください。<a name="ref-cli-cmd-deploy-options-logs"></a>

 `--logs <BOOLEAN>`   
選択したスタック内のすべてのリソースによるすべてのイベントについて、標準出力 (`stdout`) で Amazon CloudWatch Logs を表示します。  
このオプションは `--watch` とのみ互換性があります。  
 *デフォルト値*: `true` <a name="ref-cli-cmd-deploy-options-method"></a>

 `--method, -m <STRING>`   
メソッドを設定してデプロイを実行します。  
+  `change-set` – デフォルトのメソッド。CDK CLI はデプロイされる変更を使用して CloudFormation 変更セットを作成したら、デプロイを実行します。
+  `direct` – 変更セットを作成しないでください。代わりに、すぐに変更を適用してください。これは通常、変更セットを作成するよりもすばやく実行できますが、CLI 出力のデプロイ進行状況の詳細が失われます。
+  `prepare-change-set` – 変更セットを作成しますが、デプロイは実行しません。変更セットを検査する外部ツールがある場合、あるいは変更セットの承認プロセスがある場合に便利です。
 *有効な値*:`change-set` 、`direct`、`prepare-change-set`  
 *デフォルト値*: `change-set` <a name="ref-cli-cmd-deploy-options-notification-arns"></a>

 `--notification-arns <ARRAY>`   
CloudFormation がスタック関連イベントについて通知する Amazon SNS トピックの ARN。<a name="ref-cli-cmd-deploy-options-outputs-file"></a>

 `--outputs-file, -O <STRING>`   
デプロイからのスタック出力が書き込まれるパス。  
デプロイ後、スタック出力は JSON 形式で指定された出力ファイルに書き込まれます。  
このオプションは、プロジェクトの `cdk.json` ファイルまたはローカル開発マシンの `~/.cdk.json`で設定できます。  

```
{
   "app": "npx ts-node bin/myproject.ts",
   // ...
   "outputsFile": "outputs.json"
}
```
複数のスタックがデプロイされている場合、出力は同じ出力ファイルに書き込まれ、スタック名を表すキーで整理されます。<a name="ref-cli-cmd-deploy-options-parameters"></a>

 `--parameters <ARRAY>`   
デプロイ中に追加のパラメータを CloudFormation に渡します。  
このオプションは、`STACK:KEY=VALUE` の形式の配列を受け入れます。  
+  `STACK` – パラメータを関連付けるスタックの名前。
+  `KEY` – スタックのパラメータの名前。
+  `VALUE` – デプロイ時に渡す値。
スタック名が指定されていない場合、あるいは `*` がスタック名として指定されている場合、パラメータはデプロイされるすべてのスタックに適用されます。スタックがパラメータを活用しない場合、デプロイは失敗します。  
パラメータはネストされたスタックには伝達されません。ネストされたスタックにパラメータを渡すには、` [NestedStack](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.NestedStack.html) ` コンストラクトを使用します。  
 *デフォルト値*: `{}` <a name="ref-cli-cmd-deploy-options-previous-parameters"></a>

 `--previous-parameters <BOOLEAN>`   
既存のパラメータに以前の値を使用します。  
このオプションが `false` に設定されているとき、すべてのデプロイにすべてのパラメータを指定する必要があります。  
 *デフォルト値*: `true` <a name="ref-cli-cmd-deploy-options-progress"></a>

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

```
{
   "progress": "events"
}
```
 *有効な値*:`bar` 、`events`  
 *デフォルト値*: `bar` <a name="ref-cli-cmd-deploy-options-require-approval"></a>

 `--require-approval <STRING>`   
手動承認が必要なセキュリティ上機密性の高い変更を指定します。  
+  `any-change` – スタックへの変更に手動承認が必要です。
+  `broadening` – 変更に許可やセキュリティグループルールの拡大を伴う場合、手動承認が必要です。
+  `never` – 承認は必要ありません。
 *有効な値*:`any-change` 、`broadening`、`never`  
 *デフォルト値*: `broadening` <a name="ref-cli-cmd-deploy-options-rollback"></a>

 `--rollback` \$1 `--no-rollback`, `-R`   
デプロイ中にリソースの作成または更新に失敗した場合、CDK CLI が戻る前にデプロイは最新の安定状態にロールバックします。その時点までに行われたすべての変更は元に戻されます。作成されたリソースは削除され、更新プログラムはロールバックされます。  
`--no-rollback` を指定してこの動作をオフにします。リソースの作成または更新に失敗した場合、CDK CLI はその時点までに行われた変更をそのままにして戻ります。デプロイは失敗した一時停止状態になります。ここからはコードを更新し、デプロイを再試行できます。すばやく反復する開発環境に役立ちます。  
`--no-rollback` で実行されたデプロイが失敗し、デプロイをロールバックすることを決定した場合、`cdk rollback` コマンドを使用できます。詳細については、「[cdk ロールバック](ref-cli-cmd-rollback.md)」を参照してください。  
`--no-rollback` では、リソースの置き換えの原因となるデプロイは常に失敗します。このオプション値は、新しいリソースを更新または作成するデプロイにのみ使用できます。
 *デフォルト値*: `--rollback` <a name="ref-cli-cmd-deploy-options-toolkit-stack-name"></a>

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

 `--watch <BOOLEAN>`   
CDK プロジェクトファイルを継続的に監視し、変更が検出されると指定されたスタックを自動的にデプロイします。  
このオプションはデフォルトで `--hotswap` を暗示します。  
このオプションには同等の CDK CLI コマンドがあります。詳細については、「[cdk ウォッチ](ref-cli-cmd-watch.md)」を参照してください。

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

### MyStackName という名前のスタックのデプロイ
<a name="ref-cli-cmd-deploy-examples-1"></a>

```
$ cdk deploy MyStackName --app='node bin/main.js'
```

### アプリに複数のスタックのデプロイ
<a name="ref-cli-cmd-deploy-examples-2"></a>

`cdk list` を使用してスタックを一覧表示します。

```
$ cdk list
CdkHelloWorldStack
CdkStack2
CdkStack3
```

すべてのスタックをデプロイするには、`--all` オプションを使用します。

```
$ cdk deploy --all
```

デプロイするスタックを選択するには、スタック名を引数として指定します。

```
$ cdk deploy CdkHelloWorldStack CdkStack3
```

### パイプラインスタックのデプロイ
<a name="ref-cli-cmd-deploy-examples-3"></a>

`cdk list` を使用してスタック名をパスとして表示し、パイプライン階層内の場所を示します。

```
$ cdk list
PipelineStack
PiplelineStack/Prod
PipelineStack/Prod/MyService
```

`--all` オプションまたはワイルドカード `*` を使用し、すべてのスタックをデプロイします。上記のスタックの階層がある場合、`--all` および `*` は最上位のスタックのみに一致します。階層内のすべてのスタックを一致させるには、`**` を使用します。

これらのパターンを組み合わせることができます。次の内容は、`Prod` ステージ内のすべてのスタックをデプロイします。

```
$ cdk deploy PipelineStack/Prod/**
```

### デプロイ時にパラメータを渡す
<a name="ref-cli-cmd-deploy-examples-4"></a>

CDK スタックでパラメータを定義します。次の内容は、Amazon SNS トピックに `TopicNameParam` という名前のパラメータを作成する例です。

```
new sns.Topic(this, 'TopicParameter', {
    topicName: new cdk.CfnParameter(this, 'TopicNameParam').value.toString()
});
```

`parameterized` のパラメータ値を指定するには、次の内容を実行します。

```
$ cdk deploy --parameters "MyStackName:TopicNameParam=parameterized"
```

`--force` オプションを使用してパラメータ値を上書きできます。次の内容は、以前のデプロイからトピック名を上書きする例です。

```
$ cdk deploy --parameters "MyStackName:TopicNameParam=parameterName" --force
```

### デプロイ後にスタック出力のファイル書き込み
<a name="ref-cli-cmd-deploy-examples-5"></a>

CDK スタックファイルに出力を定義します。次の内容は、関数 ARN 用に出力を作成する例です。

```
const fn = new lambda.Function(this, "fn", {
  handler: "index.handler",
  code: lambda.Code.fromInline(`exports.handler = \${handler.toString()}`),
  runtime: lambda.Runtime.NODEJS_LATEST
});

new cdk.CfnOutput(this, 'FunctionArn', {
  value: fn.functionArn,
});
```

スタックをデプロイし、出力を `outputs.json` に書き込みます。

```
$ cdk deploy --outputs-file outputs.json
```

次の内容は、デプロイ後の `outputs.json` の例です。

```
{
  "MyStack": {
    "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:MyStack-fn5FF616E3-G632ITHSP5HK"
  }
}
```

この例では、 キー`CfnOutput` は `FunctionArn` インスタンスの論理 IDに対応します。

次の内容は、複数のスタックがデプロイされたとき、デプロイ後の `outputs.json` 例です。

```
{
  "MyStack": {
    "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:MyStack-fn5FF616E3-G632ITHSP5HK"
  },
  "AnotherStack": {
    "VPCId": "vpc-z0mg270fee16693f"
  }
}
```

### デプロイ方法の変更
<a name="ref-cli-cmd-deploy-examples-6"></a>

変更セットを使用せずに迅速にデプロイするには、`--method='direct'` を使用します。

```
$ cdk deploy --method='direct'
```

変更セットを作成してもデプロイしない場合、`--method='prepare-change-set'` を使用します。デフォルトでは、`cdk-deploy-change-set` という名前の変更セットが作成されます。この名前が付いた以前の変更セットが存在する場合、上書きされます。変更が検出されない場合でも、空の変更セットが作成されます。

変更セットに名前を付けることもできます。以下に例を示します。

```
$ cdk deploy --method='prepare-change-set' --change-set-name='MyChangeSetName'
```

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

AWS 環境から 1 つ以上の AWS CDK スタックを削除します。

スタックを削除すると、スタックのリソースが `Retain` の `DeletionPolicy` で設定されない限り、破棄されます。

スタックの削除中、このコマンドは `cdk deploy` 動作と同様の進行状況情報を出力します。

## 使用
<a name="ref-cli-cmd-destroy-usage"></a>

```
$ cdk destroy <arguments> <options>
```

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

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

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

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

 `--all <BOOLEAN>`   
利用可能なすべてのスタックを破棄します。  
 *デフォルト値*: `false` <a name="ref-cli-cmd-destroy-options-exclusively"></a>

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

 `--force, -f <BOOLEAN>`   
スタックを破棄する前に確認を求めないでください。<a name="ref-cli-cmd-destroy-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk destroy` コマンドのコマンドリファレンス情報を表示します。

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

### MyStackName という名前のスタックの削除
<a name="ref-cli-cmd-destroy-examples-1"></a>

```
$ cdk destroy --app='node bin/main.js' <MyStackName>
```

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

差分を実行し、AWS CDK スタック間のインフラストラクチャの変更を確認します。

通常、このコマンドはローカル CDK アプリのスタックにおける現在の状態とデプロイされたスタックの違いを比較するために使用します。ただし、デプロイされたスタックを任意のローカル AWS CloudFormation テンプレートと比較することもできます。

## 使用
<a name="ref-cli-cmd-diff-usage"></a>

```
$ cdk diff <arguments> <options>
```

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

 **CDK スタック ID**   
差分を実行するアプリの CDK スタックのコンストラクト ID。  
 *タイプ*: 文字列  
 *必須:* いいえ

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

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

 `--change-set <BOOLEAN>`   
リソースの置き換えを分析する変更セットを作成するかどうかを指定します。  
`true` のとき、CDK CLI はスタックに加えられる正確な変更を表示する AWS CloudFormation 変更セットを作成します。この出力には、リソースの更新または置き換えのいずれかが含まれます。CDK CLI は、ルックアップロールではなく、デプロイロールを使用してこのアクションを実行します。  
`false` のとき、CloudFormation テンプレートを比較することにより、より迅速で精度の低い差分が実行されます。リソースの置き換えを必要とするプロパティに変更が検出されると、リソースリファレンスをハードコードされた ARN に置き換えるなど、変更が純粋に表面的な場合でも、リソースの置き換えとして表示されます。  
 *デフォルト値*: `true` <a name="ref-cli-cmd-diff-options-context-lines"></a>

 `--context-lines <NUMBER>`   
任意の JSON 差分レンダリングに含めるコンテキスト行の数。  
 *デフォルト値*: `3` <a name="ref-cli-cmd-diff-options-exclusively"></a>

 `--exclusively, -e <BOOLEAN>`   
差分が要求したスタックのみであり、依存関係は含まれません。<a name="ref-cli-cmd-diff-options-fail"></a>

 `--fail <BOOLEAN>`   
差異が検出された場合、`1` のコードで失敗して終了します。<a name="ref-cli-cmd-diff-options-help"></a>

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

 `--processed <BOOLEAN>`   
テンプレートを既に処理された CloudFormation 変換と比較するかどうかを指定します。  
 *デフォルト値*: `false` <a name="ref-cli-cmd-diff-options-quiet"></a>

 `--quiet, -q <BOOLEAN>`   
変更が検出されないとき、CDK スタック名およびデフォルト `cdk diff` メッセージを `stdout` に出力しないでください。  
 *デフォルト値*: `false` <a name="ref-cli-cmd-diff-options-security-only"></a>

 `--security-only <BOOLEAN>`   
拡大されたセキュリティ変更の差分のみ。  
 *デフォルト値*: `false` <a name="ref-cli-cmd-diff-options-strict"></a>

 `--strict <BOOLEAN>`   
`cdk diff` 動作がより正確または厳密になるように変更します。true のとき、CDK CLI は ` AWS::CDK::Metadata` リソースや読み取り不可能な非 ASCII 文字を除外しません。  
 *デフォルト値*: `false` <a name="ref-cli-cmd-diff-options-template"></a>

 `--template <STRING>`   
CDK スタックを比較する CloudFormation テンプレートへのパス。

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

### MyStackName という名前の現在デプロイされているスタックとの差分
<a name="ref-cli-cmd-diff-examples-1"></a>

CDK CLI は、差分出力で次の記号を使用します。
+  `[+]` – 変更をデプロイするときに追加されるコードまたはリソースを識別します。
+  `[-]` – 変更をデプロイするときに削除されるコードまたはリソースを識別します。
+  `[~]` – 変更をデプロイするときに変更されるリソースまたはプロパティを識別します。

以下は、Lambda 関数へのローカルな変更の差分を示す例です。

```
$ cdk diff MyStackName
start: Building <asset-hash>:<account:Region>
success: Built <asset-hash>:<account:Region>
start: Publishing <asset-hash>:<account:Region>
success: Published <asset-hash>:<account:Region>
Hold on while we create a read-only change set to get a diff with accurate replacement information (use --no-change-set to use a less accurate but faster template-only diff)
Stack MyStackName
Resources
[~] AWS::Lambda::Function HelloWorldFunction <resource-logical-ID>
 └─ [~] Code
     └─ [~] .ZipFile:
         ├─ [-]
        exports.handler = async function(event) {
          return {
            statusCode: 200,
            body: JSON.stringify('Hello World!'),
          };
        };

         └─ [+]
        exports.handler = async function(event) {
          return {
            statusCode: 200,
            body: JSON.stringify('Hello from CDK!'),
          };
        };



✨  Number of stacks with differences: 1
```

変更されるリソースの `[~]` インジケータは、必ずしも完全なリソース置換を意味するわけではありません。
+ `Code` などの一部のリソースプロパティは、リソースを更新します。
+ `FunctionName` などの一部のリソースプロパティは、完全なリソース置換を引き起こす可能性があります。

### 特定の CloudFormation テンプレートとの差分
<a name="ref-cli-cmd-diff-examples-2"></a>

```
$ cdk diff MyStackName --app='node bin/main.js' --template-path='./MyStackNameTemplate.yaml'
```

### ローカルスタックをデプロイされたスタックとの差分を行います。変更が検出されない場合、stdout に出力しません。
<a name="ref-cli-cmd-diff-examples-3"></a>

```
$ cdk diff MyStackName --app='node bin/main.js' --quiet
```

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

ブラウザで AWS CDK ドキュメントを開きます。

## 使用
<a name="ref-cli-cmd-docs-usage"></a>

```
$ cdk docs <options>
```

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

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

 `--browser, -b <STRING>`   
開くファイルのパスのプレースホルダーとして `%u` を使用し、ブラウザを開くために使用するコマンド。  
 *デフォルト値*: `open %u` <a name="ref-cli-cmd-docs-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk docs` コマンドのコマンドリファレンス情報を表示します。

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

### Google Chrome で AWS CDK ドキュメントを開く
<a name="ref-cli-cmd-docs-examples-1"></a>

```
$ cdk docs --browser='chrome %u'
```

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

ローカル AWS CDK プロジェクトおよび開発環境に関する便利な情報の検査および表示します。

この情報は CDK 問題のトラブルシューティングに役立ち、バグレポートの送信時に提供する必要があります。

## 使用
<a name="ref-cli-cmd-doctor-usage"></a>

```
$ cdk doctor <options>
```

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

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

 `--help, -h <BOOLEAN>`   
`cdk doctor` コマンドのコマンドリファレンス情報を表示します。

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

### `cdk doctor` コマンドの簡単な例
<a name="ref-cli-cmd-doctor-examples-1"></a>

```
$ cdk doctor
ℹ️ CDK Version: 1.0.0 (build e64993a)
ℹ️ AWS environment variables:
  - AWS_EC2_METADATA_DISABLED = 1
  - AWS_SDK_LOAD_CONFIG = 1
```

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

AWS Cloud Development Kit (AWS CDK) を使用して、定義、管理、およびデプロイするリソースの設定ドリフトを検出します。ドリフトは、スタックの実際の設定が予想される設定と異なる場合に発生します。これは、リソースが AWS CloudFormation の外部で変更された場合に発生します。

このコマンドは、現在の状態と予想される設定を比較することで、(例えば、AWS コンソールや AWS CLI を介して) 変更されたリソースを識別します。これらの変更により、インフラストラクチャで予期しない動作が発生する可能性があります。

ドリフトの検出中、CDK CLI は進行状況インジケータと結果を出力し、以下を表示します。
+ 予想される設定からドリフトしたリソース。
+ ドリフトのあるリソースの総数。
+ スタックでドリフトが検出されたかどうかを示す概要。

**重要**  
`cdk drift` コマンドと `cdk diff` コマンドの動作は異なります。  
 `cdk drift` は CloudFormation のドリフト検出オペレーションを呼び出して、AWS (「リアリティ」) のリソースの実際の状態と CloudFormation の予想される設定を比較します。すべての AWS リソースがドリフト検出をサポートしているわけではありません。サポートされているリソースのリストについては、「*AWS CloudFormation ユーザーガイド*」の「[リソースタイプのサポート](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html)」を参照してください。
 `cdk diff` は、ローカル CDK コードから合成された CloudFormation テンプレートを、デプロイされた CloudFormation スタックのテンプレートと比較します。
リソースが CloudFormation の外部で (例えば、AWS コンソールや AWS CLI を介して) 変更されたかどうかを確認する必要がある場合は、`cdk drift` を使用します。ローカルコードの変更がデプロイ前にインフラストラクチャにどのように影響するかをプレビューする場合は、`cdk diff` を使用します。

## 使用
<a name="ref-cli-cmd-drift-usage"></a>

```
$ cdk drift <arguments> <options>
```

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

 **スタック名**   
ドリフトをチェックするスタックの名前。ドリフトの検出を実行するには、スタックを前もって CloudFormation にデプロイする必要があります。  
 *タイプ*: 文字列  
 *必須:* いいえ  
スタックが指定されていない場合、ドリフトの検出は CDK アプリで定義されたすべてのスタックで実行されます。

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

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

 `--fail <BOOLEAN>`   
ドリフトが検出された場合は、終了コード 1 を返します。  
 *デフォルト値*: `false` <a name="ref-cli-cmd-drift-options-help"></a>

 `--help, -h <BOOLEAN>`   
`cdk drift` コマンドのコマンドリファレンス情報を表示します。

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

### 特定のスタックのドリフトを確認する
<a name="ref-cli-cmd-drift-examples-stack"></a>

```
$ cdk drift MyStackName
```

コマンドは次のような結果を出力します。

```
Stack MyStackName
Modified Resources
[~] AWS::Lambda::Function MyFunction MyLambdaFunc1234ABCD
 └─ [~] /Description
     ├─ [-] My original hello world Lambda function
     └─ [+] My drifted hello world Lambda function

1 resource has drifted from their expected configuration

✨  Number of resources with drift: 1
```

### リソースが削除されたときのドリフトを確認する
<a name="ref-cli-cmd-drift-examples-deleted"></a>

次の例は、リソースが変更および削除されたときに出力がどのように表示されるかを示しています。

```
Stack MyStackName
Modified Resources
[~] AWS::Lambda::Function MyFunction MyLambdaFunc1234ABCD
 └─ [~] /Description
     ├─ [-] My original hello world Lambda function
     └─ [+] My drifted hello world Lambda function
Deleted Resources
[-] AWS::CloudWatch::Alarm MyAlarm MyCWAlarmABCD1234

2 resources have drifted from their expected configuration

✨  Number of resources with drift: 2
```

### 終了コードでドリフトを確認する
<a name="ref-cli-cmd-drift-examples-fail"></a>

ドリフトが検出された場合、コマンドでゼロ以外の終了コードを返すには:

```
$ cdk drift MyStackName --fail
```

これは、CI/CD パイプラインでインフラストラクチャのドリフトを自動的に検出して対応するのに役立ちます。

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

CDK CLI の機能フラグ設定を表示および変更します。

機能フラグは CDK CLI の動作を制御し、それらを使用して特定の機能を有効または無効にできます。`cdk flags` コマンドを使用して、現在の機能フラグ設定を表示し、必要に応じて変更します。

**警告**  
`cdk flags` コマンドは AWS CDK 用に開発中です。このコマンドの現在の機能は、本番稼働準備が整っており、安全に使用できると考えられています。ただし、このコマンドの範囲とその機能は変更される可能性があります。したがって、このコマンドを使用する `unstable=flags` オプションを指定してオプトインする必要があります。

## 使用
<a name="ref-cli-cmd-flags-usage"></a>

```
$ cdk flags <arguments> <options>
```

## 引数
<a name="ref-cli-cmd-flags-args"></a><a name="ref-cli-cmd-flags-args-flagname"></a>

 **FLAGNAME**   
表示または変更する特定の機能フラグの名前。  
 *タイプ*: 文字列  
 *必須:* いいえ

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

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

 `--set <BOOLEAN>`   
機能フラグ設定を変更します。<a name="ref-cli-cmd-flags-options-all"></a>

 `--all <BOOLEAN>`   
すべての機能フラグを変更または表示します。<a name="ref-cli-cmd-flags-options-recommended"></a>

 `--recommended <BOOLEAN>`   
フラグを推奨状態に変更します。<a name="ref-cli-cmd-flags-options-default"></a>

 `--default <BOOLEAN>`   
フラグをデフォルト状態に変更します。<a name="ref-cli-cmd-flags-options-unconfigured"></a>

 `--unconfigured <BOOLEAN>`   
未設定の機能フラグを変更します。<a name="ref-cli-cmd-flags-options-value"></a>

 `--value <STRING>`   
機能フラグ設定を設定する値。  
 *requiresArg*: true<a name="ref-cli-cmd-flags-options-safe"></a>

 `--safe <BOOLEAN>`   
アプリケーションに影響を与えないすべての機能フラグを有効にします。<a name="ref-cli-cmd-flags-options-interactive"></a>

 `--interactive, -i <BOOLEAN>`   
flags コマンドのインタラクティブオプション。

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

### 機能フラグの設定を表示する
<a name="ref-cli-cmd-flags-examples-1"></a>

`cdk flags` を実行して、推奨状態とは異なる機能フラグ設定のレポートを表示します。未設定のフラグには `<unset>` というラベルが付けられ、現在フラグに値がないことを示します。フラグは次の順序で表示されます。
+ 推奨値と一致しない値に設定されたフラグ
+ 設定していないフラグ

```
$ cdk flags --unstable=flags
Feature Flag                           Recommended                       User
* @aws-cdk/...                              true                         false
* @aws-cdk/...                              true                         false
* @aws-cdk/...                              true                         <unset>
```

`cdk flags --all` を実行して、すべての機能フラグのレポートを次の順序で表示することもできます。
+ 推奨値と一致する値に設定されたフラグ
+ 推奨値と一致しない値に設定されたフラグ
+ 設定していないフラグ

```
$ cdk flags --unstable=flags --all
Feature Flag                              Recommended                     User
@aws-cdk/...                                true                         true
* @aws-cdk/...                              true                         false
* @aws-cdk/...                              true                         false
* @aws-cdk/...                              true                         <unset>
```

### 機能フラグ値を変更する
<a name="ref-cli-cmd-flags-examples-2"></a>

機能フラグをインタラクティブに変更するには、`cdk flags --interactive` (または `cdk flags -i`) を実行してメニューオプションのリストを表示します。

すべての機能フラグを推奨値に変更するには、`cdk flags --set --recommended --all` を実行します。このコマンドは、機能フラグ設定を最新の状態に保ちます。このコマンドを実行すると、既存の設定値が上書きされる可能性があることに注意してください。

```
$ cdk flags --unstable=flags --set --recommended --all
Feature Flag                              Recommended Value            User Value
* @aws-cdk/...                              true                         false
* @aws-cdk/...                              true                         false
* @aws-cdk/...                              true                         <unset>
  Synthesizing...
    Resources
    [~] AWS::S3::Bucket MyBucket
    └─ [~] Properties
        └─ [~] Encryption
                ...
    Number of stacks with differences: 2
  Do you want to accept these changes? (y/n) y
  Resynthesizing...
```

既存の設定済みフラグの状態を保持する場合は、`cdk flags --set --recommended --unconfigured` を実行します。このオプションは、未設定の機能フラグのみを推奨値に変更します。

```
$ cdk flags --unstable=flags --set --recommended --unconfigured
Feature Flag                              Recommended Value            User Value
* @aws-cdk/...                              true                         <unset>
* @aws-cdk/...                              true                         <unset>
  Synthesizing...
    Resources
    [~] AWS::S3::Bucket MyBucket
    └─ [~] Properties
        └─ [~] Encryption
            ├─ [-] None
            └─ [+] ServerSideEncryptionConfiguration:
                    - ...
            ...
    Number of stacks with differences: 2
  Do you want to accept these changes? (y/n) y
  Resynthesizing...
```

未設定の機能フラグがアプリケーションに干渉しないようにするには、 `cdk flags --set --default --unconfigured` コマンドを実行して未設定のフラグをデフォルト値に変更します。例えば、`@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021` が未設定の場合、`cdk synth` の実行後に通知が表示されます。ただし、フラグをデフォルト状態 (false) に設定すると、それが設定され、オフになり、アプリケーションに影響しなくなります。

```
$ cdk flags --unstable=flags --set --default --unconfigured
Feature Flag                              Recommended Value            User Value
* @aws-cdk/...                              true                         <unset>
* @aws-cdk/...                              true                         <unset>
  Synthesizing...

  Do you want to accept these changes? (y/n) y
  Resynthesizing...
```

### 特定の機能フラグを検査する
<a name="ref-cli-cmd-flags-examples-3"></a>

#### フラグに関する詳細情報を表示する
<a name="_view_more_information_about_a_flag"></a>

`cdk flags` および `cdk flags --all` を実行して機能フラグ設定を表示することに加えて、`cdk flags "FLAGNAME"` を利用して特定の機能フラグを検査し、フラグの動作を確認することもできます。これは、特定のフラグとそのアプリケーションへの影響を理解したい場合に役立ちます。

```
$ cdk flags --unstable=flags "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021"
    Description: Enable this feature flag to have cloudfront distributions use the security policy TLSv1.2_2021 by default.
    Recommended Value: true
    User Value: true
```

#### 部分文字列でフラグをフィルタリングする
<a name="_filter_flags_by_substring"></a>

`cdk flags substring` を実行して、一致するすべての機能フラグを表示することもできます。その部分文字列に一致する機能フラグが 1 つしかない場合、特定の詳細が表示されます。

```
$ cdk flags --unstable=flags ebs
@aws-cdk/aws-ec2:ebsDefaultGp3Volume
    Description: When enabled, the default volume type of the EBS volume will be GP3
    Recommended Value: true
    User Value: true
```

複数のフラグが部分文字列と一致する場合、一致するすべてのフラグがテーブルに表示されます。複数の部分文字列を入力すると、いずれかの部分文字列を含むすべての一致するフラグが返されます。

```
$ cdk flags --unstable=flags s3 lambda
Feature Flag                              Recommended                     User
* @aws-cdk/s3...                            true                         false
* @aws-cdk/lambda...                        true                         false
* @aws-cdk/lambda...                        true                         <unset>
```

#### 特定のフラグを変更する
<a name="_modify_a_specific_flag"></a>

フラグの値を変更する必要があり、それを正しいサポートされている状態に設定する場合は、`cdk flags --set "FLAGNAME" --value="state"` を実行します。

```
$ cdk flags --unstable=flags --set "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021" --value="true"
  Synthesizing...
    Resources
    [~] AWS::CloudFront::Distribution MyDistribution
    └─ [~] Properties
        └─ [~] DefaultSecurityPolicy
            ├─ [-] TLSv1.0
            └─ [+] TLSv1.2_2021
                    - ...
    Number of stacks with differences: 2
  Do you want to accept these changes? (y/n) y
  Resynthesizing...
```

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

AWS Cloud Development Kit (AWS CDK) コマンドラインインターフェイス (CLI) の `cdk gc` コマンドを使用して、ブートストラップスタックのリソースに保存されている未使用のアセットに対してガベージコレクションを実行します。このコマンドを使用して、不要になったアセットを表示、管理、削除します。

Amazon Simple Storage Service (Amazon S3) アセットの場合、CDK CLI は同じ環境内の既存の AWS CloudFormation テンプレートが参照されているかどうかを確認します。参照されていない場合、それらは未使用と見なされ、ガベージコレクションアクションの対象となります。

**警告**  
`cdk gc` コマンドは AWS CDK 用に開発中です。このコマンドの現在の機能は、本番稼働準備が整っており、安全に使用できると考えられています。ただし、このコマンドの範囲とその機能は変更される可能性があります。したがって、このコマンドを使用する `unstable=gc` オプションを指定してオプトインする必要があります。

## 使用
<a name="ref-cli-cmd-gc-usage"></a>

```
$ cdk gc <arguments> <options>
```

## 引数
<a name="ref-cli-cmd-gc-args"></a><a name="ref-cli-cmd-gc-args-env"></a>

 **AWS 環境**   
ガベージコレクションアクションが実行されるターゲット AWS 環境。  
環境を提供するときは、次の形式を使用します: `aws://<account-id>/<region>`。例えば、`aws://<123456789012>/<us-east-1>`。  
この引数は、1 つのコマンドで複数回指定して、複数の環境でガベージコレクションアクションを実行できます。  
デフォルトでは、CDK CLI は CDK アプリで参照するか、引数として指定したすべての環境でガベージコレクションアクションを実行します。環境を提供しない場合、CDK CLI はデフォルトのソースから環境を決定します。これらのソースには、`--profile` オプション、環境変数、またはデフォルトの AWS CLI ソースを使用して指定した環境が含まれます。

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

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

 `--action <STRING>`   
ガベージコレクション中に `cdk gc` がアセットに対して実行するアクション。  
+  `delete-tagged` – 指定したバッファ日数の範囲内の日付でタグ付けされたアセットを削除しますが、新しく識別された未使用のアセットにはタグ付けしません。
+  `full` – すべてのガベージコレクションアクションを実行します。これには、指定したバッファ日数の範囲内のアセットの削除や、新しく識別された未使用のアセットのタグ付けが含まれます。
+  `print` – コマンドプロンプトで未使用のアセットの数を出力しますが、AWS 環境内で実際の変更を行いません。
+  `tag` – 新しく識別された未使用のアセットにタグ付けしますが、指定したバッファ日数の範囲内のアセットは削除しません。
 *使用できる値*: `delete-tagged` 、`full`、`print`、`tag`  
 *デフォルト値*: `full` <a name="ref-cli-cmd-gc-options-bootstrap-stack-name"></a>

 `--bootstrap-stack-name <STRING>`   
AWS 環境内の CDK ブートストラップスタックの名前。ブートストラップスタック名をカスタマイズした場合は、このオプションを指定します。デフォルトの `CDKToolkit` スタック名を使用している場合は、このオプションを指定する必要はありません。  
 *デフォルト値*: `CDKToolkit` <a name="ref-cli-cmd-gc-options-confirm"></a>

 `--confirm <BOOLEAN>`   
CDK CLI がアセットを削除する前にユーザーから手動確認をリクエストするかどうかを指定します。  
手動確認を求めることなくアセットを自動的に削除するには、`false` を指定します。  
 *デフォルト値*: `true` <a name="ref-cli-cmd-gc-options-created-buffer-days"></a>

 `--created-buffer-days <NUMBER>`   
ガベージコレクションアクションの対象となる前にアセットが存在する必要がある日数。  
数値を指定すると、指定した日数を超えて存在していないアセットはガベージコレクションアクションから除外されます。  
 *デフォルト値*: `1` <a name="ref-cli-cmd-gc-options-help"></a>

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

 `--rollback-buffer-days <NUMBER>`   
ガベージコレクションアクションの対象となる前にアセットを隔離としてタグ付けする必要がある日数。  
番号を指定すると、CDK CLI は未使用のアセットを削除せずに現在の日付でタグ付けします。CDK CLI は、`cdk gc` コマンドの以前の実行中にアセットがタグ付けされているかどうかも確認します。指定したバッファ日数の範囲内に入る以前にタグ付けされたアセットは削除されます。  
 *デフォルト値*: `0` <a name="ref-cli-cmd-gc-options-type"></a>

 `--type <STRING>`   
ガベージコレクションアクションを実行するブートストラップスタック内のブートストラップリソースタイプ。  
+  `all` – ブートストラップされたすべてのリソースに対してガベージコレクションアクションを実行します。
+  `ecr` – ブートストラップスタックの Amazon Elastic Container Registry (Amazon ECR) リポジトリ内のアセットに対してガベージコレクションアクションを実行します。
+  `s3` – ブートストラップスタックの Amazon S3 バケット内のアセットに対してガベージコレクションアクションを実行します。
 *使用できる値*: `all`、`ecr`、`s3`  
 *デフォルト値*: `all` <a name="ref-cli-cmd-gc-options-unstable"></a>

 `--unstable <STRING>`   
まだ開発中の CDK CLI コマンドの使用を許可します。  
このオプションは、まだ開発中で変更される可能性のある CDK CLI コマンドを使用するために必要です。  
このオプションは、1 つのコマンドで複数回指定できます。  
`cdk gc` を使用するには、`--unstable=gc` を指定します。

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

### 基本的な例
<a name="ref-cli-cmd-gc-examples-basic"></a>

次の例では、ブートストラップスタックの Amazon S3 バケット内のアセットに対してデフォルトのガベージコレクションアクションを実行するための手動確認を求めます。

```
$ cdk gc --unstable=gc --type=s3

 ⏳  Garbage Collecting environment aws://<account-id>/<region>...
Found 99 assets to delete based off of the following criteria:
- assets have been isolated for > 0 days
- assets were created > 1 days ago

Delete this batch (yes/no/delete-all)?
```

次の例では、ブートストラップスタックの Amazon S3 バケット内のアセットの範囲に対してガベージコレクションアクションを実行します。この範囲には、30 日より前に `cdk gc` によってタグ付けされ、10 日以上前に作成されたアセットが含まれます。このコマンドは、アセットを削除する前に手動確認を求めます。

```
$ cdk gc --unstable=gc --type=s3 --rollback-buffer-days=30 --created-buffer-days=10
```

次の例では、30 日より長く使用されていないブートストラップスタックの Amazon S3 バケット内の以前にタグ付けされたアセットを削除するアクションを実行します。

```
$ cdk gc --unstable=gc --type=s3 --action=delete-tagged --rollback-buffer-days=30
```

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

[AWS CloudFormation リソースインポート](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import.html)を使用し、既存の AWS リソースを CDK スタックにインポートします。

このコマンドを使用すると、他のメソッドを使用して作成された既存のリソースを取得し、AWS CDK を使用して管理を開始できます。

リソースを CDK 管理に移行することを検討するとき、IAM ロール、Lambda 関数、イベントルールなどを使用して新しいリソースを作成することは認められます。Amazon S3 バケットや DynamoDB テーブルなどのステートフルリソースなどの他のリソースでは、新しいリソースを作成するとサービスに影響を与える可能性があります。`cdk import` を使用し、サービスの中断を最小限に抑えながら、既存のリソースをインポートできます。サポートされている AWS リソースのリストについては、「*AWS CloudFormation ユーザーガイド*」の「[リソースタイプのサポート](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html)」を参照してください。

 **既存のリソースを CDK スタックにインポートする方法**   

1. `cdk diff` を実行し、CDK スタックに保留中の変更がないことを確認します。`cdk import` を実行するとき、インポートオペレーションで許可される変更は、インポートされる新しいリソースの追加のみです。

1. スタックにインポートするリソースのコンストラクトを追加します。例えば、次のものを Amazon S3 バケットに追加します。

   ```
   new s3.Bucket(this, 'ImportedS3Bucket', {});
   ```

   その他の変更は加えないでください。リソースの現在の状態を必ず正確にモデル化する必要もあります。バケットの例では、AWS KMS キー、ライフサイクルポリシー、バケットに関連するその他のものを必ず含めてください。それ以外の場合、後続の更新操作は期待どおりに動作しない場合があります。

1. `cdk import` を実行します。CDK アプリに複数のスタックがある場合、特定のスタック名を引数として渡します。

1. CDK CLI は、インポートするリソースの実際の名前を渡すようにプロンプトが表示されます。この情報を指定したら、インポートが開始されます。

1. `cdk import` が正常処理を報告すると、リソースは CDK によって管理されます。コンストラクト設定のその後の変更は、リソースに反映されます。

この機能には現在、以下の制限があります。
+ ネストされたスタックにリソースをインポートすることはできません。
+ 指定したプロパティが、インポートされたリソースに対して正しくて完全かどうかは確認されません。インポート後にドリフト検出オペレーションを開始してみてください。
+ 他のリソースに依存するすべてのリソースは、正しい順序でまとめてまたは個別にインポートする必要があります。そうしないと、CloudFormation デプロイは未解決のリファレンスで失敗します。
+ このコマンドは、暗号化されたステージングバケットを読み取るために必要なデプロイロール認証情報を使用します。デプロイロールに必要な IAM アクセス許可を含むブートストラップテンプレートのバージョン 12 が必要です。

## 使用
<a name="ref-cli-cmd-import-usage"></a>

```
$ cdk import <arguments> <options>
```

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

 **CDK スタック ID**   
リソースをインポートするアプリの CDK スタックのコンストラクト ID。この引数は、1 つのコマンドで複数回指定できます。  
 *タイプ*: 文字列  
 *必須:* いいえ

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

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

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

 `--execute <BOOLEAN>`   
変更セットを実行するかどうかを指定します。  
 *デフォルト値*: `true` <a name="ref-cli-cmd-import-options-force"></a>

 `--force, -f <BOOLEAN>`   
デフォルトでは、テンプレート差分に更新または削除が含まれている場合、CDK CLI はプロセスを終了させます。この動作を上書きして常にインポートを続行するには、`true` を指定します。<a name="ref-cli-cmd-import-options-help"></a>

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

 `--record-resource-mapping, -r <STRING>`   
このオプションを使用し、インポートする CDK リソースに既存の物理リソースのマッピングを生成します。マッピングは、指定したファイルパスに書き込まれます。実際のインポート操作は実行されません。<a name="ref-cli-cmd-import-options-resource-mapping"></a>

 `--resource-mapping, -m <STRING>`   
このオプションを使用し、リソースマッピングを定義するファイルを指定します。CDK CLI はこのファイルを使用し、インタラクティブに質問するのではなく、インポートするリソースに物理リソースをマッピングします。  
このオプションはスクリプトから実行できます。<a name="ref-cli-cmd-import-options-rollback"></a>

 `--rollback <BOOLEAN>`   
失敗時にスタックを安定状態にロールバックします。  
`false` を指定するには、`--no-rollback` または `-R` を使用できます。  
`false` を指定してより迅速に反復します。リソース置換を含むデプロイは必ず失敗します。  
 *デフォルト値*: `true` <a name="ref-cli-cmd-import-options-toolkit-stack-name"></a>

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

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

テンプレートから新しい AWS CDK プロジェクトを作成します。

## 使用
<a name="ref-cli-cmd-init-usage"></a>

```
$ cdk init <arguments> <options>
```

## 引数
<a name="ref-cli-cmd-init-args"></a><a name="ref-cli-cmd-init-args-template-type"></a>

 **テンプレートのタイプ**   
新しい CDK プロジェクトを初期化する CDK テンプレートタイプ。  
+  `app` – CDK アプリケーションのテンプレート
+  `lib` – AWS コンストラクトライブラリのテンプレート。
+  `sample-app` – 一部のコンストラクトを含む CDK アプリケーションの例。
 *有効な値*:`app` 、`lib`、`sample-app`

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

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

 `--generate-only <BOOLEAN>`   
git リポジトリの設定、依存関係のインストール、プロジェクトのコンパイルなど、追加の操作を開始せずにプロジェクトファイルを生成するには、このオプションを指定します。  
 *デフォルト値*: `false` <a name="ref-cli-cmd-init-options-help"></a>

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

 `--language, -l <STRING>`   
新しいプロジェクトに使用される言語。このオプションは、プロジェクトの `cdk.json` 設定ファイルまたはローカル開発マシンの `~/.cdk.json` で設定できます。  
 *有効な値*:`csharp` 、`fsharp`、`go`、`java`、`javascript`、`python`、`typescript`<a name="ref-cli-cmd-init-options-list"></a>

 `--list <BOOLEAN>`   
利用可能なテンプレートタイプおよび言語を一覧表示します。

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

### 利用可能なテンプレートタイプと言語の覧表示
<a name="ref-cli-cmd-init-examples-1"></a>

```
$ cdk init --list
Available templates:
* app: Template for a CDK Application
   └─ cdk init app --language=[csharp|fsharp|go|java|javascript|python|typescript]
* lib: Template for a CDK Construct Library
   └─ cdk init lib --language=typescript
* sample-app: Example CDK Application with some constructs
   └─ cdk init sample-app --language=[csharp|fsharp|go|java|javascript|python|typescript]
```

### ライブラリテンプレートから TypeScript で新しい CDK アプリケーションの作成
<a name="ref-cli-cmd-init-examples-2"></a>

```
$ cdk init lib --language=typescript
```

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

CDK アプリからのすべての AWS CDK スタックおよびその依存関係を一覧表示します。

## 使用
<a name="ref-cli-cmd-list-usage"></a>

```
$ cdk list <arguments> <options>
```

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

 **CDK スタック ID**   
このコマンドを実行するアプリの CDK スタックのコンストラクト ID。  
 *タイプ*: 文字列  
 *必須:* いいえ

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

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

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

 `--long, -l <BOOLEAN>`   
各スタックの AWS 環境情報を表示します。  
 *デフォルト値*: `false` <a name="ref-cli-cmd-list-options-show-dependencies"></a>

 `--show-dependencies, -d <BOOLEAN>`   
各スタックのスタック依存関係情報を表示します。  
 *デフォルト値*: `false` 

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

### CDK アプリの「node bin/main.js」にあるすべてのスタックを一覧表示します。
<a name="ref-cli-cmd-list-examples-1"></a>

```
$ cdk list --app='node bin/main.js'
Foo
Bar
Baz
```

### 各スタックの AWS 環境の詳細を含むすべてのスタックの一覧表示
<a name="ref-cli-cmd-list-examples-"></a>

```
$ cdk list --app='node bin/main.js' --long
-
    name: Foo
    environment:
        name: 000000000000/bermuda-triangle-1
        account: '000000000000'
        region: bermuda-triangle-1
-
    name: Bar
    environment:
        name: 111111111111/bermuda-triangle-2
        account: '111111111111'
        region: bermuda-triangle-2
-
    name: Baz
    environment:
        name: 333333333333/bermuda-triangle-3
        account: '333333333333'
        region: bermuda-triangle-3
```

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

CDK スタックに関連付けられたメタデータを表示します。

## 使用
<a name="ref-cli-cmd-metadata-usage"></a>

```
$ cdk metadata <arguments> <options>
```

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

 **CDK スタック ID**   
メタデータを表示するアプリの CDK スタックのコンストラクト ID。  
 *タイプ*: 文字列  
 *必須:* いいえ

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

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

 `--help, -h <BOOLEAN>`   
`cdk metadata` コマンドのコマンドリファレンス情報を表示します。

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

デプロイされた AWS リソース、AWS CloudFormation スタック、CloudFormation テンプレートを新しい AWS CDK プロジェクトに移行します。

このコマンドは、`--stack-name` を使用して指定した値で名前が付けられた 1 つのスタックを含む新しい CDK アプリを作成します。`--from-scan`、`--from-stack`、`--from-path` を使用して移行ソースを設定できます。

`cdk migrate` の使用の詳細については、「[既存のリソースと AWS CloudFormation テンプレートを AWS CDK に移行する](migrate.md)」を参照してください。

**注記**  
`cdk migrate` コマンドは実験的であり、今後は大幅な変更が行われる場合があります。

## 使用
<a name="ref-cli-cdk-migrate-usage"></a>

```
$ cdk migrate <options>
```

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

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

### 必須のオプション
<a name="ref-cli-cdk-migrate-options-required"></a><a name="ref-cli-cdk-migrate-options-stack-name"></a>

 `--stack-name <STRING>`   
移行後に CDK アプリ内で作成される AWS CloudFormation スタックの名前。  
 *必須:* はい

### 条件的なオプション
<a name="ref-cli-cdk-migrate-options-conditional"></a><a name="ref-cli-cdk-migrate-options-from-path"></a>

 `--from-path <PATH>`   
移行する AWS CloudFormation テンプレートへのパス。このオプションを指定し、ローカルテンプレートを指定します。  
 *必須:* 条件的。ローカル AWS CloudFormation テンプレートから移行する場合は必要です。<a name="ref-cli-cdk-migrate-options-from-scan"></a>

 `--from-scan <STRING>`   
デプロイされたリソースを AWS 環境から移行するときにこのオプションを使用し、新しいスキャンを開始するか、最後に正常に処理されたスキャンを AWS CDK CLI が使用するかを指定します。  
 *必須:* 条件的。デプロイされた AWS リソースからの移行時に必要です。  
 *使用できる値*:`most-recent` 、`new`<a name="ref-cli-cdk-migrate-options-from-stack"></a>

 `--from-stack <BOOLEAN>`   
このオプションを指定し、デプロイされた AWS CloudFormation スタックから移行します。`--stack-name` を使用し、デプロイされた AWS CloudFormation スタックの名前を指定します。  
 *必須:* 条件的。デプロイされた AWS CloudFormation スタックから移行する場合に必要です。

### 任意のオプション
<a name="ref-cli-cdk-migrate-options-optional"></a><a name="ref-cli-cdk-migrate-options-account"></a>

 `--account <STRING>`   
AWS CloudFormation スタックテンプレートの取得元のアカウント。  
 必須: いいえ  
 *デフォルト*: AWS CDK CLI はデフォルトのソースからアカウント情報を取得します。<a name="ref-cli-cdk-migrate-options-compress"></a>

 `--compress <BOOLEAN>`   
このオプションを指定し、生成された CDK プロジェクトを `ZIP` ファイルに圧縮します。  
 必須: いいえ<a name="ref-cli-cdk-migrate-options-filter"></a>

 `--filter <ARRAY>`   
AWS アカウントおよび AWS リージョンからデプロイされたリソースを移行するときに使用します。このオプションは、移行するデプロイされたリソースを決定するフィルターを指定します。  
このオプションは、キーと値のペアの配列を受け入れます。ここでは**キー**はフィルタータイプを表し、**値は**フィルターする値を表します。  
使用できるキーは次のとおりです。  
+  `resource-identifier` - リソースの識別子。値はリソースの論理 ID または物理 ID にすることができます。例えば、`resource-identifier="ClusterName"`。
+  `resource-type-prefix` – AWS CloudFormation リソースタイプのプレフィックス。例えば、すべての Amazon DynamoDB リソースをフィルタリングするように `resource-type-prefix="AWS::DynamoDB::"` を指定します。
+  `tag-key` – リソースタグの鍵。例えば、`tag-key="myTagKey"`。
+  `tag-value` – リソースタグの値。例えば、`tag-value="myTagValue"`。
`AND` 条件ロジックに複数のキーと値のペアを指定します。次の例では、`--filter resource-type-prefix="AWS::DynamoDB::", tag-key="myTagKey"` のタグキーとして `myTagKey` にタグ付けされている DynamoDB リソースをフィルタリングします。  
`OR` 条件ロジックに `--filter` オプションを 1 つのコマンドで複数回指定します。次の例では、DynamoDB リソースであるすべてのリソースをフィルタリングするか、`--filter resource-type-prefix="AWS::DynamoDB::" --filter tag-key="myTagKey"` のタグキーとして `myTagKey` にタグ付けされているリソースをフィルタリングします  
 *必須:* いいえ<a name="ref-cli-cdk-migrate-options-help"></a>

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

 `--language <STRING>`   
移行中に作成された CDK プロジェクトに使用するプログラミング言語。  
 *必須:* いいえ  
 *有効な値*:`typescript` 、`python`、`java`、`csharp`、`go`  
 *[Default]* (デフォルト): `typescript` <a name="ref-cli-cdk-migrate-options-output-path"></a>

 `--output-path <PATH>`   
移行された CDK プロジェクトの出力パス。  
 必須: いいえ  
 *デフォルト*: デフォルトでは、AWS CDK CLI は現在の作業ディレクトリを使用します。<a name="ref-cli-cdk-migrate-options-region"></a>

 `--region <STRING>`   
AWS CloudFormation スタックテンプレートを取得する AWS リージョン。  
 *必須:* いいえ  
 *デフォルト*: AWS CDK CLI はデフォルトのソースから AWS リージョン情報を取得します。

## 例
<a name="ref-cli-cdk-migrate-examples"></a>

### CloudFormation スタックから移行する簡単な例
<a name="ref-cli-cdk-migrate-examples-1"></a>

`--from-stack` を使用し、デプロイされた CloudFormation スタックから特定の AWS 環境に移行します。`--stack-name` を指定して新しい CDK スタックに名前を付けます。次の内容は、TypeScript を使用している新しい CDK アプリに `myCloudFormationStack` を移行する例です。

```
$ cdk migrate --language typescript --from-stack --stack-name 'myCloudFormationStack'
```

### ローカル CloudFormation テンプレートから移行する簡単な例
<a name="ref-cli-cdk-migrate-examples-2"></a>

`--from-path` を使用し、ローカル JSON または YAML CloudFormation テンプレートから移行します。`--stack-name` を指定して新しい CDK スタックに名前を付けます。次の内容は、ローカル `template.json` ファイルからの `myCloudFormationStack` スタックを含む TypeScript に新しい CDK アプリを作成する例です。

```
$ cdk migrate --stack-name "myCloudFormationStack" --language typescript --from-path "./template.json"
```

### デプロイされた AWS リソースから移行する簡単な例
<a name="ref-cli-cdk-migrate-examples-3"></a>

`--from-scan` を使用して、CloudFormation スタックに関連付けられていない特定の AWS 環境からデプロイされた AWS リソースを移行します。CDK CLI は IaC generator サービスを使用し、リソースをスキャンしてテンプレートを生成します。次に、CDK CLI はテンプレートを参照して新しい CDK アプリを作成します。次の内容は、移行された AWS リソースを含む新しい `myCloudFormationStack` スタックを持つ TypeScript に新しい CDK アプリを作成する例です。

```
$ cdk migrate --language typescript --from-scan --stack-name "myCloudFormationStack"
```

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

CDK アプリケーションの通知を表示します。

通知には、セキュリティの脆弱性、リグレッション、サポートされていないバージョンの使用に関する重要なメッセージを含めることができます。

承認されているかどうかを問わず、このコマンドは関連する通知を表示します。関連する通知は、デフォルトですべてのコマンドの後に表示される場合もあります。

次の方法で通知を抑制できます。
+ コマンドオプション経由。以下に例を示します。

  ```
  $ cdk deploy --no-notices
  ```
+ プロジェクトの`cdk.json`ファイルのコンテキストを使用し、すべての通知を無期限に抑制します。

  ```
  {
    "notices": false,
    "context": {
      // ...
    }
  }
  ```
+ `cdk acknowledge` コマンドを使用して各通知を確認します。

## 使用
<a name="ref-cli-cmd-notices-usage"></a>

```
$ cdk notices <options>
```

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

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

 `--help, -h <BOOLEAN>`   
`cdk notices` コマンドのコマンドリファレンス情報を表示します。

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

### cdk デプロイコマンドの実行後に表示されるデフォルトの通知の例
<a name="ref-cli-cmd-notices-examples-1"></a>

```
$ cdk deploy

... # Normal output of the command

NOTICES

16603   Toggling off auto_delete_objects for Bucket empties the bucket

        Overview: If a stack is deployed with an S3 bucket with
                  auto_delete_objects=True, and then re-deployed with
                  auto_delete_objects=False, all the objects in the bucket
                  will be deleted.

        Affected versions: <1.126.0.

        More information at: https://github.com/aws/aws-cdk/issues/16603


17061   Error when building EKS cluster with monocdk import

        Overview: When using monocdk/aws-eks to build a stack containing
                  an EKS cluster, error is thrown about missing
                  lambda-layer-node-proxy-agent/layer/package.json.

        Affected versions: >=1.126.0 <=1.130.0.

        More information at: https://github.com/aws/aws-cdk/issues/17061


If you don’t want to see an notice anymore, use "cdk acknowledge ID". For example, "cdk acknowledge 16603"
```

### cdk 通知コマンドを実行する簡単な例
<a name="ref-cli-cmd-notices-examples-2"></a>

```
$ cdk notices

NOTICES

16603   Toggling off auto_delete_objects for Bucket empties the bucket

        Overview: if a stack is deployed with an S3 bucket with
                  auto_delete_objects=True, and then re-deployed with
                  auto_delete_objects=False, all the objects in the bucket
                  will be deleted.

        Affected versions: framework: <=2.15.0 >=2.10.0

        More information at: https://github.com/aws/aws-cdk/issues/16603


If you don’t want to see a notice anymore, use "cdk acknowledge <id>". For example, "cdk acknowledge 16603"
```

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

**重要**  
`cdk refactor` コマンドはプレビューリリースであり、変更される可能性があります。  
このコマンドを使用するときは、`--unstable=refactor` オプションを指定する必要があります。

AWS Cloud Development Kit (AWS CDK) アプリケーションでコードをリファクタリングするときに、デプロイされたリソースを保持します。

コンストラクトの名前を変更したり、それらを CDK コード内のスタック間で移動したりすると、CloudFormation は通常、これらを新しいリソースとして扱い、置き換えが発生してサービスの中断やデータ損失につながる可能性があります。`cdk refactor` コマンドはこれらの変更をインテリジェントに検出し、CloudFormation のリファクタリング API と連携して、論理 ID を更新しながらリソースを保持します。

`cdk refactor` を使用すると、次のことが可能になります。
+ コンストラクトの名前を変更して、リソースの置き換えを発生させることなく、コードベースをより明確にします。
+ リソースをスタック間で移動して、懸念事項の編成と分離を改善します。
+ 基盤となるクラウドリソースを保持しながら、コンストラクト階層を再編成します (新しい L3 コンストラクトで AWS リソースをグループ化するなど)。
+ バージョン間で論理 ID が変更されたときにリソースの置き換えをトリガーすることなく、サードパーティーの依存関係を含むコンストラクトライブラリを安全にアップグレードまたは切り替えます。

このコマンドは、変更を分析し、場所 (スタックおよび論理 ID) を変更するリソースのリストを表示し、ID と状態を維持しながら CloudFormation リソースを更新する複雑なプロセスを処理します。

実行すると、コマンドは現在のコードとデプロイされた状態を比較してマッピングを自動的に計算します。CDK アプリケーションにデプロイされた状態とまったく同じリソースセットが含まれ、コンストラクトツリー内の場所のみが異なることを確認します。コマンドがリソースの追加、削除、または変更を検出すると、リファクタリングオペレーションはエラーメッセージ付きで拒否されます。

計算のマッピング後、コマンドは提案された変更を表示し、ユーザーの確認後にリファクタリングを適用します。あいまいさが検出された場合 (複数の有効なマッピングが可能な場合)、明示的なマッピングを含むオーバーライドファイルを提供して、これらのケースを解決できます。

概要については、「[CDK コードのリファクタリング時にデプロイされたリソースを保持する](refactor.md)」を参照してください。

## 使用
<a name="ref-cli-cmd-refactor-usage"></a>

```
$ cdk refactor <arguments> <options>
```

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

 **CDK スタック ID**   
リファクタリングするアプリの CDK スタックのコンストラクト ID。  
複数のスタック ID を指定して、それらのスタックにリファクタリングオペレーションを集中させることができます。リソースがスタック間で移動されていて、それらのスタックの 1 つが明示的に含まれていない場合、リファクタリングコマンドは自動的に追加のスタックをオペレーションに含めます。  
スタック ID を指定しない場合、アプリ内のすべてのスタックがリファクタリング対象と見なされます。  
 *タイプ*: 文字列  
 *必須:* いいえ

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

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

 `--dry-run`   
マッピングを適用せずにコンソールに出力します。  
このオプションは、特に複雑なアプリケーションを操作するときに、実際にリファクタリングを実行する前に変更を検証するのに役立ちます。リソースを変更せずにどのような変更が行われるかを正確に示します。<a name="ref-cli-cmd-refactor-options-force"></a>

 `--force`   
ユーザーに確認を求めることなく、リファクタリングを続行します。  
これは、インタラクティブ環境で変更に自信があるときに役立ちます。CI/CD パイプラインなどの非インタラクティブ環境では、CDK CLI はプロンプトを表示せずに自動的に進行するため、このオプションは必要ありません。<a name="ref-cli-cmd-refactor-options-help"></a>

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

 `--override-file <FILE>`   
CDK CLI がリソースのリファクタリング解決を決定できない場合にオーバーライドを指定します。このファイルには、JSON 形式のリソースマッピングが含まれています。以下に例を示します。  

```
{
    "environments": [
        {
            "account": "123456789012",
            "region": "us-east-2",
            "resources": {
                "StackA.OldName": "StackB.NewName",
                "StackC.Foo": "StackC.Bar"
            }
        }
    ]
}
```<a name="ref-cli-cmd-refactor-options-revert"></a>

 `--revert <FILE>`   
前のリファクタリングを元に戻します。リソースマッピングを含むオーバーライドファイルを提供する必要があります。  
これにより、前のリファクタリングオペレーションが完全に元に戻されるわけではありません。リファクタリングを完全に元に戻すには、アプリケーションを前の状態にロールバックし、リファクタリングプロセスを再度実行する必要があります。

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

AWS Cloud Development Kit (AWS CDK) コマンドラインインターフェイス (CLI) の `cdk rollback` コマンドを使用して、失敗したスタックまたは一時停止したスタックを AWS CloudFormation デプロイから最後の安定状態にロールバックします。

**注記**  
このコマンドを使用するには、ブートストラップテンプレートの v23 を環境にデプロイする必要があります。詳細については、「[ブートストラップテンプレートのバージョン履歴](bootstrapping-env.md#bootstrap-template-history)」を参照してください。

`cdk deploy` を使用してデプロイするとき、CDK CLI はデフォルトで失敗したデプロイをロールバックします。`--no-rollback` を `cdk deploy` で指定した場合、`cdk rollback` コマンドを使用して失敗したデプロイを手動でロールバックできます。スタックの最後の安定状態にロールバックが開始されます。

## 使用
<a name="ref-cli-cmd-rollback-usage"></a>

```
$ cdk rollback <arguments> <options>
```

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

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

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

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

 `--all <BOOLEAN>`   
CDK アプリのすべてのスタックをロールバックします。  
 *デフォルト値*: `false` <a name="ref-cli-cmd-rollback-options-force"></a>

 `--force, -f <BOOLEAN>`   
`cdk rollback` を使用するとき、一部のリソースがロールバックに失敗する場合があります。このオプションを指定し、すべてのリソースのロールバックを強制します。スタックの各リソースに `--orphan` オプションを提供する場合と同じ動作です。  
 *デフォルト値*: `false` <a name="ref-cli-cmd-rollback-options-help"></a>

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

 `--orphan <LogicalId>`   
`cdk rollback` を使用するとき、一部のリソースがロールバックに失敗する場合があります。この場合、このオプションを使用してリソースのロールバックを強制し、ロールバックに失敗したリソースの論理 ID を指定しようとすることができます。  
このオプションは、1 つのコマンドで複数回指定できます。次の内容はそれを示す例です。  

```
$ cdk rollback MyStack --orphan MyLambdaFunction --orphan MyLambdaFunction2
```
すべてのリソースのロールバックを強制するには、代わりに `--force` オプションを使用します。<a name="ref-cli-cmd-rollback-options-toolkit-stack-name"></a>

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

 `--validate-bootstrap-version <BOOLEAN>`   
ブートストラップスタックバージョンを検証するかどうかを指定します。`--validate-bootstrap-version=false` または `--no-validate-bootsrap-version` を指定してこの動作をオフにします。  
 *デフォルト値*: `true` 

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

CDK アプリを合成し、各スタックの AWS CloudFormation テンプレートを含むクラウドアセンブリを作成します。

クラウドアセンブリは、アプリを AWS 環境にデプロイするために必要なすべてを含むファイルです。例えば、アプリ内の各スタックの CloudFormation テンプレート、ならびにアプリで参照するファイルアセットまたは Docker イメージのコピーが含まれます。

アプリに 1 つのスタックが含まれている場合、あるいは 1 つのスタックが引数として提供されている場合、CloudFormation テンプレートは YAML 形式で標準出力 (`stdout`) にも表示されます。

アプリに複数のスタックが含まれている場合、`cdk synth` はクラウドアセンブリを `cdk.out` に合成します。

## 使用
<a name="ref-cli-cmd-synth-usage"></a>

```
cdk synthesize <arguments> <options>
```

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

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

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

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

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

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

 `--quiet, -q <BOOLEAN>`   
CloudFormation テンプレートを `stdout` に出力しないでください。  
このオプションは、CDK プロジェクトの `cdk.json` ファイルで設定できます。以下に例を示します。  

```
{
   "quiet": true
}
```
 *デフォルト値*: `false` <a name="ref-cli-cmd-synth-options-validation"></a>

 `--validation <BOOLEAN>`   
追加のチェックを実行し、合成後に生成された CloudFormation テンプレートを検証します。  
`validateOnSynth` 属性または `CDK_VALIDATION` 環境変数を使用してこのオプションを設定することもできます。  
 *デフォルト値*: `true` 

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

### 論理 ID MyStackName を使用して CDK スタックのクラウドアセンブリを合成し、CloudFormation テンプレートを stdout に出力します。
<a name="ref-cli-cmd-synth-examples-1"></a>

```
$ cdk synth MyStackName
```

### CDK アプリ内のすべてのスタックのクラウドアセンブリを合成し、cdk.out に保存します。
<a name="ref-cli-cmd-synth-examples-2"></a>

```
$ cdk synth
```

### MyStackName のクラウドアセンブリを合成しますが、依存関係は含めないでください
<a name="ref-cli-cmd-synth-examples-3"></a>

```
$ cdk synth MyStackName --exclusively
```

### MyStackName のクラウドアセンブリを合成しますが、CloudFormation テンプレートを stdout に出力しないでください
<a name="ref-cli-cmd-synth-examples-4"></a>

```
$ cdk synth MyStackName --quiet
```

# `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/*"
  }
}
```