【发布时间】:2021-10-14 08:28:09
【问题描述】:
我是初学者,我在互联网上找到了两条指令来获取数据(联系我们 - 电子邮件、电话等)到 AWS - Lambda 然后发送到我的电子邮件
另外一个是创建一个 AWS - Lambda 函数发送到 Dynamo 进行备份。
https://www.vairix.com/tech-blog/get-and-put-data-using-lambda-and-dynamodb-simple-and-clear
我把它们放在一起,但它们没有连接。例如,Lamba 触发将信息从网站发送到我的电子邮件,但其他功能不会收集项目以将其发送到 Dynamo
Lambda 发送电子邮件:
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 在 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);
}
};
【问题讨论】:
-
console.log('Received event:', event);的输出是什么 - 您在 CloudWatch 中看到了什么? -
还要让它们连接起来——您需要发送电子邮件,然后一次性存储在 DynamoDB 中;除非您有一个 SNS 主题、一个 SQS 队列等来触发它,否则其他功能不会“收集它”。
标签: javascript node.js amazon-web-services aws-lambda amazon-dynamodb