可能是一个愚蠢的问题,但在堆栈/ aws文档上找不到明确的答案。我的假设是应将其内置到lambda中。
我正在AWS Lambda中运行带有Axios模块的Node10.x。我有一个成功的函数,可以检查DNS / EC2 / Endpoint路径并返回正确的响应。我想使其自动化,以便每10分钟检查一次。如果有错误,它将在SES中通知我,如果响应良好,则不执行任何操作。
所有功能均有效,但我无法集成SES时遇到问题。在下面的if语句中,我添加了以下代码,console.log可以正常工作,因此它只是SES的一部分,出现了问题。
exports.handler = async (event, context) => {
let aws = require('aws-sdk');
let ses = new aws.SES({
region: 'us-east-1'
});
let data = "document_contents=<?xml version=\"1.0\" encoding=\"UTF-8\"?><auth><user>fake</user><pass>info</pass></auth>";
var axios = require("axios");
var config = {
headers: { 'Content-Type': 'text/xml' },
};
let res = await axios.post('https://awebsiteidontwanttogiveout.com', data, config);
let eParams;
if (res.status === 200) {
console.log("Success");
eParams = {
Destination: {
ToAddresses: ["banana@apples.com"]
},
Message: {
Body: {
Text: {
Data: "Test SUCCESSFUL"
}
},
Subject: {Test SUCCESSFUL"
}
},
Source: "banana@apples.com"
};
ses.sendEmail(eParams);
}
if (res.status != 200) {
console.log("Failure");
eParams = {
Destination: {
ToAddresses: ["banana@apples.com"]
},
Message: {
Body: {
Text: {
Data: "Test FAIL"
}
},
Subject: {
Data: "Test FAIL"
}
},
Source: "banana@apples.com"
};
ses.sendEmail(eParams);
}
};
3秒后我超时。我将一个zip文件上载到具有依赖性的节点上。我需要安装AWS SDK并随文件上传吗?它不应该以某种方式构建吗?我在SES通话中遗漏了什么吗?
谢谢