如https://learn.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide-jobs所述,我已经成功地使用Azure物联网集线器的REST调度了许多作业。也就是说,我安排作业来执行直接的方法。
但是,当我试图查询计划作业的状态时(正如在同一页中所描述的),我总是只得到一个条目:第一个成功调度作业的状态。我如何获得所有工作的地位?
我的问题是:
curl -X GET \
https://<iot-hub-name>.azure-devices.net/jobs/v2/query?api-version=2018-06-30 \
-H 'Authorization: SharedAccessSignature <sas-token>' \
-H 'Content-Type: application/json; charset=utf-8' -o response.json上面我使用的SAS令牌与调度作业相同。因此,不存在身份验证问题。
格式化的响应只包含一个条目,尽管我已经安排了11个作业:
[
{
"jobId": "job02",
"queryCondition": "deviceId = simple_thermostat",
"createdTime": "2022-03-02T15:59:27.4093129Z",
"startTime": "2022-03-02T15:20:15Z",
"endTime": "2022-03-02T15:59:34.5969497Z",
"maxExecutionTimeInSeconds": 10000,
"type": "scheduleDeviceMethod",
"cloudToDeviceMethod": {
"methodName": "getMaxMinReport",
"payload": "hello",
"responseTimeoutInSeconds": 300,
"connectTimeoutInSeconds": 0
},
"status": "completed",
"deviceJobStatistics": {
"deviceCount": 0,
"failedCount": 0,
"succeededCount": 0,
"runningCount": 0,
"pendingCount": 0
}
}
]PS:获得单个任务的状态与预期的一样。比如使用这个请求:
curl -X GET \
https://<iot-hub-name>.azure-devices.net/jobs/v2/job11?api-version=2018-06-30 \
-H 'Authorization: SharedAccessSignature <sas-token>' \
-H 'Content-Type: application/json; charset=utf-8' -o response.json但是,在上面的查询中从未返回job11。
发布于 2022-03-07 09:05:16
正如Roman所指出的,在第一个响应的标题中可以找到延续标记。要通过curl保存标头,必须指定选项-D。因此,第一个查询必须如下所示:
curl -X GET \
https://<iot-hub-name>.azure-devices.net/jobs/v2/query?api-version=2018-06-30 \
-H 'Authorization: SharedAccessSignature <sas-token>' \
-H 'Content-Type: application/json; charset=utf-8' \
-D response_hdr.txt -o response.json然后response_hdr.txt将包含如下一行:
x-ms-continuation: eyJzb3VyY2UiOiJkZGIiLCJ0b3RhbFJldHJpZXZlZENvdW50Ijo4LCJjb250aW51YXRpb25Ub2tlbiI6Ilt7XCJ0b2tlblwiOm51bGwsXCJyYW5nZVwiOntcIm1pblwiOlwiMDVDMUU3RkZGRkZGRkFcIixcIm1heFwiOlwiRkZcIn19XSJ9但是,不能像Microsoft中所述的那样在中指定这个延续令牌。相反,必须在后续查询的标题中提供:
curl -X GET \
https://<iot-hub-name>.azure-devices.net/jobs/v2/query?api-version=2018-06-30 \
-H 'Authorization: SharedAccessSignature <sas-token>' \
-H 'Content-Type: application/json; charset=utf-8' \
-H 'x-ms-continuation: <continuation_token_from_previous_query>' \
-D response_hdr.txt -o response.json此查询将提供一个新的延续令牌。它看上去很相似,但并不完全相同。
https://stackoverflow.com/questions/71338400
复制相似问题