Cer*_*ean 3 amazon-web-services node.js aws-lambda
我是 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)
Run Code Online (Sandbox Code Playgroud)
即使该区域设置为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);
}
};
Run Code Online (Sandbox Code Playgroud)
您可以在使用任何服务之前配置区域。
像这样:
var AWS = require('aws-sdk');
AWS.config.update({region:'us-east-1'});
const lambda = new aws.Lambda();
Run Code Online (Sandbox Code Playgroud)
AWS 服务(例如 lambda)能够承担 IAM 角色。因为应用程序不需要存储凭据。
这是你应该做的:
基本上,您可以将 IAM 用户正在使用的相同策略附加到 IAM 角色。完成此操作后,您可以从代码中删除凭据。
归档时间: |
|
查看次数: |
5362 次 |
最近记录: |