在更新 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.

这意味着您不能在请求正文中包含 InputsTransformationFunctionsOutputsDevices,因为它们是不同的资源形式 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"  
         }  
      }  
   }  
}  

结果: