【发布时间】:2019-07-11 15:28:17
【问题描述】:
在从 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 错误响应不是很具有描述性,所以我有点卡住了。有谁知道这可能仍然是授权问题还是我的请求结构错误?
【问题讨论】:
-
您收到 500 内部服务器错误意味着代码正在破坏,请检查您传递给时间 API 的数据。
-
@RahulRana 如果我做一个简单的测试并将以下内容传递给 API,我仍然会收到错误消息。尽管这几乎是直接从 API 参考文档中复制的:{ "searchSpan": { "from": { "dateTime": "2019-07-09T00:00:00.000Z" }, "to": { "dateTime" :“2019-07-10T00:00:00.000Z”}},“采取”:10}
-
那么可能是 api 不工作,它的 down
标签: javascript node.js azure axios azure-timeseries-insights