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")])
Другие вопросы по тегам