sma*_*rds 12 amazon-web-services aws-cloudformation aws-cdk
我有一个非常简单的 cdk 项目:
import * as cdk from '@aws-cdk/core';
import { TestStack } from '../lib/test-stack';
const app = new cdk.App();
new TestStack(app, 'TestStack');
Run Code Online (Sandbox Code Playgroud)
我可以使用 cdk deploy 轻松部署堆栈,并且堆栈的名称在 AWS 上为“TestStack”。到目前为止,一切都很好。但是我想控制cloudformation中堆栈的名称。有什么方法可以 fdo cdk 部署并更改 AWS 中堆栈的默认名称吗?
像 cdk deploy --stack-name SomeName 这样的东西?((堆栈名称是一个组成的命令))
我想知道这一点,因为我希望能够构建一个部署系统,该系统可以从单个 cdk 项目构建多个堆栈。根据输入参数,每个堆栈都会略有不同。就像是
cdk deploy --stackName Stack1 --parameters parameters1
cdk deploy --stackName Stack2 --parameters parameters2
cdk deploy --stackName Stack3 --parameters parameters3
Run Code Online (Sandbox Code Playgroud)
我最终将在 AWS 中同时拥有 Stack1、Stack2 和 Stack3。
小智 11
我是根据上下文做的
//Get data from Conext
const stackName = app.node.tryGetContext('stackName')
new TestCdkProjectStack(app, 'TestCdkProjectStack', {stackName: stackName});
Run Code Online (Sandbox Code Playgroud)
使用--context选项运行 CDK 部署:
cdk deploy --context stackName=YourStack
Run Code Online (Sandbox Code Playgroud)
您还可以在cdk.json文件中添加上下文数据
我们可以将 stackName 作为属性传递,如果不传递,则使用 IdHelloCdkStack作为堆栈名称。
我们可以将类似 stackName 的内容传递process.env.STACK_NAME给 stackName 并从命令行覆盖它
const app = new cdk.App();
const env = { account: CRM, region: AWS_REGION };
new HelloCdkStack(app, "HelloCdkStack", {
env,
stackName: process.env.STACK_NAME,
});
Run Code Online (Sandbox Code Playgroud)
然后
export STACK_NAME=MyStack1;cdk deploy
OR
export STACK_NAME=MyStack2;cdk deploy --stackName MyStack2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8521 次 |
| 最近记录: |