node.js - 具有两个回调的 AWS Lambda 函数

标签 node.js amazon-web-services aws-lambda

目前我正在node.js中执行lambda函数来获取我的AWS帐户的信息。当我想检索函数中所需的信息时遇到问题。我在控制台(console.log)中看到了信息,但回调()的响应中不存在该信息。我总是得到第一个回调的响应,而不是第二个回调的响应。我已经阅读了有关异步过程的信息,但我没有解决问题。你知道改进代码有什么变化吗?

代码如下:

var AWS = require('aws-sdk');
var iam = new AWS.IAM();
var s3 = new AWS.S3();
exports.handler = (event, context, callback) => {
    var params1 = {};
 iam.listUsers(params1, function(err, data) {
   if (err)
    console.log(err, err.stack);
   else
    console.log(data);
    callback(null, data.Users);
 });
 var params2 = {};
 s3.listBuckets(params2, function(err, data) {
   if (err)
      console.log(err, err.stack);
   else
      console.log(data);
      callback(null, data.Buckets);
 });
};

提前致谢。

最佳答案

由于 AWS Lambda 现在支持 Node 8,因此可以在下面找到示例代码:

const AWS = require('aws-sdk');
const iam = new AWS.IAM();
const s3 = new AWS.S3();

async function stackoverflow() {
 let params1 = {};
 let params2 = {};

 try {
  // synchronously call each method and store resolved promises. 
  let results1 = await iam.listUsers(params1).promise();
  let results2 = await s3.listBuckets(params2).promise();

  console.log(results1);
  console.log(results2);
 }
 catch(e) {
  console.error(e);
 }
}

exports.handler = (event, context, callback) => {
  stackoverflow();
};

关于node.js - 具有两个回调的 AWS Lambda 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49601635/

相关文章:

python - 如何使用 python 检查日期是否为空?

node.js - dotenv 不适用于 root 权限

javascript - 模块化模式与原型(prototype) - Nodejs?

amazon-web-services - 创建 aws emr 默认角色时出错

python - 无法通过 lambda 函数承担角色 - Python

amazon-web-services - AWS 步骤函数 : check for null

amazon-web-services - AWS Lambda S3:::ObjectCreated:Put 事件返回无效的对象键

javascript - 函数内部的 stub 函数调用

javascript - 访问其他文件中的 Lambda 上下文对象

amazon-web-services - 适用于 AWS 上长时间运行查询的无服务器解决方案