gpt4 book ai didi

amazon-web-services - 有没有办法使用AWS CDK指定cloudformation堆栈删除策略?

转载 作者:行者123 更新时间:2023-12-03 07:12:22 24 4
gpt4 key购买 nike

我已经使用 CDK 创建了一个 VPC,现在需要更改子网和 NAT 网关的数量,而不破坏其中的(现已在生产中)ec2 实例或在其他中列入白名单的(现已在生产中)EIP系统。

我使用 CDK 进行了尝试,它试图破坏 VPC 并重新配置所有内容,这在生产中是不受欢迎的。

由于显然不可能通过更改堆栈定义来完成我想要的操作,因此我需要摆脱堆栈,而不删除 VPC。

https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.RemovalPolicy.html

我在这里找到了有关 CDK 中 RemovalPoliy 枚举的文档,但没有说明可以在哪里应用它。 Google 搜索结果仅引用了 S3 和 RDS,即使此枚举位于 CDK 核心中。我尝试将其应用于以下 CDK 资源:堆栈、vpc、安全组等,但这些构造都不接受removalPolicy 参数。

例如:

const vpc = new ec2.Vpc(this, 'PRODVPC', {
maxAzs: 2,
removalPolicy: cdk.RemovalPolicy.RETAIN
});

new VPCPRODStack(app, 'RDVPCPRODStack', {
env: {region: 'ca-central-1', account: '12345'},
removalPolicy: cdk.RemovalPolicy.RETAIN
});


我错过了什么?是否可以在堆栈级别使用 CDK 设置 cloudformation 删除策略?

最佳答案

我认为您请求的是 https://github.com/aws/aws-cdk-rfcs/issues/72

目前

例如:如果我想对我的所有 cfn 资源应用销毁策略

从“@aws-cdk/core”导入{CfnResource、IAspect、IConstruct、RemovalPolicy};

apply_destroy_removal_policy_aspect


export class ApplyDestroyRemovalPolicyAspect implements IAspect {
public visit(construct: IConstruct): void {
if (CfnResource.isCfnResource(construct)) {
construct.applyRemovalPolicy(RemovalPolicy.DESTROY);
}
}
}

并通过堆栈将其应用到所有资源

const destroyResourcesAspect = new ApplyDestroyRemovalPolicyAspect();

core.Aspects.of(safetyStack).add(destroyResourcesAspect));

我见过很多人使用它来确保它会销毁作为 CDK 中个人堆栈的一部分创建的任何资源。

关于amazon-web-services - 有没有办法使用AWS CDK指定cloudformation堆栈删除策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62142524/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com