Как использовать фильтры тегов s3 LifecycleRule в python AWS CDK

#amazon-web-services #aws-cdk

Вопрос:

В AWS CDK с Python, как вы используете tag_filters параметр aws_s3.LifecycleRule ?

Вот ссылка на документацию: https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_s3/LifecycleRule.html#aws_cdk.aws_s3.LifecycleRule

В документации нет примеров того, как на самом деле предоставлять теги внутри tag_filters.

Вот некоторые из вещей, которые я пробовал:

Попытка
                 s3.LifecycleRule(
                    id="1 Day TTL",
                    expiration=core.Duration.days(1),
                    tag_filters=[
                        "time_to_expire_days=1"
                    ]
                ),
 

Создает метку 0: time_to_expire_days=1

Попытка
                 s3.LifecycleRule(
                    id="1 Day TTL",
                    expiration=core.Duration.days(1),
                    tag_filters=[
                        "time_to_expire_days", 
                        "1"
                    ]
                ),
 

Создает метку 0: time_to_expire_days, 1: 1

Попытка
                 s3.LifecycleRule(
                    id="1 Day TTL",
                    expiration=core.Duration.days(1),
                    tag_filters=[
                        { 'Key': 'string', 'Value': 'string'  }
                    ]
                ),
 

Не компилируется

Попытка
                 s3.LifecycleRule(
                    id="1 Day TTL",
                    expiration=core.Duration.days(1),
                    tag_filters=[
                        "{ 'Key': 'string', 'Value': 'string'  }"
                    ]
                ),
 

Создает метку 0: { 'Key': 'string', 'Value': 'string' }

Попытка
                 s3.LifecycleRule(
                    id="1 Day TTL",
                    expiration=core.Duration.days(1),
                    tag_filters=[
                        "time_to_expire_days: 1"
                    ]
                ),
 

Создает метку 0: time_to_expire_days: 1

Есть какие-нибудь мысли о том, что еще я мог бы попробовать? Я не могу понять это из документов и не могу найти никаких примеров.

Ответ №1:

Понял это!

Ответ был таков… RTFM.

Я вернулся и более внимательно прочитал документы. фильтры tag_filters описываются следующим (Optional[Mapping[str, Any]]) образом . Ссылаясь на другой рабочий код, описанный таким образом, я пришел к правильному решению.

Вот рабочий код:

                 s3.LifecycleRule(
                    id="1 Day TTL",
                    expiration=core.Duration.days(1),
                    tag_filters={ 
                        'Key': 'time_to_expire_days', 
                        'Value': '1' 
                    }
                ),
 

Снимок экрана с S3

введите описание изображения здесь