Ich versuche zu verstehen, wie aws Lambda funktioniert, aber ich muss zugeben, dass ich den Nutzen dieses aws-Moduls nicht vollständig verstanden habe. Also, von dem, was ich weiß lambda erlauben, ein Skript nach einem Ereignis im Voraus zu starten? Ok, ich versuche seit ein paar Tagen einen einfachen Fall zu bauen.Kann meine Lambda-Funktion nicht aufrufen
Wenn ich etwas von S3 hochlade oder lösche, möchte ich, dass meine Lambda-Funktion mir eine Push-Benachrichtigung sendet, indem ich SNS benutze. Leider kann ich diese Arbeit nicht bekommen. Ich weiß nicht, wie ich vorgehen soll. Ich folgte dem AWS-Start-Tutorial-Formular Lambda, konfigurierte Rollen und all diese Sachen, dann erstelle ich eine node.js-Funktion (Deployment-Funktion), installierte Abhängigkeiten und gezippt all diese Sachen und lade diese dann zu Aws Lambda hoch.
Ich habe auch das Ereignis in aws S3 konfiguriert, aber wenn ich eine Datei von S3 hochladen oder löschen, habe ich nie eine Push-Benachrichtigung erhalten. Ich möchte nur den einfachsten Weg zum Testen von AWS Lambda wissen, denn selbst die amazon Sample Test Lambda-Funktion (S3 upload image, Größe ändern und in einen anderen Bucket kopieren) funktioniert nicht, wenn ich es teste.
Hier ist der Code ich versuche, es zu bekommen funktioniert wird
var async = require('async');
var AWS = require('aws-sdk');
// get reference to S3 client
var s3 = new AWS.S3();
var sns = new AWS.SNS();
exports.handler = function(event, context, callback) {
\t var params = {
\t Message: 'STRING_VALUE', /* required */
\t MessageAttributes: {
\t someKey: {
\t DataType: 'raw', /* required */
\t BinaryValue: new Buffer('...') || 'STRING_VALUE',
\t StringValue: 'STRING_VALUE'
\t },
\t /* anotherKey: ... */
\t },
\t MessageStructure: 'Hello from lambda',
\t Subject: 'STRING_VALUE',
\t TargetArn: 'XXXXXXX', //my target arn
\t TopicArn: 'XXXXX' //my topic arn
\t };
\t async.waterfall([
\t \t \t sns.publish(params, function(err, data) {
\t \t \t if (err) console.log(err, err.stack); // an error occurred
\t \t \t else console.log(data); // successful response
\t \t \t })
\t \t ],function(error){
\t \t if (error) throw err;
\t })
\t
};
Jede Hilfe sehr geschätzt. Dank