#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'
}
),