Ошибка конфигурации AWS из-за отсутствия области в вызове функции - PullRequest
0 голосов
/ 08 ноября 2018
 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 Ответ

0 голосов
/ 19 ноября 2018

Если я хочу, чтобы параметры 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();
...