La fonction AWS Lambda écrit sur S3

J’ai un noeud 4.3 fonction Lambda dans AWS. Je veux être capable d’écrire un fichier texte sur S3 et avoir lu de nombreux tutoriels sur la façon d’intégrer S3. Cependant, ils traitent tous de la procédure à suivre pour appeler les fonctions Lambda après avoir écrit sur S3 comme ci-dessous:

http://docs.aws.amazon.com/lambda/latest/dg/with-s3.html

Comment créer un fichier texte dans S3 à partir de Lambda à l’aide d’un noeud? Est-ce possible? La documentation des Amazones ne semble pas la couvrir.

    Oui c’est absolument possible!

    var AWS = require('aws-sdk'); function putObjectToS3(bucket, key, data){ var s3 = new AWS.S3(); var params = { Bucket : bucket, Key : key, Body : data } s3.putObject(params, function(err, data) { if (err) console.log(err, err.stack); // an error occurred else console.log(data); // successful response }); } 

    Assurez-vous de donner à votre fonction Lambda les permissions d’écriture requirejses sur le chemin d’access au compartiment / à la clé s3 cible en sélectionnant ou en mettant à jour le rôle IAM sous lequel votre lambda est exécuté.

    Déclaration IAM à append:

     { "Sid": "Stmt1468366974000", "Effect": "Allow", "Action": "s3:*", "Resource": [ "arn:aws:s3:::my-bucket-name-goes-here/optional-path-before-allow/*" ] } 

    Lectures complémentaires:

    SDK JavaScript AWS: http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html

    Les détails spécifiques à “Put Object”: http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putObject-property

    Vous pouvez télécharger un fichier sur s3 en utilisant

    aws-sdk

    Si vous utilisez un utilisateur IAM, vous devez alors fournir la clé d’access et la clé secrète et vous assurer que vous avez fourni les permissions nécessaires à l’utilisateur IAM .

     var AWS = require('aws-sdk'); AWS.config.update({accessKeyId: "ACCESS_KEY",secretAccessKey: 'SECRET_KEY'}); var s3bucket = new AWS.S3({params: {Bucket: 'BUCKET_NAME'}}); function uploadFileOnS3(fileName, fileData){ var params = { Key: fileName, Body: fileData, }; s3bucket.upload(params, function (err, res) { if(err) console.log("Error in uploading file on s3 due to "+ err) else console.log("File successfully uploaded.") }); } 

    Ici, j’ai temporairement codé un access aws et une clé secrète à des fins de test. Pour de meilleures pratiques, reportez-vous au lien ci-dessous.

    https://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-configuring.html