gpt4 book ai didi

node.js - AWS Lambda - 下载文件,并在同一个函数中使用它 - nodejs

转载 作者:IT老高 更新时间:2023-10-28 22:11:24 24 4
gpt4 key购买 nike

我有一些通过 s3(公共(public))的证书文件,我将在我的代码中下载和使用这些文件,如果我在本地的 nodejs 中编写等效代码,它运行良好,但在 AWS lambda 中它只是崩溃.

var apn = require('apn');
var https = require('https');
var fs = require('fs');

exports.handler = function(event, context) {
console.log("Running aws apn push message function");
console.log("==================================");
console.log("event", event);

var certPath = event.certPath;
var keyPath = event.keyPath;
var certFileName = event.certFileName;
var keyFileName = event.keyFileName;
var passphrase = event.passphrase;
var apnId = event.apnId;
var content = event.content;


var certfile = fs.createWriteStream(certFileName);
var certrequest = https.get(certPath, function(certresponse) {
certresponse.pipe(certfile);
console.log("downloaded the certificate");

var keyfile = fs.createWriteStream(keyFileName);
var keyrequest = https.get(keyPath, function(keyresponse) {
keyresponse.pipe(keyfile);
console.log("downloaded the key file");


var options = {
"cert":certFileName,
"key":keyFileName,
"passphrase":passphrase,
"batchFeedback": true,
"interval": 10
};

var apnConnection = new apn.Connection(options);

var myDevice = new apn.Device(apnId);
var note = new apn.Notification();
note.expiry = Math.floor(Date.now() / 1000) + 3600; // Expires 1 hour from now.
note.payload = {'COMMAND': content};
apnConnection.pushNotification(note, myDevice);
console.log('message sent to ' + apnId);

context.done();

});
});
}

我得到的错误与我想的访问文件有关 -

events.js:72 
throw er; // Unhandled 'error' event
^
Error: EACCES, open 'PushChatCert.pem'

因此,在 AWS Lambda 上,当一个人下载和使用文件时,是否存在一些特定的问题,与它的路径或其他东西有关,当文件被下载时,它们会保存在哪里,实际上我什至没有看到日志下载文件的数量。

最佳答案

您可以在 Lambda 中写入的唯一可用本地文件系统是/tmp,因此请确保您尝试写入的本地文件的路径位于/tmp 目录中,并且您应该已准备就绪。

关于node.js - AWS Lambda - 下载文件,并在同一个函数中使用它 - nodejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31938828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com