即时切换 Dynamodb 区域
switch Dynamodb region on the fly
有什么方法可以使用 javascript aws-sdk
或 dynamoose
npm 包在 DynamoDB 区域之间动态切换?
假设,2 table 存在于孟买 (ap-south-1) 和法兰克福 (eu-central-1) 两个不同的区域。最初,当应用程序启动时,它使用 ap-south-1,然后在一些业务逻辑之后,它需要将数据库实例路由到 eu-central-1。
那么,我该如何使用 javascript aws-sdk 或 dynmoose 包来实现它。
现在,我正在使用以下代码段。但它不起作用
import dynamoose from 'dynamoose';
dynamoose.AWS.config.logger = console;
dynamoose.AWS.config.update({ region: 'ap-south-1'}); // working here
// some business login
// ...
// ...
// switch DynamoDB region
dynamoose.AWS.config.update({ region: 'eu-central-1'}); // but it's not working. Not even throwing any error.
有人可以帮忙吗?
有什么方法可以记录特定查询 运行 的 AWS Dynamodb 区域吗?
就像启用AWS logger一样,它只是输出
[AWS dynamodb 200 0.042s 0 retries] getItem({ TableName: 'User', Key: { userId: { S: '99999' } } })
在这种情况下,我认为您每次 setting a new DynamoDB instance 的运气都会好得多。例如,您的示例将更改为以下内容。
import {DynamoDB} from "aws-sdk";
dynamoose.setDDB(new DynamoDB({ region: 'ap-south-1'}));
// some business login
// ...
// ...
// switch DynamoDB region
dynamoose.setDDB(new DynamoDB({ region: 'eu-central-1'}));
这将更改 Dynamoose 用于与 DynamoDB 通信的基础实例,而不是全局 AWS SDK 设置。
注意,上面的代码在 Dynamoose v2 中发生了变化。有关详细信息,请参阅 breaking changes。
有什么方法可以使用 javascript aws-sdk
或 dynamoose
npm 包在 DynamoDB 区域之间动态切换?
假设,2 table 存在于孟买 (ap-south-1) 和法兰克福 (eu-central-1) 两个不同的区域。最初,当应用程序启动时,它使用 ap-south-1,然后在一些业务逻辑之后,它需要将数据库实例路由到 eu-central-1。
那么,我该如何使用 javascript aws-sdk 或 dynmoose 包来实现它。
现在,我正在使用以下代码段。但它不起作用
import dynamoose from 'dynamoose';
dynamoose.AWS.config.logger = console;
dynamoose.AWS.config.update({ region: 'ap-south-1'}); // working here
// some business login
// ...
// ...
// switch DynamoDB region
dynamoose.AWS.config.update({ region: 'eu-central-1'}); // but it's not working. Not even throwing any error.
有人可以帮忙吗? 有什么方法可以记录特定查询 运行 的 AWS Dynamodb 区域吗? 就像启用AWS logger一样,它只是输出
[AWS dynamodb 200 0.042s 0 retries] getItem({ TableName: 'User', Key: { userId: { S: '99999' } } })
在这种情况下,我认为您每次 setting a new DynamoDB instance 的运气都会好得多。例如,您的示例将更改为以下内容。
import {DynamoDB} from "aws-sdk";
dynamoose.setDDB(new DynamoDB({ region: 'ap-south-1'}));
// some business login
// ...
// ...
// switch DynamoDB region
dynamoose.setDDB(new DynamoDB({ region: 'eu-central-1'}));
这将更改 Dynamoose 用于与 DynamoDB 通信的基础实例,而不是全局 AWS SDK 设置。
注意,上面的代码在 Dynamoose v2 中发生了变化。有关详细信息,请参阅 breaking changes。