AWS Lambda使用listBuckets()列出S3存储桶无效

绿色湖4964

我是第一次使用JS编写Lambda。我希望能够列出我拥有的S3存储桶,但是,在lambda下面不会返回我期望的值,即。时段清单。我做错了什么?我唯一了解的是我的Cloudwatch日志中未打印“ console.log('hihi')”行,因此在调用listBuckets()时发生了某些情况,但我看不到任何相关的日志。 Tks提前寻求帮助!

var AWS = require('aws-sdk');
AWS.config.update({region: 'us-east-1'});

exports.handler = async (event) => {
    // Create S3 service object
    var s3 = new AWS.S3({apiVersion: '2006-03-01'});
    var params = {};
    // Call S3 to list the buckets
    s3.listBuckets(params, function(err, data) {
      console.log('hihi')
      if (err) {
        console.log("Error", err);
      } else {
        console.log("Success", data.Buckets);
      }
    });
    
    // TODO implement
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'),
    };
    return response;
};
马辛

您正在使用async处理程序。因此,在您的lambda确实返回之前,listBucket有机会执行。一种克服方法是通过AWS文档中Promise所示的

因此,您可以按以下方式修改代码:

var AWS = require('aws-sdk');
AWS.config.update({region: 'us-east-1'});

exports.handler = async (event) => {
    
    const promise = new Promise(function(resolve, reject) {
        
      // Create S3 service object
      var s3 = new AWS.S3({apiVersion: '2006-03-01'});
      var params = {};
      // Call S3 to list the buckets
      s3.listBuckets(params, function(err, data) {
        console.log('hihi')
        if (err) {
          console.log("Error", err);
        } else {
          console.log("Success", data.Buckets);
        }
      });

    })
    return promise
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在AWS S3存储桶的特定“文件夹”中列出文件

AWS Lambda:如何使用Java从Lambda函数访问S3存储桶

如何使用Java列出存储桶中的所有AWS S3对象

通过CloudFormation的AWS Lambda S3存储桶通知

PowerShell for AWS:仅列出S3存储桶中的“文件夹”吗?

AWS S3存储桶加密

配置AWS Lambda以访问S3存储桶

使用AWS开发工具包创建s3存储桶时,存储桶名称无效

列出AWS S3存储桶的内容

列出AWS S3存储桶中的对象(使用无服务器部署)

AWS Lambda将列出文件版本控制中的S3存储桶对象和子目录

AWS S3存储桶删除

AWS Lambda:使用Python从s3存储桶读取csv文件尺寸,而无需使用Pandas或CSV包

使用AWS S3存储桶的授权错误

AWS CloudFormation更新Lambda代码以在S3存储桶中使用最新版本

使用AWS Lambda将文件从一个s3存储桶移动到AWS中的另一个存储桶

AWS S3 + Ruby SDK:如何列出存储桶

无法使用Boto连接AWS S3存储桶

使用存储桶名称“”时,Django AWS S3证书无效。

AWS Lambda Java,写入S3存储桶

AWS S3存储桶问题

AWS S3 存储桶策略

AWS CLI 列出 S3 存储桶中的所有文件

在 Clojurescript 中,如何使用 AWS javascript SDK 列出 S3 存储桶?

使用 aws lambda 节点 js 获取存储在 s3 存储桶中的视频的视频元数据

使用python删除s3存储桶内容的AWS lambda函数

如何修复在 aws 中列出来自 s3 存储桶的内容的关键错误?

删除 AWS S3 存储桶时权限不足,无法列出存储桶“XXXX”的对象

AWS:使用 lambda 函数读取 Amazon S3 存储桶中的所有文件