【问题标题】:Can not call external api in aws lambda function无法在 aws lambda 函数中调用外部 api
【发布时间】:2020-11-21 20:04:29
【问题描述】:

我打算通过请求在 aws lambda 函数中调用第三方 api。但它显示超时错误。 我将 lambda 函数时间设置为 30 秒,当我使用邮递员调用该 API 时,它会在 5 秒内发送响应(错误)。 我认为请求或 axios 无法将请求发送到外部 api 或无法接收响应。 谁能帮我? 我的代码:

  request.post({url:url2, json:true, body:body, headers: {
    'ACCESS_TIMESTAMP': timestamp,
    'Content-Type': 'application/json'
  } }, (error, response, body) => {
  console.log("------------------I am here----------------------")
  callback(null, error)
})

当我使用 axios 时,代码如下:

let jsonbody = JSON.stringify(body)
axios.post(url2, jsonbody,  {headers: {
      'ACCESS_TIMESTAMP': timestamp,
      'Content-Type': 'application/json'
    }})
.then(res => {
  callback(null, res.data)
})
.catch(err => {
  callback(null, err)
})

我想得到 res 或 err 的结果,但他们不采取行动。

【问题讨论】:

  • 您的 lambda 是否在 vpc 中运行?

标签: amazon-web-services api aws-lambda request axios


【解决方案1】:

当您使用私有子网将 Lambda 定位到您的 VPC 中时,您必须将 NAT 网关设置到您的私有子网中。如果您没有连接 NAT,Lambda 将无法连接到公共互联网,只能与私有 IP 通信。

【讨论】:

    猜你喜欢
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    • 2022-10-23
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多