如何使用 AWS CDK 设置更多 AWS dynamoDb table 属性

How to set more AWS dynamoDb table properties using AWS CDK

我是 AWS 的新手,我一直在阅读 dynamoDb SDK 文档,创建 Table 时可以指定的属性远远超过创建 [=32] 时传递的属性=] 使用 AWS CDK。

SDK 示例:

var AWS = require("aws-sdk");

AWS.config.update({
  region: "us-west-2",
  endpoint: "http://localhost:8000"
});

var dynamodb = new AWS.DynamoDB();

var params = {
    TableName : "Movies",
    KeySchema: [       
        { AttributeName: "year", KeyType: "HASH"},  //Partition key
        { AttributeName: "title", KeyType: "RANGE" }  //Sort key
    ],
    AttributeDefinitions: [       
        { AttributeName: "year", AttributeType: "N" },
        { AttributeName: "title", AttributeType: "S" }
    ],
    ProvisionedThroughput: {       
        ReadCapacityUnits: 10, 
        WriteCapacityUnits: 10
    }
};

dynamodb.createTable(params, function(err, data) {
    if (err) {
        console.error("Unable to create table. Error JSON:", JSON.stringify(err, null, 2));
    } else {
        console.log("Created table. Table description JSON:", JSON.stringify(data, null, 2));
    }
});

CDK 示例:

import * as dynamodb from '@aws-cdk/aws-dynamodb';


const table = new dynamodb.Table(this, 'Hits', {
    partitionKey: { name: 'path', type: dynamodb.AttributeType.STRING }
});

这里是你可以设置的所有道具,更高级别table相关设置:

https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-dynamodb.Table.html

例如,如果我想在 CDK 中设置配置吞吐量,我该怎么做?或设置 AttributeDefinitions 或索引?

我是否等待单元 table 创建完成,然后通过 SDK 更新Table 调用修改 table 属性?

https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB.html#updateTable-property

Billing Mode

DynamoDB supports two billing modes:

PROVISIONED - the default mode where the table and global secondary indexes have configured read and write capacity.

PAY_PER_REQUEST - on-demand pricing and scaling. You only pay for what you use and there is no read and write capacity for the table or its global secondary indexes.

查看计费模式属性: cdk docs

Dynamodb 几乎完全在 CDK 中实现,但如果您不是很熟悉,有些属性会有点难以找到。

计费模式是 属性 预配置或按需 read/write 容量。它是一个常量,所以它会像

这样使用
billingMode: aws_dynamodb.BillingMode.PAY_PER_REQUEST

使用 CDK,您通常需要深入研究文档才能找到您想要的内容,但对于主流服务 - Lambda、S3、Dynamo - 这些都已在 CDK 中完全实现。

并且在任何情况下,对于可能不是的其他服务,您可以使用任何以 Cfn 开头的函数,因为这些是逃生舱口,允许您基本上实现直接的云形成模板 jsons cdk