0

我正在尝试为新的 DynamoDB 表创建 JSON Cloudformation 模板。我正在尝试设置 TimeToLiveSpecification,但出现错误并且对流层文档不清楚。

我有

dynamoDB = t.add_resource(Table(
    "myDynamoTable",
    TableName=Join("-", [Ref(env), "dynamo-table"]),
    AttributeDefinitions=[
        AttributeDefinition(
            AttributeName=Ref(hashkeyname),
            AttributeType=Ref(hashkeytype)
        ),
        AttributeDefinition(
            AttributeName="sqsMessageId",
            AttributeType="S"
        ),
        AttributeDefinition(
            AttributeName="system",
            AttributeType="S"
        ),`enter code here`
        AttributeDefinition(
            AttributeName=Ref(sortkeyname),
            AttributeType=Ref(sortkeytype)
        ),
        AttributeDefinition(
            AttributeName="text",
            AttributeType="S"
        ),
        AttributeDefinition(
            AttributeName="ttl",
            AttributeType="N"
        )
    ],
    KeySchema=[
        KeySchema(
            AttributeName=Ref(hashkeyname),
            KeyType="HASH"
        ),
        KeySchema(
            AttributeName=Ref(sortkeyname),
            KeyType="RANGE"
        )
    ],
    TimeToLiveSpecification="WHAT GOES HERE???"
))

我什至尝试将其放入准备好的格式化 JSON 中,但它不起作用。我试过了:

TimeToLiveSpecification=AWSProperty(AttributeName="ttl", Enabled=True)

TimeToLiveSpecification=AttributeDefinition(AttributeName="ttl", Enabled=True)

TimeToLiveSpecification=TimeToLiveSchema(AttributeName="ttl", Enabled=True)(用这个抓住稻草)。

4

2 回答 2

2

使用此处显示的 TimeToLiveSpecification 试试这个(未经测试):

TimeToLiveSpecification=TimeToLiveSpecification(
    AttributeName="fill this in",
    Enabled=True,
),
于 2021-01-28T15:07:20.533 回答
1

最后我去了

ttlspec = t.add_resource(TimeToLiveSpecification(
    "ttlspec",
    AttributeName="ttl",
    Enabled=True
))

然后

dynamoDB = t.add_resource(Table(
    "myDynamoTable",
    TableName=Join("-", [Ref(env), "dynamo-table"]),
    AttributeDefinitions=[
        AttributeDefinition(
            AttributeName=Ref(hashkeyname),
            AttributeType=Ref(hashkeytype)
        ),
        AttributeDefinition(
            AttributeName="sqsMessageId",
            AttributeType="S"
        ),
        AttributeDefinition(
            AttributeName="system",
            AttributeType="S"
        ),`enter code here`
        AttributeDefinition(
            AttributeName=Ref(sortkeyname),
            AttributeType=Ref(sortkeytype)
        ),
        AttributeDefinition(
            AttributeName="text",
            AttributeType="S"
        ),
        AttributeDefinition(
            AttributeName="ttl",
            AttributeType="N"
        )
    ],
    KeySchema=[
        KeySchema(
            AttributeName=Ref(hashkeyname),
            KeyType="HASH"
        ),
        KeySchema(
            AttributeName=Ref(sortkeyname),
            KeyType="RANGE"
        )
    ],
    TimeToLiveSpecification=Ref(ttlspec)
))

TimeToLiveSpecification 是一个类,需要在顶部导入。文档在这里

于 2021-01-28T15:32:04.800 回答