javascript - 为 AWS Lambda 函数提取事件变量数据
问题描述
我有一个 AWS Lambda 函数,它通过 SNS 发送电子邮件,带有 Node.js 10.x 运行时。事件对象包含一个名为 client_id 的变量,它对应于 IoT Core 服务中的 Raspberry Pi 设备 ID。我在 Lambda 函数的 Cloudwatch 日志中看到以下内容:
console.log("EVENT: \n" + JSON.stringify(event, null, 2));
2020-09-05T00:21:35.587Z 229b8110-852a-4abe-8b9c-4d06a121d63f 信息事件:{“client_id”:“RaspberryPi001”}
我需要从事件中提取 client_id 并将其包含在电子邮件的消息文本中,以指定哪个设备正在发出电子邮件警报。如何提取 client_id 并将其包含在电子邮件消息文本中?
'use strict';
var AWS = require('aws-sdk');
AWS.config.update({region: 'us-west-2'});
exports.handler = async (event, context, callback) => {
// Create publish parameters
var params = {
Message: `The air quality in your building has triggered a High Risk Alert.`,
Subject: `Air Quality - High Risk Alert`,
TopicArn: `arn:aws:sns:us-west-2:xyz`,
};
// Create promise and SNS service object
var publishTextPromise = new AWS.SNS({apiVersion: '2010-03-31'}).publish(params).promise();
// Handle promise's fulfilled/rejected states
publishTextPromise.then(
function(data) {
console.log("Message: " + params.Message);
console.log("Sent to the topic: " + params.TopicArn);
console.log("MessageID is " + data.MessageId);
console.log("EVENT: \n" + JSON.stringify(event, null, 2));
}).catch(
function(err) {
console.error(err, err.stack);
});
const data = await publishTextPromise;
return data;
};
谢谢!
解决方案
推荐阅读
- css - Oxygen XML 作者中的 XPath 和 CSS:如何在 oxy_xpath 中创建动态参数
- python - 为 Keras ANN-线性回归选择层/函数
- ruby-on-rails - 如何使用 minitest 模拟 Rails 的“除非”方法?
- xml - 如何在spark scala数据框中更新嵌套列的xml值
- linux - 当 Linux 启动时,中断是在所有处理器上禁用还是仅在它运行的处理器上禁用?
- c - OpenMP 和 math.h
- python - 条目小部件和状态“正常”
- c - 图像卷积,错误生成滤波图像
- c - 使用“读取”时进程不待机
- go - 构建命令行参数:无法加载 go-sql-driver/mysql