AWS QLDB目前已经支持多区域部署。您可以在多个地理区域内使用QLDB服务,以获得更高的可用性和冗余性。以下是在两个区域中部署QLDB的代码示例:
您可以使用AWS CloudFormation模板在两个不同的区域中创建QLDB。
以下示例代码指示CloudFormation在us-east-1和eu-west-2地区创建一个QLDB:
Resources:
MyQLDB:
Type: 'AWS::QLDB::Ledger'
Properties:
PermissionsMode: ALLOW_ALL
DeletionProtection: 'true'
Name: multi-region-ledger
Tags:
- Key: 'Name'
Value: multi-region-ledger
Region: us-east-1
MyQLDBSecondaryRegion:
Type: 'AWS::QLDB::Ledger'
Properties:
PermissionsMode: ALLOW_ALL
DeletionProtection: 'true'
Name: multi-region-ledger
Tags:
- Key: 'Name'
Value: multi-region-ledger
Region: eu-west-2
您可以使用AWS SDK在您的应用程序中使用多个QLDB实例。以下示例代码向两个QLDB实例写入和读取数据:
const AWS = require('aws-sdk');
var qldb_us = new AWS.QLDB();
qldb_us.config.update({region: 'us-east-1'});
var qldb_eu = new AWS.QLDB();
qldb_eu.config.update({region: 'eu-west-2'});
async function writeToQLDB(ledger, tableName, data) {
var params = {
TableName: tableName,
Records: data,
};
await ledger.executeStatement({ statement: `INSERT INTO ${tableName} ?`, parameters: [params] }).promise();
}
async function readFromQLDB(ledger, tableName) {
var result = await ledger.executeStatement({ statement: `SELECT * FROM ${tableName}` }).promise();
return result.records;
}
async function writeToMultiRegionQLDB() {
await writeToQLDB(qldb_us, 'myTable', [{col1: 'value1', col2: 'value2'}]);
await writeToQLDB(qldb_eu, 'myTable', [{col1: 'value1', col2: 'value2'}]);
}
async function readFromMultiRegionQLDB() {
var result1 = await readFromQLDB(qldb_us, '