cdk gc - AWS 云开发工具包 (AWS CDK) v2

这是 AWS CDK v2 开发人员指南。旧版 CDK v1 于 2022 年 6 月 1 日进入维护阶段,并于 2023 年 6 月 1 日终止支持。

cdk gc

使用 AWS 云开发工具包 (AWS CDK) 命令行界面 (CLI) cdk gc 命令对存储在引导堆栈资源中的未使用资产执行垃圾回收。使用此命令查看、管理和删除不再需要的资产。

对于 Amazon Simple Storage Service (Amazon S3) 资产,CDK CLI 会检查同一环境中现有的 AWS CloudFormation 模板,查看它们是否被引用。如果未被引用,则这些模板将被视为未使用,并符合垃圾回收条件。

警告

正在为 AWS CDK 开发 cdk gc 命令。此命令的当前功能被视为生产就绪,可以安全使用。但是,此命令的范围和功能可能会发生变化。因此,您必须通过提供 unstable=gc 命令选择加入来使用此命令。

使用量

$ cdk gc <arguments> <options>

参数

AWS 环境

要对其执行垃圾回收操作的目标 AWS 环境。

提供环境时,请使用以下格式:aws://<account-id>/<region>。例如 aws://<123456789012>/<us-east-1>

在单个命令中可以多次提供此参数,以便在多个环境中执行垃圾回收操作。

默认情况下,CDK CLI 将对您在 CDK 应用程序中引用或作为参数提供的所有环境执行垃圾回收操作。如果您未提供环境,CDK CLI 将根据默认源确定环境。这些源包括您使用 --profile 选项、环境变量或默认 AWS CLI 源指定的环境。

选项

有关适用于所有 CDK CLI 命令的全局选项的列表,请参阅全局选项

--action <STRING>

垃圾回收期间 cdk gc 对您的资产执行的操作。

  • delete-tagged – 删除所标记日期在您提供的缓冲天数范围内的资产,但不会标记新识别的未使用资产。

  • full – 执行所有垃圾回收操作。这包括删除您提供的缓冲天数范围内的资产,以及标记新识别的未使用资产。

  • print – 在命令提示符下输出未使用的资产数量,但不会对您的 AWS 环境进行任何实际更改。

  • tag – 标记任何新识别的未使用资产,但不会删除您提供的缓冲天数范围内的任何资产。

接受的值delete-taggedfullprinttag

默认值full

--bootstrap-stack-name <STRING>

您的 AWS 环境中 CDK 引导堆栈的名称。如果您自定义了引导堆栈名称,请提供此选项。如果您使用的是默认 CDKToolkit 堆栈名称,则无需提供此选项。

默认值CDKToolkit

--confirm <BOOLEAN>

指定 CDK CLI 在删除任何资产之前是否会请求您手动确认。

指定 false 会自动删除资产而不提示您手动确认。

默认值true

--created-buffer-days <NUMBER>

资产在符合垃圾回收操作条件之前必须存在的天数。

当您提供一个数字时,在指定天数之外不存在的资产将从垃圾回收操作中筛选出来。

默认值1

--help, -h <BOOLEAN>

显示 cdk gc 命令的命令参考信息。

--rollback-buffer-days <NUMBER>

资产在符合垃圾回收操作条件之前必须标记为隔离的天数。

当您提供一个数字时,CDK CLI 会将未使用的资产标记为当前日期,而不是将其删除。CDK CLI 还会检查之前运行 cdk gc 命令时是否已标记任何资产。之前标记过的在您提供的缓冲天数范围内的资产将被删除。

默认值0

--type <STRING>

引导堆栈中要执行垃圾回收操作的引导资源类型。

  • all – 对引导的所有资源执行垃圾回收操作。

  • ecr – 对引导堆栈的 Amazon Elastic Container Registry (Amazon ECR) 存储库中的资产执行垃圾回收操作。

  • s3 – 对引导堆栈的 Amazon S3 存储桶中的资产执行垃圾回收操作。

接受的值allecrs3

默认值all

--unstable <STRING>

允许使用仍在开发中的 CDK CLI 命令。

要使用任何仍在开发中且可能发生变化的 CDK CLI 命令,需要此选项。

可以在单个命令中多次提供此选项。

要使用 cdk gc,请提供 --unstable=gc

示例

基本示例

以下示例提示您手动确认对引导堆栈的 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