Soy principiante, encontré dos instrucciones en Internet para obtener datos (Contáctenos: correo electrónico, teléfono, etc.) a AWS: Lambda y luego envíelos a mi correo electrónico.
Y otro para hacer una función AWS - Lambda para enviar a Dynamo para hacer una copia de seguridad.
https://www.vairix.com/tech-blog/get-and-put-data-using-lambda-and-dynamodb-simple-and-clear
Los puse juntos, pero no se conectan. Por ejemplo, Lamba dispara para enviar información desde el sitio web a mi correo electrónico, pero la otra función no recopilará el elemento para enviarlo a Dynamo.
Lambda para enviar correo electrónico:
var AWS = require('aws-sdk'); var ses = new AWS.SES(); var RECEIVER = 'contactus@example.com'; var SENDER = 'contactus@example.com'; var response = { "isBase64Encoded": false, "headers": { 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': 'example.com'}, "statusCode": 200, "body": "{\"result\": \"Success.\"}" }; exports.handler = function (event, context) { console.log('Received event:', event); sendEmail(event, function (err, data) { context.done(err, null); }); }; function sendEmail (event, done) { var params = { Destination: { ToAddresses: [ RECEIVER ] }, Message: { Body: { Text: { Data: 'name: ' + event.name + '\nphone: ' + event.phone + '\nemail: ' + event.email + '\ndesc: ' + event.desc, Charset: 'UTF-8' } }, Subject: { Data: 'Website Referral Form: ' + event.name, Charset: 'UTF-8' } }, Source: SENDER }; ses.sendEmail(params, done); }Lambda para almacenar información en DynamoDB:
"use strict"; AWS.config.update({ region: "us-east-1" }); exports.handler = async() => { const documentCilent = new AWS.DynamoDB.DocumentClient({region: "us-east-1"}); const params = { TableName: "Users", // This part, I need the variable connect with the top part. Item:{ id : "test", name: "name", phone: "phone", desc: "desc", email: "email" } }; try { const data = await documentCilent.put(params).promise(); console.log(data); } catch (err) { console.log(err); } };Las Lambda son independientes entre sí y solo se activan al recibir un Evento para hacerlo. Este evento puede ser varias cosas: puede ser un evento enviado a la lambda desde una puerta de enlace API (esto es lo que hace conectar su Api a su Lambda: proporciona un objetivo para que vaya el evento Api). Puede ser un evento generado por su SDK (usando su SDK de idiomas para invocar otra lambda). Puede ser de una transmisión de DynamoDB o de un evento put_object de S3.
Prácticamente todo lo que sucede en los recursos de AWS genera un evento de algún tipo y, con los comandos/configuraciones correctos, puede tener un Lambda escuchando ese evento.
Sin embargo, en esta situación, dado que ambos son muy livianos, sería más rentable combinarlos en una sola lambda. La API obtiene la información, la envía a la lambda, que envía un correo electrónico y lo agrega a Dynamodb. Cualquier otra cosa en esta situación es un poco exagerada y aumentaría sus costos.