переключать регион Динамодб на лету - PullRequest
0 голосов
/ 08 апреля 2020

Есть ли способ переключаться между регионами DynamoDB на лету, используя пакет javascript aws-sdk или dynamoose npm?

Предположим, что в двух разных регионах существует 2 таблицы Мумбаи ( ap-юг-1) и Франкфурт (ес-центральный-1). Сначала при загрузке приложения используется ap-south-1, а затем после некоторой бизнес-логики c необходимо направить экземпляр БД на 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, на котором запускается заданный запрос c? Как и при включении AWS logger, он просто выводит

[AWS dynamodb 200 0.042s 0 retries] getItem({ TableName: 'User', Key: { userId: { S: '99999' } } })

1 Ответ

0 голосов
/ 17 апреля 2020

В этом случае, я думаю, вам повезет больше, если будет каждый раз устанавливать новый экземпляр DynamoDB . Например, ваш пример изменится на следующее.

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.

Примечание , код выше изменился в v2 Dynamoose. См. критические изменения для получения дополнительной информации.

...