从Lambda调用外部api端点时出现ENOTFOUND错误

问题描述

请提供以下建议,以便通过Lambda函数执行以下代码来对其进行更改。它在本地运行正常,但是在Lambda中执行时出现以下错误- {“ errno”:“ ENOTFOUND”,“代码”:“ ENOTFOUND”,“ syscall”:“ getaddrinfo”,“主机名”:“ https://api.taggun.io”}“,

const API_KEY = 'XXxxxxxxxxxxxxxXXX';
/*const fs = require("fs");
const rp = require("request");*/
const https= require('https');
var AWS = require('aws-sdk');
var s3 = new AWS.S3();

exports.handler = function(event,context,callback){
    var srcBucket = event.Records[0].s3.bucket.name;
    var srcKey    = decodeURIComponent(event.Records[0].s3.object.key.replace(/\+/g," "));
    var params = {Bucket: srcBucket,Key: srcKey};
    var origimage = s3.getObject(params).createReadStream();

    const formData = JSON.stringify({
    file: {
      value: origimage,}
    });
    const options = {
    hostname: "https://api.taggun.io",path: "/api/receipt/v1/simple/file",method: "POST",headers: {apikey:API_KEY}
  };
  const req = https.request(options,(res) => res.on("data",() => callback(null,"OK")));
  req.on("error",(error) => callback(JSON.stringify(error)));
  req.write(formData);
  req.end();
};  

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)