gpt4 book ai didi

javascript - AWS lambda : Error: getaddrinfo ENOTFOUND from api

转载 作者:搜寻专家 更新时间:2023-10-31 23:15:24 26 4
gpt4 key购买 nike

我创建了以下代码,它从 S3 存储桶中获取一个 seralizedXmlFile 对象并将其推送到一个 API 服务。这将返回 FAIL 并显示日志

Error: getaddrinfo ENOTFOUND http://url
at errnoException (dns.js:28:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:76:26)

代码:

const AWS = require('aws-sdk');
const https = require('http');
var s3 = new AWS.S3();
var un;
var pw;
var seralizedXmlFile;

let index = function index(event, context, callback) {
//for testing I have named the bucket and key
var params = {
Bucket: "bucket", //event.bucketName,
Key: "personnelData_50112404_635705766849654385.xml" //event.fileName
};

s3.getObject(params, function(data, err)
{
if (data)
{
let seralizedXmlFile = err.Body.toString('utf-8'); // Use the encoding necessary
console.log("objectData " + seralizedXmlFile);
}
});

var ssm = new AWS.SSM({region: 'ap-southeast-2'});
var paramsx = {
'Names' : ['/App/ServiceUsername', '/App/ServicePassword'],
'WithDecryption' : true
};

ssm.getParameters(paramsx, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else {console.log('data: ' + JSON.stringify(data)); // successful response
console.log('password: ' + data.Parameters[0].Value);
console.log('username: ' + data.Parameters[1].Value);
pw = data.Parameters[0].Value;
un = data.Parameters[1].Value;
}
const req = https.request('http:/url/api/SyncPersonnelViaAwsApi/Get/5', (res) => {
res.headers + 'Authorization: Basic ' + un + ':' + pw;
let body = seralizedXmlFile;
console.log('Status:', res.statusCode);
console.log('Headers:', JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', (chunk) => body += chunk);
res.on('end', () => {
console.log('Successfully processed HTTPS response');

console.log('returned res: ' + res);
callback(null, res);

});
});
req.end();
});
};
exports.handler = index;

我关注了在 AWS Lambda: Error: getaddrinfo ENOTFOUND 上找到的问答

并将代码更改为

  var params = {
host: "http://URL",
path: "/api/SyncPersonnelViaAwsApi/Get/5"
};
var req = https.request(params, function(res) {
let data = '';
console.log('STATUS: ' + res.statusCode);
res.setEncoding('utf8');
res.on('data', function(chunk) {
data += chunk;
});
res.on('end', function() {
console.log("DONE");
console.log(JSON.parse(data));

但再次触发相同的错误....有没有人知道问题出在哪里?

我还通过 POSTMAN 测试了 web 服务 api,所以我可以确认它正在工作

谢谢

最佳答案

尝试

host: "URL",

代替

host: "http://URL",

此外,您使用的是 https 库并且您的 URL 前缀是 http:// 但我认为您可以/应该完全忽略它。

关于javascript - AWS lambda : Error: getaddrinfo ENOTFOUND from api,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48799742/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com