AWS Lambda https 请求产生"getaddrinfo ENOTFOUND"错误



我知道这类问题已经有几个答案了,但似乎没有一个涵盖我的场景,在这个场景中,我似乎遵循了执行POST请求所需的所有规则。

我在AWS Lambda函数中有以下Node.js代码,该函数调用API(出于安全目的,主机和路径不是真实的(。

const https = require('https');
let host = 'api-thing.place.com';
let path = '/api/info?appname=appname';
exports.handler = () => {
let options = {
'method': 'POST',
'hostname': intHost,
'path': intPath,
'headers': {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
};

let req = https.request(options, function(res) {
let results = [];
res.on("data", function(chunk) {
console.log('data');
results.push(chunk);
});

res.on("end", function() {
let body = Buffer.concat(results).toString();
});

res.on("error", function(error) {
console.error(error);
});
});

req.write(JSON.stringify({"food":"apple","drink":"water"}));
req.end();
};

这产生了错误:";getaddrinfo ENOTFOUND api thing.place.com;我在这里错过了什么或做错了什么?

如果您按照本教程创建VPC,但仍然面临问题,只需编辑lambda函数运行的VPC的DHCP选项集。您可以使用流行的DNS,如Google或Cloudflare。

为lambda创建访问互联网的VPC的简化步骤是:

  1. 在AWS管理控制台中打开VPC向导
  2. 选择具有公用和专用子网的VPC。新的公用子网和专用子网,包括其关联的互联网网关和NAT网关,出现在Amazon VPC控制台中
  3. 将AWSLambdaVPCAccessExecutionRole添加到Lambda的权限
  4. 将创建的VPC添加到lambda,并将私有子网分配给lambda

最新更新