这是 AWS CDK v2 开发者指南。较旧的 CDK v1 于 2022 年 6 月 1 日进入维护阶段,并于 2023 年 6 月 1 日终止支持。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
cdk bootstrap
通过将 CDK 引导堆栈(名为)部署到 AWS 环境中CDKToolkit
,为 CDK 部署做好准备。 AWS
引导堆栈是在环境中配置 Amazon S3 存储桶和 Amazon ECR 存储库的 CloudFormation AWS 堆栈。在部署期间, AWS CDK CLI使用这些资源来存储合成的模板和相关资产。
使用量
$
cdk bootstrap
<arguments>
<options>
参数
- AWS 环境
-
要将引导堆栈部署到的目标 AWS 环境,格式如下:
aws://<account-id>/<region>
。例如:
aws://123456789012/us-east-1
可以在单个命令中多次提供此参数,以将引导堆栈部署到多个环境。
默认情况下,CDK CLI 将引导 CDK 应用程序中引用的所有环境,或者根据默认来源确定环境。这可能是使用
--profile
选项、环境变量或默认 AWS CLI 源指定的环境。
Options
有关适用于所有 CDK CLI 命令的全局选项的列表,请参阅全球期权。
--bootstrap-bucket-name, --toolkit-bucket-name, -b
STRING
-
CDK CLI 将使用的 Amazon S3 存储桶的名称。此存储桶将被创建,且当前不得存在。
提供此选项可覆盖 Amazon S3 存储桶的默认名称。
使用此选项时,可能需要自定义合成。要了解更多信息,请参阅自定义 CDK 堆栈合成。
默认值:未定义
--bootstrap-customer-key
BOOLEAN
-
为引导存储桶创建客户主密钥 (CMK)(您需要付费,但可以自定义权限,仅限现代引导)。
此选项与
--bootstrap-kms-key-id
不兼容。默认值:未定义
--bootstrap-kms-key-id
STRING
-
用于SSE-KMS加密 AWS KMS 的主密钥 ID。
提供此选项可覆盖用于加密 Amazon S3 存储桶的默认密 AWS KMS 钥。
此选项与
--bootstrap-customer-key
不兼容。默认值:未定义
--cloudformation-execution-policies
ARRAY
-
应附加到堆栈部署 AWS CloudFormation 期间所担任的部署角色的托管 IAM 策略 ARN。
默认情况下,使用该
AdministratorAccess
策略以完全管理员权限部署堆栈。您可以在单个命令中多次提供此选项。您也可以将多个 ARN 作为单个字符串提供,各个 ARN 之间用逗号分隔。以下是 示例:
$
cdk bootstrap --cloudformation-execution-policies
"arn:aws:iam::aws:policy/AWSLambda_FullAccess,arn:aws:iam::aws:policy/AWSCodeDeployFullAccess"
为避免部署失败,请确保您指定的策略足以满足您将在引导环境中执行的任何部署。
此选项仅适用于现代引导。
重要
现代引导模板可以有效地向
--trust
列表中的任何 AWS 账户授--cloudformation-execution-policies
予隐含的权限。默认情况下,这会扩展对引导账户中任何资源的读写权限。请务必使用您熟悉的策略和可信帐户来配置引导堆栈。默认值:
[]
--custom-permissions-boundary, -cpb
STRING
-
指定要使用的权限边界的名称。
此选项与
--example-permissions-boundary
不兼容。默认值:未定义
--example-permissions-boundary, -epb
BOOLEAN
-
使用提供的权限边界示例 AWS CDK。
此选项与
--custom-permissions-boundary
不兼容。CDK 提供的权限边界策略应视为示例。如果您正在测试该功能,请编辑内容并参考示例策略。将其转换为用于实际部署的新策略(如果尚不存在)。问题是要避免漂移。最有可能的是,权限边界得到维护,并且有专门的约定,包括命名。
有关配置权限(包括使用权限边界)的更多信息,请参阅《安全与安全开发者指南》
。 默认值:未定义
--execute
BOOLEAN
-
配置是否执行更改集。
默认值:
true
--force, -f
BOOLEAN
-
始终引导,即使它会降级引导模板版本。
默认值:
false
--help, -h
BOOLEAN
-
显示命令的
cdk bootstrap
命令参考信息。 --previous-parameters
BOOLEAN
-
对现有参数使用以前的值。
使用一组参数部署引导模板后,必须将此选项设置为,
false
才能在将来的部署中更改任何参数。何时false
,您必须重新提供之前提供的所有参数。默认值:
true
--public-access-block-configuration
BOOLEAN
-
屏蔽由 CDK CLI 创建和使用的 Amazon S3 存储桶上的公共访问配置。
默认值:
true
--qualifier
STRING
-
每个引导堆栈都唯一的字符串值。此值将添加到引导堆栈中资源的物理 ID 中。
通过提供限定符,可以避免在同一环境中配置多个引导堆栈时发生资源名称冲突。
更改限定符时,您的 CDK 应用程序必须将更改后的值传递给堆栈合成器。有关更多信息,请参阅 自定义 CDK 堆栈合成。
默认值:
hnb659fds
。这个值没有意义。 --show-template
BOOLEAN
-
与其进行引导,不如将当前的引导模板打印到标准输出 ()。
stdout
然后,您可以根据需要复制和自定义模板。默认值:
false
-
要添加到引导堆栈的标签,格式为。
KEY=VALUE
默认值:
[]
--template
STRING
-
使用给定文件中的模板而不是内置的模板。
--termination-protection
BOOLEAN
-
在引导堆栈上切换 AWS CloudFormation 终止保护。
何时
true
,终止保护处于启用状态。这样可以防止引导堆栈被意外删除。要了解有关终止保护的更多信息,请参阅《AWS CloudFormation 用户指南》中的保护堆栈不被删除。
默认值:未定义
--toolkit-stack-name
STRING
-
要创建的引导堆栈的名称。
默认情况下,
CDKToolkit
将名为的堆栈cdk bootstrap
部署到指定 AWS 环境中。使用此选项为您的引导堆栈提供不同的名称。默认值:
CDKToolkit
必需:是
--trust
ARRAY
-
在此环境中执行部署时应信任的 AWS 账户 ID。
执行引导的帐户将始终受到信任。
此选项要求您还提供
--cloudformation-execution-policies
。您可以在单个命令中多次提供此选项。
此选项仅适用于现代引导。
要将可信帐户添加到现有的引导程序堆栈,您必须指定所有要信任的帐户,包括您之前可能提供的帐户。如果您只提供新的可信账户,则以前信任的账户将被删除。
以下是信任两个账户的示例:
$
cdk bootstrap
⏳ 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.aws://123456789012/us-west-2
--trust234567890123
--trust987654321098
--cloudformation-execution-policiesarn:aws:iam::aws:policy/AdministratorAccess
重要
现代引导模板可以有效地向
--trust
列表中的任何 AWS 账户授--cloudformation-execution-policies
予隐含的权限。默认情况下,这会扩展对引导账户中任何资源的读写权限。请务必使用您熟悉的策略和可信帐户来配置引导堆栈。默认值:
[]
--trust-for-lookup
ARRAY
-
在此环境中查找值时应信任的 AWS 账户 ID。
使用此选项可以向账户授予合成将部署到环境中的堆栈的权限,而无需实际授予他们直接部署这些堆栈的权限。
您可以在单个命令中多次提供此选项。
此选项仅适用于现代引导。
默认值:
[]
示例
引导 prod 配置文件中指定的 AWS 环境
$
cdk bootstrap --profile prod
将引导堆栈部署到环境 foo 和 bar
$
cdk bootstrap --app='node bin/main.js' foo bar
导出引导模板进行自定义
如果您有引导模板无法满足的特定要求,则可以对其进行自定义以满足您的需求。
您可以使用导出引导模板、对其进行修改和部署。 AWS CloudFormation以下是导出现有模板的示例:
$
cdk bootstrap --show-template > bootstrap-template.yaml
您也可以让 CDK CLI 使用自定义模板。以下是 示例:
$
cdk bootstrap --template my-bootstrap-template.yaml
具有权限边界的引导。然后,移除该权限边界
要使用自定义权限边界进行引导,我们运行以下命令:
$
cdk bootstrap --custom-permissions-boundary my-permissions-boundary
要移除权限边界,我们运行以下命令:
$
cdk bootstrap --no-previous-parameters
使用限定符区分为开发环境创建的资源
$
cdk bootstrap --qualifier dev2024