Tenía una máquina virtual en funcionamiento que ejecutaba IoT Edge 1.0.10.3 en Ubuntu 16.04 que había apagado durante el último mes más o menos.

Lo encendí hoy y descubrí que:

  • Puedo iniciar todos los módulos bien. Todos informan corriendo
  • La respuesta en tiempo de ejecución es: 400 -- The deployment configuration is malformed or invalid
  • Ejecutando iotedge check, no parece que haya ningún error
  • cuando intento set modules, en Módulos de borde de IoT: There are no listed IoT Edge Modules
  • también recibo el siguiente error en los registros de EdgeHub:
<4> 2021-01-19 22:27:12.834 +00:00 [WRN] - Error getting edge hub config from twin desired properties
System.ArgumentException: schemaVersion is null or whitespace.
   at Microsoft.Azure.Devices.Edge.Util.Preconditions.CheckArgument(Boolean expression, String message) in /home/vsts/work/1/s/edge-util/src/Microsoft.Azure.Devices.Edge.Util/Preconditions.cs:line 73
   at Microsoft.Azure.Devices.Edge.Util.Preconditions.CheckNonWhiteSpace(String value, String paramName) in /home/vsts/work/1/s/edge-util/src/Microsoft.Azure.Devices.Edge.Util/Preconditions.cs:line 192
   at Microsoft.Azure.Devices.Edge.Hub.Core.Config.EdgeHubDesiredProperties..ctor(String schemaVersion, IDictionary`2 routes, StoreAndForwardConfiguration storeAndForwardConfiguration) in /home/vsts/work/1/s/edge-hub/src/Microsoft.Azure.Devices.Edge.Hub.Core/config/EdgeHubDesiredProperties.cs:line 14
   at lambda_method(Closure , Object[] )
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObjectUsingCreatorWithParameters(JsonReader reader, JsonObjectContract contract, JsonProperty containerProperty, ObjectConstructor`1 creator, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateNewObject(JsonReader reader, JsonObjectContract objectContract, JsonProperty containerMember, JsonProperty containerProperty, String id, Boolean& createdFromNonDefaultCreator)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader, Type objectType)
   at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
   at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
   at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value)
   at Microsoft.Azure.Devices.Edge.Hub.Core.Config.TwinConfigSource.GetConfigInternal() in /home/vsts/work/1/s/edge-hub/src/Microsoft.Azure.Devices.Edge.Hub.Core/config/TwinConfigSource.cs:line 97
   at Microsoft.Azure.Devices.Edge.Hub.Core.Config.TwinConfigSource.GetConfigInternal() in /home/vsts/work/1/s/edge-hub/src/Microsoft.Azure.Devices.Edge.Hub.Core/config/TwinConfigSource.cs:line 105

¿Qué pudo haber sucedido en el último mes sin conexión para poner la ventaja en un estado inconsistente?

0
VinnyH 20 ene. 2021 a las 01:37

1 respuesta

La mejor respuesta

De acuerdo con docs, la $ schemaVersion a la que hacen referencia sus registros se introdujo en 1.0.10. Los documentos dicen que se recomienda la propiedad, pero parece que el tiempo de ejecución lo requiere. En su comentario, incluyó las propiedades deseadas, a las que le falta $ schemaVersion. Intente configurar las siguientes propiedades deseadas:

"properties":{
  "desired":{
     "routes":{},
     "schemaVersion": "1.1",
     "$metadata":{
        "$lastUpdated":"2020-11-25T18:26:39.4780665Z",
        "$lastUpdatedVersion":5,
        "routes":{
           "$lastUpdated":"2020-11-25T15:03:42.6671499Z",
           "$lastUpdatedVersion":4
        }
     }
  }
}
0
Matthijs van der Veer 21 ene. 2021 a las 16:09