【问题标题】:aws lambda write a file on s3 - javascriptaws lambda 在 s3 上写入文件 - javascript
【发布时间】:2023-03-11 07:30:02
【问题描述】:
var AWS = require('aws-sdk');
var s3 = new AWS.S3();

exports.handler = async (event) => {

            var bucketName = 'arn:aws:s3:::alessio77';
            var keyName = 'prova.txt';
            var content = 'This is a sample text file';
            var params = { 'Bucket': bucketName, 'Key': keyName, 'Body': content };
            s3.putObject(params, function (err, data) {
                console.log('entrato')
                if (err)
                    console.log(err)
                else
                    console.log("Successfully saved object to " + bucketName + "/" + keyName);
            });
};

这段代码既不写文件也不给我错误 这是日志:

START RequestId:7c93b1b9-73c1-4f18-9824-095bcbe292bf 版本:$LATEST 结束请求 ID:7c93b1b9-73c1-4f18-9824-095bcbe292bf 报告请求 ID:7c93b1b9-73c1-4f18-9824-095bcbe292bf 持续时间:706.18 毫秒计费持续时间:800 毫秒内存大小:128 MB 使用的最大内存:90 MB

【问题讨论】:

  • 您的 Lambda 函数的 IAM 角色是否具有写入 S3 存储桶的必要权限?您在测试函数时是否在 AWS 控制台中看到了 console.log() 输出?
  • @RobertLysik 可能我没有所需的权限,但为什么它没有在日志中通知我?在日志中什么都没有

标签: amazon-web-services amazon-s3 aws-lambda aws-sdk


【解决方案1】:

s3.putObject 是异步的,您需要等待它。大多数 aws api 调用都会返回一个 AWS.Request,它可以返回一个 Promise。这是使用 await 的解决方案。

var AWS = require('aws-sdk');
var s3 = new AWS.S3();

exports.handler = async (event) => {

            var bucketName = 'arn:aws:s3:::alessio77';
            var keyName = 'prova.txt';
            var content = 'This is a sample text file';
            var params = { 'Bucket': bucketName, 'Key': keyName, 'Body': content };
            try {
                console.log('entrato')
                const data = await s3.putObject(params).promise();
                console.log("Successfully saved object to " + bucketName + "/" + keyName);
                } catch (err) {
                     console.log(err)

                };
};

【讨论】:

    猜你喜欢
    • 2019-07-06
    • 2017-03-04
    • 2021-01-27
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    相关资源
    最近更新 更多