gpt4 book ai didi

node.js - Axios 在特定 API 的 AWS Lambda 上总是超时

转载 作者:行者123 更新时间:2023-12-05 00:46:25 25 4
gpt4 key购买 nike

描述问题

我不确定这是否是 Axios 问题。以下代码在我的本地开发机器上成功运行,但每当我从云(例如 AWS Lambda)运行它时总是超时。当我在 repl.it 上运行时也会发生同样的事情。

我可以确认 AWS Lambda 可以访问互联网,并且它适用于任何其他 API,但此:

https://www.target.com.au/ws-api/v1/target/products/search?category=W95362

示例代码

https://repl.it/repls/AdeptFluidSpreadsheet

const axios = require('axios');

const handler = async () => {
const url = 'https://www.target.com.au/ws-api/v1/target/products/search?category=W95362';

const response = await axios.get(url, { timeout: 10000 });

console.log(response.data.data.productDataList);
}

handler();

环境

  • Axios 版本:0.19.2
  • 运行时:nodejs12x

更新 1

我尝试了 native require('https'),但它在 localhost 和云服务器上都超时。请在此处找到示例代码:https://repl.it/repls/TerribleViolentVolume

const https = require('https');

const url = 'https://www.target.com.au/ws-api/v1/target/products/search?category=W95362';

https.get(url, res => {
var body = '';

res.on('data', chunk => {
body += chunk;
});

res.on('end', () => {
var response = JSON.parse(body);
console.log("Got a response: ", response);
});
}).on('error', e => {
console.log("Got an error: ", e);
});

再次,我可以确认相同的代码适用于任何其他 API。

更新 2

我怀疑这是服务器端的问题,因为它在 curl 中的行为也很奇怪。

  • 从本地 curl -> 403 访问被拒绝
  • 使用 User-Agent header 从本地 curl -> 成功
  • 来自云服务器的 curl -> 403 访问被拒绝

一定是服务器端验证,与 AkamaiGHost 相关。

最佳答案

您可能已将 Lambda 函数放置在无法通过 Internet 访问外部世界的 VPC 中。尝试检查您的 lambda 配置中的 VPC 部分,并相应地设置互联网网关

关于node.js - Axios 在特定 API 的 AWS Lambda 上总是超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60519065/

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