在更新 Azure 流分析作业期间,我收到 HTTP 422 无法处理的实体
During update of an Azure Stream Analytics Job, I get HTTP 422 Unprocessable Entity
在更新流作业期间(通过 REST Api,我们使用允许更新任何类型资源的通用作业:https://docs.microsoft.com/en-us/rest/api/resources/resources/updatebyid),我得到 422,没有任何其他信息。任何人都可以帮助确定问题吗?
好吧,虽然你的问题中有用的信息很少,但我最终还是在我这边重现了你的问题。
原因已经在报错信息中描述清楚了:
PATCH of Inputs, Transformation, Functions, Outputs or Devices is not allowed using the Streaming Job level API. Please use the API for the corresponding resources.
这意味着您不能在请求正文中包含 Inputs
、Transformation
、Functions
、Outputs
、Devices
,因为它们是不同的资源形式 streamingjobs
.
解决方案:
要解决此问题,只需对错误消息中提到的相应资源使用 API。
1.Update Input : PATCH https://managment.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.StreamAnalytics/streamingjobs/{job-name}/inputs/{input-name}?api-version={api-version}
2.Update Function : PATCH https://<endpoint>/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.StreamAnalytics/streamingjobs/{jobName}/function/{functionName}?api-version={api-version}
3.Update Output : PATCH https://managment.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.StreamAnalytics/streamingjobs/{job-name}/outputs/output?api-version={api-version}
4.Update Transformation : PATCH https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.StreamAnalytics/streamingjobs/{job-name}/transformations/{transformation-name}?api-version={api-version}
详情请参考Stream Analytics REST API。
示例:
我测试更新输入。
PATCH https://managment.azure.com/subscriptions/xxxxxx/resourceGroups/joywebapp/providers/Microsoft.StreamAnalytics/streamingjobs/joyteststream/inputs/joyinput?api-version=2018-11-01
请求正文:
{
"properties":{
"type":"Stream",
"serialization":{
"type":"JSON",
"properties":{
"encoding":"UTF8"
}
}
}
}
结果:
在更新流作业期间(通过 REST Api,我们使用允许更新任何类型资源的通用作业:https://docs.microsoft.com/en-us/rest/api/resources/resources/updatebyid),我得到 422,没有任何其他信息。任何人都可以帮助确定问题吗?
好吧,虽然你的问题中有用的信息很少,但我最终还是在我这边重现了你的问题。
原因已经在报错信息中描述清楚了:
PATCH of Inputs, Transformation, Functions, Outputs or Devices is not allowed using the Streaming Job level API. Please use the API for the corresponding resources.
这意味着您不能在请求正文中包含 Inputs
、Transformation
、Functions
、Outputs
、Devices
,因为它们是不同的资源形式 streamingjobs
.
解决方案:
要解决此问题,只需对错误消息中提到的相应资源使用 API。
1.Update Input : PATCH https://managment.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.StreamAnalytics/streamingjobs/{job-name}/inputs/{input-name}?api-version={api-version}
2.Update Function : PATCH https://<endpoint>/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.StreamAnalytics/streamingjobs/{jobName}/function/{functionName}?api-version={api-version}
3.Update Output : PATCH https://managment.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.StreamAnalytics/streamingjobs/{job-name}/outputs/output?api-version={api-version}
4.Update Transformation : PATCH https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.StreamAnalytics/streamingjobs/{job-name}/transformations/{transformation-name}?api-version={api-version}
详情请参考Stream Analytics REST API。
示例:
我测试更新输入。
PATCH https://managment.azure.com/subscriptions/xxxxxx/resourceGroups/joywebapp/providers/Microsoft.StreamAnalytics/streamingjobs/joyteststream/inputs/joyinput?api-version=2018-11-01
请求正文:
{
"properties":{
"type":"Stream",
"serialization":{
"type":"JSON",
"properties":{
"encoding":"UTF8"
}
}
}
}
结果: