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



我是AWS的新手,我一直在阅读dynamoDb SDK文档,在创建表时可以指定的属性远远超过使用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 }
});

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

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

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

我是否等待单位表创建完成,然后通过SDK UpdateTable调用修改表属性?

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

计费模式

DynamoDB支持两种计费模式:

PROVISIONED—表和全局从的默认模式

索引已配置读写容量。PAY_PER_REQUEST -按需定价和扩展。你只付什么钱使用时,表或其没有读写能力全局二级索引。

查看Billing Mode属性:cdk文档

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

Billing Mode是已供应或按需读/写容量的属性。它是一个常量,所以它可以像

这样使用
billingMode: aws_dynamodb.BillingMode.PAY_PER_REQUEST

对于CDK,你经常需要深入到文档中寻找你想要的东西,但是对于主流服务- Lambda, S3, Dynamo -这些都是在CDK中完全实现的。

无论如何,对于其他服务,你可以使用任何以Cfn开头的函数因为这些是逃生舱口允许你从cdk实现直接的云形成模板json

相关内容

  • 没有找到相关文章

最新更新