aws-lambda
AWS Lambda med S3
Sök…
Introduktion
Lambda-utvecklare kommer att hantera problem som kräver användning av andra AWS-resurser. Det här ämnet fokuserar på S3 (Simple Storage Service) som vanligtvis kommer att användas för att lagra statiska filer och andra konfigurationer. Denna dokumentation kommer att överväga att använda AWS-SDK i lambda, få åtkomst till filer i S3 från Lambda och utlösa Lambda-funktioner när en S3-händelse avfyras
Fusklapp
AWS-SDK för javascript
Lambda innehåller aws-sdk ( https://aws.amazon.com/sdk-for-node-js/) i sin globala så inget behov av att ladda upp denna nodmodul till zip.
const AWS = require('aws-sdk');
Provfunktion
module.exports.myFunction = (event, context, callback) => {
const response = {
statusCode: 200,
body: 'Hello Lambda!',
};
return callback(null, response);
};
Kör S3
const s3 = new AWS.S3 ();
Använd med Elasticache Redis
//make sure redis node-module is added in zip
const redis = require('redis');
//the redis information should be stored in the environment, not hard coded
const redis_options = {
host: process.env.REDIS_HOST,
port: process.env.REDIS_PORT
};
module.exports.myFunction = (event, context, callback) => {
try {
let client = redis.createClient(redis_options);
context.callbackWaitsForEmptyEventLoop = false;
client.on('connect', () => {
console.log('Connected:', client.connected);
});
client.on('end', () => {
console.log('Connection closed.');
});
client.on('ready', function () {
console.log('Connection ready.');
client.keys('*', (err, keys) => {
//always quit the redis client when no longer needed
//else the connection will be used up
client.quit();
const response = {
statusCode: 200,
body: keys,
};
return callback(null, response);
});
} catch (err) {
if (client) { client.quit();}
console.log('Error!: ' + err.message);
callback(err);
}
};
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow