

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

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

# `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
```