【问题标题】:switch Dynamodb region on the fly即时切换 Dynamodb 区域
【发布时间】:2020-04-17 06:53:25
【问题描述】:

有没有办法通过使用 javascript aws-sdkdynamoose npm 包在 DynamoDB 区域之间动态切换?

假设,2 个表存在于孟买 (ap-south-1) 和法兰克福 (eu-central-1) 两个不同的区域。最初,当应用程序启动时它使用 ap-south-1,然后经过一些业务逻辑,它需要将数据库实例路由到 eu-central-1。

那么,我怎样才能通过使用 javascript aws-sdk 或 dynmoose 包来实现呢。

现在,我正在使用下面的 sn-p。但它不起作用

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' } } })

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb aws-sdk aws-sdk-js dynamoose


    【解决方案1】:

    在这种情况下,我认为您每次通过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 开发工具包设置。

    注意,上面的代码在 Dynamoose 的 v2 中有所改变。请参阅breaking changes 了解更多信息。

    【讨论】:

    • 非常感谢@charlie-fish。让我试试上面的方法,然后告诉你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多