【发布时间】:2018-06-04 06:19:54
【问题描述】:
我编写了一个 AWS lambda,它向触发重置密码电子邮件的端点发出 https 请求。当我在本地运行我的 lambda 时,所有操作都按预期运行,并且我在收件箱中收到电子邮件,但是,当我上传节点代码并在 AWS 控制台中运行 lambda 时,我在发出发布请求时收到以下错误:
Error: getaddrinfo ENOTFOUND myfakedomain.com myfakedomain.com:443
我的 lambda 中发出 https 请求的函数(使用 superagent 节点模块)如下所示:
function resetPassword(intentRequest, callback) {
const emailAddress = intentRequest.currentIntent.slots.EmailAddress;
console.log(`emailAddress is: ${emailAddress}`);
request
.post('https://myfakedomain.com:443/passwordreset', emailAddress)
.set({ 'Content-Type': 'text/plain' })
.end((resp) => {
console.log('response was: ' + resp);
});
callback(close(intentRequest.sessionAttributes, 'Fulfilled',
{ contentType: 'PlainText', content: `Thanks, a reset password link has been sent to ${emailAddress}.` }));
}
通过 AWS 运行我的 lambda 时,是否有任何特殊原因导致此错误?重置密码端点是开放的,因此任何人都可以点击它。我还尝试从我的帖子请求的开头删除 https://,但没有运气。我想这无济于事,错误记录也非常少!
任何帮助都会很棒,谢谢。
【问题讨论】:
-
你有想过这个吗?我遇到了同样的错误,并且我的 lambda 没有在 VPC 中运行,所以它不应该是互联网访问问题。将 URL 更改为 http 时一切正常
标签: javascript node.js aws-lambda superagent