从CLI创建全局二级索引

时间:2018-02-21 15:38:35

标签: amazon-dynamodb

我希望有人可以帮助我使用Dynamo CLI语法。

我无法从CLI创建全局二级索引。

我的脚本在索引按预期工作之前:

aws dynamodb create-table \
--table-name a.b.c \
--attribute-definitions \
  AttributeName=TransactionID,AttributeType=S \
--key-schema \
  AttributeName=TransactionID,KeyType=HASH \
--provisioned-throughput\
  ReadCapacityUnits=5,WriteCapacityUnits=5 \
--endpoint-url $DATABASE_ENDPOINT_URL

当我添加索引时,出现错误:

aws dynamodb create-table \
--table-name a.b.c \
--attribute-definitions \
  AttributeName=TransactionID,AttributeType=S \
  AttributeName=BatchID,AttributeType=S \
  AttributeName=TransactionStatus,AttributeType=S \
--key-schema \
  AttributeName=TransactionID,KeyType=HASH \
--global-secondary-indexes IndexName=a.b.indexName,\
  KeySchema=["{AttributeName=BatchID,KeyType=HASH}","{AttributeName=TransactionStatus,KeyType=RANGE}"],\
  Projection="{ProjectionType=KEYS_ONLY}",\
  ProvisionedThroughput="{ReadCapacityUnits=5,WriteCapacityUnits=5}"\
--provisioned-throughput\
  ReadCapacityUnits=5,WriteCapacityUnits=5 \
--endpoint-url $DATABASE_ENDPOINT_URL

我收到的错误是:

Error parsing parameter '--global-secondary-indexes': Expected: '<second>', received: '<none>' for input: IndexName=a.b.indexName,

这似乎与示例相符。我也试过使用基于其他问题的一些例子的文件,但也没有运气。

1 个答案:

答案 0 :(得分:4)

将所有内容放在一行上修复它。

这有效:

    public List<Employee> findBy
                         FirstName
                         AndLastName
                         AndAgeBetween
                         AndBirthdayBefore
                         (String firstName, String lastName, Integer minAge, Integer maxAge, Date maxBirthday);