在DynamoDB

时间:2017-09-07 05:54:23

标签: amazon-dynamodb

是否可以在DynamoDB上强制执行表级架构验证

例如,请考虑下表

aws dynamodb create-table\
      --table-name spaces-tabs-votes\
      --attribute-definitions AttributeName=id,AttributeType=S
      --key-schema AttributeName=id,KeyType=HASH
      --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1
      --endpoint-url http://localhost:8000

在时间T,表格如下所示(请注意,votes的类型为N

$ aws dynamodb scan --table-name spaces-tabs-votes
{
    "Count": 2,
    "Items": [
        {
            "votes": {
                "N": "104"
            },
            "id": {
                "S": "space"
            }
        },
        {
            "votes": {
                "N": "60"
            },
            "id": {
                "S": "tab"
            }
        }
    ],
    "ScannedCount": 2,
    "ConsumedCapacity": null
}

在时间T + 1,我能够将votes的类型从N更改为S。我所要做的就是putvotes设置为字符串1而不是增加现有的N值。

$ aws dynamodb scan --table-name spaces-tabs-votes
{
    "Count": 2,
    "Items": [
        {
            "votes": {
                "N": "104"
            },
            "id": {
                "S": "space"
            }
        },
        {
            "votes": {
                "S": "1"
            },
            "id": {
                "S": "tab"
            }
        }
    ],
    "ScannedCount": 2,
    "ConsumedCapacity": null
}

我想要架构强制执行 - 即,如果我尝试发布到DynamoDB的记录不符合架构,我希望它抛出异常。它有可能吗?

0 个答案:

没有答案