

這是 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>`。  
此引數可在單一命令中提供多次，以在多個環境中執行垃圾回收動作。  
根據預設，CDK CLI 會在您在 CDK 應用程式中參考或作為引數提供的所有環境中執行廢棄項目收集動作。如果您不提供環境，CDK CLI 會從預設來源判斷環境。這些來源包括您使用 `--profile`選項、環境變數或預設 CLI AWS 來源指定的環境。

## 選項
<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 命令。  
此選項可在單一命令中多次提供。  
若要使用 `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 儲存貯體中的一系列資產上執行垃圾回收動作。此範圍包含先前已由 標記`cdk gc`超過 30 天的資產，且已建立 10 天或更早的資產。此命令會在刪除任何資產之前提示手動確認：

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

下列範例會執行在引導堆疊的 Amazon S3 儲存貯體中刪除先前已標記且已使用超過 30 天之資產的動作：

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