title: AWS Lambda - downloading a file, and using it in the same function - nodejs
body: <p>I have some certificate files over s3 (public) and I am to download and use these files in my code, If I write an equivalent code in nodejs at my local, it just runs fine, but in AWS lambda it just crashes.</p>
  
  <pre><code>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();
  
    });
  });
  }
  </code></pre>
  
  <p>Error I get is related to accessing files i suppose - </p>
  
  <pre><code>events.js:72 
   throw er; // Unhandled 'error' event 
   ^ 
  Error: EACCES, open 'PushChatCert.pem'
  </code></pre>
  
  <p>So while on AWS Lambda is there some specific concerns when one is downloading a file and using it, related to its path or something, where do the files stay when they get downloaded, in fact I don't even see the log of file getting downloaded.</p>