每当我尝试从NodeJS调用AWS Lambda函数时,都会收到'Error [ConfigError]:config中的区域丢失'

问题描述 投票:0回答:1

我是AWS lambda函数的新手,并获得了一些示例代码(在下面的代码中-当然,我正确地填写了占位符)。但是每次我调用lambda函数时,都会得到

Error [ConfigError]: Missing region in config
    at Request.VALIDATE_REGION (/Users/abc/Documents/projects/bot/node_modules/aws-sdk/lib/event_listeners.js:92:45)

即使在aws.config.update中设置了区域。我不确定该如何解决。我尝试删除对aws.config.update的调用,删除对region的引用,但没有帮助。

我也很想知道是否有一种方法可以从~/.aws/credentials中的共享文件中加载凭据,而不必在这里直接输入它们。

感谢您的帮助!

const aws = require('aws-sdk');

// do this only in dev, in prod you will not need to put your keys...
aws.config.update({accessKeyId: '<YOU ACCESS KEY>', secretAccessKey: '<YOUR SECRET>', region:'ap-northeast-1'});


const lambda = new aws.Lambda();

function invokeLambda(options) {
  return new Promise((resolve, reject) => {
    lambda.invoke(options, (err, data) => {
      if (err) {
        return reject(err);
      }
      return resolve(data);
    });
  });
}

const sampleCall = async () => {
  try {
    const options = {
      FunctionName: '<NAME OF THE FUNCTION YOU WANT TO INVOKE>',
      Payload: '<The JSON.stringify of the object you want to provide as parameter>',
    }
    const result = await invokeLambda(options);
    console.log(result);
  } catch (err) {
    console.error(err);
  }
};
node.js amazon-web-services aws-lambda
1个回答
0
投票

您可以在使用任何服务之前配置区域。

像这样:

var AWS = require('aws-sdk');
AWS.config.update({region:'us-east-1'});
const lambda = new aws.Lambda();
© www.soinside.com 2019 - 2024. All rights reserved.