cdk destroy не работает должным образом, или я неправильно его понимаю?

Вот мой демонстрационный стек,

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', она не удаляет корзину. Я что-то не так делаю?


person Atish Narlawar    schedule 04.02.2019    source источник


Ответы (4)


По умолчанию сегменты S3 конфигурируются как «осиротевшие» при удалении стека. Настройка removalPolicy to Destroy физически уничтожит корзину при удалении.

person Debora Ito    schedule 05.02.2019
comment
Также обратитесь к этому документу: docs.aws .amazon.com / cdk / api / latest / docs / - person woodykiddy; 26.07.2019
comment
Я думаю, он удалится только в том случае, если установлен параметр «Уничтожение» И ведро пусто. - person Tim Ker; 04.08.2019
comment
Да, эта настройка уничтожит ведро, но ТОЛЬКО если оно пустое. Запрос функции для непустых сегментов отслеживается здесь: github.com/aws/aws- cdk / issues / 3297 - person Keshav Potluri; 08.05.2020

Если вам нужно автоматически уничтожить корзину с файлами в ней, ознакомьтесь с этой конструкцией CDK: https://www.npmjs.com/package/@mobileposse/auto-delete-bucket

Если вам нужно автоматически уничтожить ведро, которое, как ожидается, будет пустым, используйте стандартное ведро и установите для параметра removePolicy значение DESTROY. https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html#removalpolicy.

person wprl    schedule 28.01.2020

Вы можете установить destroy на removalPolicy, он удалит ведро, если оно пустое: https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html#removepolicy

Если вы хотите уничтожить даже непустое ведро, вы также должны установить для свойства autoDeleteObjects значение true: https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html#autodeleteobjects

person Rustem Zinnatullin    schedule 29.03.2021

В python, следуя началу работы, вы можете добавить removal_policy=cdk.RemovalPolicy.DESTROY при создании экземпляра объекта s3.Bucket, поэтому сегмент будет удален на cdk destroy.

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
person Constantin De La Roche    schedule 17.05.2021