0

メソッド シグネチャ: 実装をいくつか別の方法で変更しようとしましたが、役に立ちません。

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'>]
4

1 に答える 1

1

それは正常であり、エラー メッセージは問題が何であるかを示しています: LifecycleConfiguration の 'Rules' プロパティは LifecycleRule オブジェクトのリストであると予想されます (コードを参照してください: 'Rules': ([LifecycleRule], True), )

ただし、S3.LifecycleConfiguration を作成するときは、代わりに「Rules」プロパティに単一の LifecycleRule オブジェクトをフィードします。

あなたは書くべきです:

    myLifecycleConfiguration = S3.LifecycleConfiguration(
      title='myLifecycleConfiguration',Rules=[S3.LifecycleRule(title="check")])
于 2014-12-28T22:43:07.830 に答える