由于函数调用中缺少区域而导致 AWS Config 错误

AWS Config Error due to missing region in function call

 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 不应该处理这个吗?

如果我希望全局使用 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();