Troposphere Добавьте S3 LifecycleRule к классу LifecycleConfiguration
Подпись метода: я пытался изменить реализацию несколькими различными способами, но это не помогло.
import troposphere.s3 as S3
class LifecycleConfiguration(AWSProperty):
props = {
'Rules': ([LifecycleRule], True),
}
class LifecycleRule(AWSProperty):
props = {
'ExpirationDate': (basestring, False),
'ExpirationInDays': (positive_integer, False),
'Id': (basestring, False),
'Prefix': (basestring, False),
'Status': (basestring, True),
'Transition': (LifecycleRuleTransition, False),
}
Тест Имплиментация
myLifecycleConfiguration = S3.LifecycleConfiguration(title='myLifecycleConfiguration',
Rules=S3.LifecycleRule(title="check"))
Подпись ошибки
TypeError: Rules is <class 'troposphere.s3.LifecycleRule'>, expected [<class 'troposphere.s3.LifecycleRule'>]
1 ответ
Это нормально, и сообщение об ошибке сообщает вам, в чем проблема: свойство 'Rules' в LifecycleConfiguration должно быть списком объектов LifecycleRule (см. В коде: 'Rules': ([LifecycleRule], True),)
Но когда вы создаете S3.LifecycleConfiguration, вы вместо этого передаете свойству "Rules" один объект LifecycleRule.
Вы должны написать:
myLifecycleConfiguration = S3.LifecycleConfiguration(
title='myLifecycleConfiguration',Rules=[S3.LifecycleRule(title="check")])