javascript - 无法在 AWS Lambda 中进行 Axios 调用
问题描述
我有以下功能
const axios = require('axios')
const MY_API = process.env.myAPI
const getUserInfo = async (Id) => {
console.log('Inside getUserInfo()')
try {
console.log('----Here I am ----')
const response = await axios({
method: 'get',
url: `${MY_API}/customer/${Id}`,
headers: await headers()
})
console.log(`----> ID: ${Id} \nName: ${response.data.name}`)
return {
name: response.data.name,
city: response.data.city,
zipCode: response.data.zipcode
}
} catch (err) {
console.log('Something went wrong with getUserInfo() call' )
console.log(err.response.data)
return err.response.data.Code
}
}
exports.handler = async (event) => {
const checkUserInfo = await getUserInfo(Id)
}
我得到的输出如下
START RequestId: edeb9bf3-bcad-4de9-a549-23920f5de891 Version: $LATEST
2020-11-05T09:39:38.175Z edeb9bf3-bcad-4de9-a549-23920f5de891 INFO
Homer
Springvale
1234
2020-11-05T09:39:38.175Z edeb9bf3-bcad-4de9-a549-23920f5de891 INFO Inside getUserInfo()
2020-11-05T09:39:38.175Z edeb9bf3-bcad-4de9-a549-23920f5de891 INFO ----Here I am ----
END RequestId: edeb9bf3-bcad-4de9-a549-23920f5de891
REPORT RequestId: edeb9bf3-bcad-4de9-a549-23920f5de891 Duration: 5.45 ms Billed Duration: 100 ms Memory Size: 512 MB Max Memory Used: 32 MB
我对我在这里缺少什么感到困惑,似乎从未进行过 API 调用。我正在使用 nodejs 12.x
解决方案
Lambda 函数的默认超时为 3 秒。您的代码正在执行(很可能超时)并且您的函数正在退出。因为函数在引发 axios 超时之前退出,所以您永远不会看到超时错误。
还要展示headers
实现以及为什么它是异步的?
您实际上是在将 ID 传递给 API 请求吗?查看您的处理程序函数,您不是。
exports.handler = async (event) => {
// Where is Id defined??
const checkUserInfo = await getUserInfo(Id)
}
尝试传入 ID 并将函数超时时间增加到 1.5 分钟,看看是否抛出错误,或者看看它是否有效。
推荐阅读
- python-3.x - 在 Python 中使用 Azure Graph API 使用基于筛选器的查询参数
- java - ExecutorService 不一致
- python - 如何基于组 odoo 13 加载 css
- c - 如何调试/修复像素数组中的索引越界错误?
- javascript - 如何使用 React.js 重构 map 方法中的代码冗余
- apache-spark - 访问结构属性的怪癖 - 可以通过索引而不是名称访问属性
- constraints - Optaplanner 任务分配中没有解决硬约束
- java - 将 DTO 对象作为字节存储在 SQL 表中是否是一种好习惯
- angular - 如何访问 ViewChildren 中元素的 ID?
- java - 位置管理器的 AddGpsStatusListener 在 android 10 中不起作用