我想从 AWS IAM 获取用户详细信息,因此我创建了一个 lambda 函数,但响应代码 502 出现错误。我的代码如下。
var AWS = require('aws-sdk');
var iam = new AWS.IAM();
AWS.config.loadFromPath('./config.json');
let getUsers = async (event, callback) => {
var params = {
UserName: "5dc6f49d50498e2907f8ee69"
};
iam.getUser(params, (err, data) => {
if (err) {
callback(err)
} else {
console.log(data)
callback(data)
}
})
};
由于您的函数已经async
因此您不需要使用旧的、过时的callback
方法。
AWS开发工具包方法提供了一种.promise()
方法,您可以将其附加到每个 AWS 异步调用中,并且通过async
,您可以简单地await
承诺。
var AWS = require('aws-sdk');
var iam = new AWS.IAM();
AWS.config.loadFromPath('./config.json');
let getUsers = async event => {
var params = {
UserName: "5dc6f49d50498e2907f8ee69"
};
const user = await iam.getUser(params).promise()
console.log(user)
};
希望您有一个调用此代码的处理程序,否则这将不起作用。 如果要导出getUsers
作为处理程序函数,请确保先通过module.exports
导出它。即:module.exports.getUsers = async event...
.仔细检查您的 Lambda 处理程序是否已在函数本身上正确配置,其中index.getUsers
代表index
文件名 (index.js
( 并getUsers
导出的函数。