javascript - Azure Timeseries 见解 API 所有 API 请求的内部服务器错误
问题描述
从 Nodejs 调用 Timeseries Insights API 时,每次发出请求时都会收到 500 内部服务器错误。例如:
const res = await getToken(
'https://login.microsoftonline.com/',
process.env.TENANT_ID,
'https://api.timeseries.azure.com/',
process.env.CLIENT_ID,
process.env.CLIENT_SECRET
);
const token = res.data.access_token;
const result = await axios.post(
`https://${process.env.TIME_SERIES_INSIGHTS_FQDN}/events?api-version=2016-12-12`,
{
searchSpan: {
from: {
dateTime: moment()
.subtract(1, 'day')
.startOf('day')
.format(),
},
to: {
dateTime: moment()
.subtract(1, 'day')
.endOf('day')
.format(),
},
},
breaks: {
count: 1000
},
},
{
headers: {
Authorization: `Bearer ${token}`,
},
}
);
return result;
getToken 函数返回一个有效的访问令牌,该令牌被授权调用 Timeseries API。我知道这一点是因为在出现此问题之前,我没有获得有效的令牌,并且收到了关于令牌无效的更具描述性的错误。
据我所知,请求参数都是正确的。根据 API 文档,searchSpan
限制子句 ( breaks
) 是强制性参数。
我从邮递员那里得到同样的错误。
500 Internal Server 错误响应不是很具有描述性,所以我有点卡住了。有谁知道这可能仍然是授权问题还是我的请求结构错误?
解决方案
API 已启动。我发现预览 API 与 GA API 完全不同。并且我们的 TSI 实例正在预览模式下运行...
推荐阅读
- html - 在反应按钮上添加和删除类
- pyqt5 - 从单独的 python 文件调用的 PyQt5 按钮方法
- c++ - C++中冒号“:”的作用是什么?
- javascript - 如何按屏幕大小javascript执行功能
- java - 如何读取 java pig latin 的文本文件?
- c# - 在 Blazor 应用程序中成功提交时写入 Cookie
- c++ - Automatic Object Construction in Function Parameters by Passing Constructor Parameters
- html - Angular 9 - 简单的 CSS 动画 - (不是 Angular 动画!) - 如何向后(反向)重用关键帧?
- php - 有没有办法在搜索后将数据显示到文本框?代码点火器阿贾克斯
- redux - Redux:在 thunk 中在 slice reducer 之间放置大量逻辑和共享日期是一种反模式吗?