aws-lambda - 从 AWS Lambda 捕获原始 axios 请求
问题描述
我有调用供应商 API 的代码,通过 axios 从 AWS Lambda 内部上传文件的表单数据。调用返回 400 错误。如果我使用相同的节点版本 v14 在本地运行代码,它可以工作。我想捕获两个原始请求并比较它们的差异。如何捕获两个原始请求?我尝试过使用 ngrok 和 pipedream,但它们不显示原始内容,而是解码请求和文件。
let response = null;
try {
const newFile = fs.createReadStream(doc);
const formData = new FormData();
formData.append("file", newFile);
formData.append("url", url);
const headers = {
Authorization: "Bearer " + token,
...formData.getHeaders(),
};
console.log("Headers: ", headers);
response = await axios.post(`${APIBASE}/file/FileUpload`, formData, {
headers,
});
console.log("file upload response", response);
} catch (err) {
console.log("fileupload error at API", err);
}
解决方案
您无法在网络级别捕获请求,因为这完全由 AWS 控制。在 VPC 中运行时,也许有办法做到这一点,但我不这么认为。
您可以简单地使用诸如axios 调试记录器之类的工具在发出请求之前/响应到达之后打印出所有请求和响应内容(包括标头等)。这可能会提供更多关于哪里出了问题的信息。
至于问题的原因,由于您没有共享错误消息,我们也对您尝试调用的 API 一无所知,因此很难为您提供帮助。
推荐阅读
- django - 如何用 Django 实现 Angular
- microsoft-teams - 无法通过导航器连接到团队帐户
- javascript - 是的验证库 TypeError:yup__WEBPACK_IMPORTED_MODULE_0__ 不是函数
- c# - c#.net 中的 Block.io 支付网关集成
- sql - 如何使用正则表达式选择分组
- python - 按日期顺序组织数据行 Pandas Python
- laravel - 在 laravel 中使用模型不起作用,但在使用路由时起作用
- vue.js - fs 包不在 nuxt 的客户端
- ethereum - 如何在 Uniswap SDK 中获取 Router02 的实例?
- python - Linux - 将 tkinter GUI 背景和前景色与系统主题颜色同步