CDK bootstrap 是做什么的
CDK bootstrap 是我们可以使用 CDK CLI 访问的命令。
$ npx aws-cdk bootstrap
cdk bootstrap 命令提供一个名为 CDKToolkit
的 CloudFormation 堆栈。 此 CloudFormation 堆栈特定于我们的 CDK 堆栈配置的环境(区域和帐户)。
每个 CDK 应用程序都属于特定的环境。
环境由帐号和区域组成,CDK 应用程序将在其中部署。
我们在实例化 CDK 堆栈时为 CDK 项目设置环境:
const app = new cdk.App();
const myStack = new MyCdkStack(app, 'my-cdk-stack', {
stackName: `my-cdk-stack`,
// 👇 设置环境变量
env: {
region: process.env.CDK_DEFAULT_REGION,
account: process.env.CDK_DEFAULT_ACCOUNT,
},
});
环境的初始化过程包括:
- 配置一个 S3 存储桶,我们的资源(即 Lambda 函数代码、CloudFormation 模板)将存储在其中
- 配置 CDK CLI 需要的 IAM 角色以便在环境中执行部署 为了部署到多个环境,我们必须引导每个环境。
CDKToolkit 堆栈提供了一个 S3 存储桶,用于存储 CDK 部署所需的资源(即 Lambda 代码、CloudFormation 模板等)。
在 S3 存储桶中,我们将有一个 assets
“目录”:
assets 目录将包含我们的压缩文件:
对于具有单个 lambda 函数的简单 CDK 项目,我们的文件资源包含 Lambda 的 index.js 处理程序代码。
使用 CDK bootstrap
为了引导我们的默认帐户和区域,我们可以运行 cdk bootstrap 命令。
$ npx aws-cdk bootstrap
我们只需要对每个环境(区域和帐户)使用一次 bootstrap 命令。
如果我们多次使用该命令,CDK CLI 将检查我们的 CDKToolkit 堆栈是否必须更新。 如有必要,将更新堆栈。 如果不是,则运行 bootstrap 命令什么也不做。
我们还可以指定其他环境来引导:
$ npx aws-cdk bootstrap --profile my-profile
$ npx aws-cdk bootstrap ACCOUNT_NUMBER/REGION
$ npx aws-cdk bootstrap 123456789/us-east-1
总结
CDK bootstrap 命令提供一个名为 CDKToolkit 的 CloudFormation 堆栈。
该堆栈包含一个 S3 存储桶,用于存储部署所需的文件资源(即 Lambda 函数代码、CloudFormation 模板)。
我们必须分别引导每个环境(帐户和区域)。