无法在aws lambda函数中调用外部api

min*_*ang 2 api request amazon-web-services aws-lambda axios

我打算通过请求调用 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)
})
Run Code Online (Sandbox Code Playgroud)

当我使用 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)
})
Run Code Online (Sandbox Code Playgroud)

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

Lam*_*nus 5

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