javascript - AWS dynamodb 使用 "on-demand"ProvisionedThroughput 创建表

标签 javascript node.js amazon-web-services amazon-dynamodb

如何使用 Node SDK 创建 DynamoDB 表并将“按需”指定为 ProvisionedThroughput?当我省略 ProvisionedThroughput 选项时出现此错误:

ValidationException: One or more parameter values were invalid: ReadCapacityUnits and WriteCapacityUnits must both be specified when BillingMode is PROVISIONED
    at Request.extractError (/Users/james/projects/ears/server/node_modules/aws-sdk/lib/protocol/json.js:51:27)
    at Request.callListeners (/Users/james/projects/ears/server/node_modules/aws-sdk/lib/sequential_executor.js:106:20)
    at Request.emit (/Users/james/projects/ears/server/node_modules/aws-sdk/lib/sequential_executor.js:78:10)
    at Request.emit (/Users/james/projects/ears/server/node_modules/aws-sdk/lib/request.js:683:14)
    at Request.transition (/Users/james/projects/ears/server/node_modules/aws-sdk/lib/request.js:22:10)
    at AcceptorStateMachine.runTo (/Users/james/projects/ears/server/node_modules/aws-sdk/lib/state_machine.js:14:12)
    at /Users/james/projects/ears/server/node_modules/aws-sdk/lib/state_machine.js:26:10
    at Request.<anonymous> (/Users/james/projects/ears/server/node_modules/aws-sdk/lib/request.js:38:9)
    at Request.<anonymous> (/Users/james/projects/ears/server/node_modules/aws-sdk/lib/request.js:685:12)
    at Request.callListeners (/Users/james/projects/ears/server/node_modules/aws-sdk/lib/sequential_executor.js:116:18)
    at Request.emit (/Users/james/projects/ears/server/node_modules/aws-sdk/lib/sequential_executor.js:78:10)
    at Request.emit (/Users/james/projects/ears/server/node_modules/aws-sdk/lib/request.js:683:14)
    at Request.transition (/Users/james/projects/ears/server/node_modules/aws-sdk/lib/request.js:22:10)
    at AcceptorStateMachine.runTo (/Users/james/projects/ears/server/node_modules/aws-sdk/lib/state_machine.js:14:12)
    at /Users/james/projects/ears/server/node_modules/aws-sdk/lib/state_machine.js:26:10
    at Request.<anonymous> (/Users/james/projects/ears/server/node_modules/aws-sdk/lib/request.js:38:9)

这是我尝试创建表格的代码:

await dynamodb
  .createTable({
    TableName: `${studyName}StudyCodeDB`,
    AttributeDefinitions: [
      {
        AttributeName: 'studyCode',
        AttributeType: 'S',
      },
      {
        AttributeName: 'studyCodeCreationDate',
        AttributeType: 'N',
      },
    ],
    KeySchema: [
      {
        AttributeName: 'studyCode',
        KeyType: 'HASH',
      },
      {
        AttributeName: 'studyCodeCreationDate',
        KeyType: 'RANGE',
      },
    ],
  })
  .promise();

最佳答案

您必须设置 BillingMode: PAY_PER_REQUEST 以用于按需吞吐量。否则默认设置为 PROVISIONED ( documentation )。

您的代码应如下所示:

await dynamodb
  .createTable({
    TableName: `${studyName}StudyCodeDB`,
    BillingMode: 'PAY_PER_REQUEST',
    AttributeDefinitions: [
      {
        AttributeName: 'studyCode',
        AttributeType: 'S',
      },
      {
        AttributeName: 'studyCodeCreationDate',
        AttributeType: 'N',
      },
    ],
    KeySchema: [
      {
        AttributeName: 'studyCode',
        KeyType: 'HASH',
      },
      {
        AttributeName: 'studyCodeCreationDate',
        KeyType: 'RANGE',
      },
    ],
  })
  .promise();

关于javascript - AWS dynamodb 使用 "on-demand"ProvisionedThroughput 创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56118899/

相关文章:

java - 从AWS s3文件读取N个字节没有读取N个字节

javascript - 如何使用 jquery 将更改保存到文本区域

javascript - 在 Google 电子表格中删除坐标或范围无效的图表

node.js - nodejs dns 错误getaddrinfo ENOTFOUND

node.js - Mongodb查询加入两个集合

javascript - Meteor 助手出错

url - 亚马逊 S3 : Access Denied for URL using symbols

javascript - 从 firefox 插件发出异步 xml 请求

javascript - 如何找出YouTube上关注者的确切人数?

amazon-web-services - gocql.createSession : Consistency level ANY is not supported for this operation