首页 > 解决方案 > “调用 Lambda 时出错:无法执行 HTTP 请求:读取超时”......对于一个简单的 POST 请求?

问题描述

我正在努力做一个简单的 POST 请求,而不会因为这条消息而失败:

Error invoking Lambda: Unable to execute HTTP request: Read timed out

我的 Lambda 代码包含以下内容:

const axios = require("axios");
const api = require('lambda-api')();
let PROJECT_ID = process.env.PROJECT_ID_CREATE
let TOKEN = process.env.TOKEN

api.post("/api-gitlab-launcher/create", async (lambdaRequest, res) => {
            return {
                "ami_id": lambdaRequest.body["ami_id"],
                "ip_address":lambdaRequest.ip
            }
    }
)

exports.handler = async (event, context) => {
    let config = {
        method: 'post',
        url: `https://gitlab.com/api/v4/projects/${PROJECT_ID}/trigger/pipeline?token=${TOKEN}&ref=terraform-v1-mirror`,
        headers: {}
    };

   await axios(config)
        .then(function (response) {
            console.log(JSON.stringify(response.data));
        })
        .catch(function (error) {
            console.log(error);
        });

    return await api.run(event, context);
}

这个问题已经让我发疯了好几天......而且我无法确定错误在哪里!如果有人知道它可以从哪里来,我会很高兴。

更新

它在本地工作。刚刚测试过,在本​​地运行时会发送 POST 请求。我检查了 VPC,它允许所有出站流量。

更新 2 在此处输入图像描述

标签: node.jsamazon-web-serviceshttpsaws-lambdaaxios

解决方案


推荐阅读