Ошибка конфигурации AWS из-за отсутствия области в вызове функции
import * as aws from 'aws-sdk';
...
const awsConfigurationParmeters: ConfigurationOptions = {
logger,
maxRetries: 10,
region
};
if (Object.keys(customHttpOptions).length > 0) {
awsConfigurationParmeters.httpOptions = customHttpOptions;
}
const awsConfig = new aws.Config();
awsConfig.update(awsConfigurationParmeters);
Я устанавливаю регион через aws.config.update
, Однако, когда я пытаюсь сделать вызовы DynamoDB/S3/Firehose/KMS, это приводит к ConfigError.
"before all" hook: Error calling new aws.KMS.listAliases - Error Code: ConfigError
Исправление заключается в том, чтобы указать регион в вызове, чтобы - new aws.KMS({region}).listAliases
,
Разве aws.config.update не должен позаботиться об этом?
1 ответ
Решение
Если я хочу, чтобы awsConfigurationParameters использовался глобально, мне нужно обновить aws.config
, В моем примере обновляется только awsConfig.
Попытка этого вместо этого:
import * as aws from 'aws-sdk';
...
const awsConfigurationParmeters: ConfigurationOptions = {
logger,
maxRetries: 10,
region
};
if (Object.keys(customHttpOptions).length > 0) {
awsConfigurationParmeters.httpOptions = customHttpOptions;
}
aws.config.update(awsConfigurationParmeters);
После обновления глобальной конфигурации все клиенты будут использовать эту конфигурацию:
const kmsClient = new aws.KMS();