Ошибка конфигурации 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();
Другие вопросы по тегам