【问题标题】:'cdk destroy' is not working as intended or I am not understanding it correctly?'cdk destroy' 没有按预期工作或者我没有正确理解它?
【发布时间】:2019-06-28 10:06:48
【问题描述】:

这是我的演示堆栈,

export class HelloCdkStack extends cdk.Stack {
  constructor(parent: cdk.App, id: string, props?: cdk.StackProps) {
    super(parent, id, props);
    new s3.Bucket(this, 'MyFirstBucket', {
      versioned: true,
      encryption: s3.BucketEncryption.KmsManaged,
    });
  }
}

'cdk deploy' 创建一个新的存储桶,但是当我执行 'cdk destroy' 时它不会删除存储桶。我做错了什么吗?

【问题讨论】:

    标签: aws-cdk


    【解决方案1】:

    默认情况下,S3 存储桶在删除堆栈时配置为“孤立”。将removalPolicy 设置为Destroy 将在删除时物理销毁存储桶。

    【讨论】:

    【解决方案2】:

    如果您需要自动销毁包含文件的存储桶,请查看此 CDK 构造:https://www.npmjs.com/package/@mobileposse/auto-delete-bucket

    如果您需要自动销毁预期为空的存储桶,请使用标准存储桶并将removingPolicy 设置为DESTROY。 https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html#removalpolicy

    【讨论】:

      【解决方案3】:

      您可以将destroy设置为removalPolicy,如果桶为空,它将删除桶:https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html#removalpolicy

      如果你想销毁非空桶,你也应该将autoDeleteObjects属性设置为truehttps://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html#autodeleteobjects

      【讨论】:

      • 这是 CDK1 和 2 最新版本的正确答案
      【解决方案4】:

      在python中,在getting started之后,可以在实例化s3.Bucket对象时添加removal_policy=cdk.RemovalPolicy.DESTROY参数,这样cdk destroy上的bucket就会被删除。

      from aws_cdk import core as cdk
      from aws_cdk import aws_s3 as s3
      
      
      class HelloCdkStack(cdk.Stack):
      
          def __init__(self, scope: cdk.Construct, construct_id: str, **kwargs) -> None:
              super().__init__(scope, construct_id, **kwargs)
              bucket = s3.Bucket(self,
                                 "MyFirstBucket",
                                 versioned=True,
                                 removal_policy=cdk.RemovalPolicy.DESTROY)  # delete bucket on destroy
      

      【讨论】:

        【解决方案5】:

        就我而言,问题是cdk 试图获取不同的帐户凭据。添加--verbose-v 标志以查看内部是否抛出任何异常。

        很遗憾,异常没有被记录到 stdout 或 stderr(任何工具都应该这样)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-08-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-17
          • 2010-10-30
          相关资源
          最近更新 更多