繁体   English   中英

next.js api 路由,调用一些外部 api Z572D1221E8E6BBC1E421E5E6BBC1E421E5E6BBC1E421E5E6BBC79

[英]next.js api route, 504 timeout in aws EC2 when calling some external api url

我有以下Next.js api路线用于测试目的。

所有 4 个 axois 调用都可以在 localhost 中完美运行; 但是在生产中(由 AWS EC2 托管); 最后 2 次调用失败,原因是504 gateway time-out

我曾想过nginx和 AWS in-bound/out-bound设置,但如果是这种情况,前两个模拟 api 应该也不能正常工作。

我不知道为什么会这样。 或者它与那些网站的 api 保护有关? 但是为什么它在本地主机中工作

import axios from "axios";
import { NextApiHandler } from "next";

export default const MockApi: NextApiHandler = async (req, res) => {
  try {
    // mock set
    // work in localhost and production
    const { data: testData } = await axios.get("https://jsonplaceholder.typicode.com/todos/1");
    console.log(testData);

    const { data: mockData } = await axios.get("https://reqres.in/api/users?page=2");
    console.log(mockData);

    // some real life api
    // work in localhost but failed in production with 504 gateway time-out
    const { data: mockData2 } = await axios.get("https://www.target.com.au/ws-api/v1/target/products/search?category=W95362");
    console.log(mockData2);

    const { data } = await axios.get("https://api.nasdaq.com/api/ipo/calendar");
    console.log(data);

    res.status(200).send({});
  } catch (err) {
    res.status(403).json(err);
  }
};

经调查,问题似乎与 AWS 内部政策有关,因此您无法使用 AWS 服务滥用特定关联公司和一些公共 API。

如果有人能够解决问题,这个答案可能是不正确的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM