Wir versuchen, Azure Stream Analytics in IoT Edge zu erkunden. Wir folgenDasLernprogramm.
Wir haben folgende Schritte durchgeführt:
- Eine Windows-VM erstellt
- Ein Edge-Gerät erstellt
- Erstellt im Azure Stream Analytics-Modul, konfigurierte Eingabe, Ausgabe und Abfrage
- Ein simulierter Temperatur-Feuchtigkeitssensor vom Azure Market Place wurde hinzugefügt.
- Azure Stream Analytic-Modul hinzugefügt
- Konfigurieren Sie Routen wie im Tutorial beschrieben und im Edge-Gerät (Azure-VM) bereitgestellt.
Mithilfe von Befehlen kann ich die 4 Elemente im Gerät (Windows-VM) sehen. Der simulierte Sensor sendet Daten, aber die im ASA-Job geschriebene Abfrage wird nicht ausgelöst. Beim Überprüfen der Protokolle von edgeHub haben wir den folgenden Fehler gefunden:
TLS-Handshake fehlgeschlagen., System.AggregateException: Ein oder mehrere Fehler sind aufgetreten. (Die dem Paket bereitgestellten Anmeldeinformationen wurden nicht erkannt) ---> System.ComponentModel.Win32Exception: Die dem Paket bereitgestellten Anmeldeinformationen wurden nicht erkannt bei System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface secModule, String package, CredentialUse intent, SCHANNEL_CRED scc) bei System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SCHANNEL_CRED secureCredential) bei System.Net.Security.SslStreamPal.AcquireCredentialsHandle(X509Certificate certificate, SslProtocols protocols, EncryptionPolicy policy, Boolean isServer) bei System.Net.Security.SecureChannel.AcquireServerCredentials(Byte[]& thumbPrint, Byte[] clientHello) bei System.Net.Security.SecureChannel.GenerateToken(Byte[] Eingabe, Int32-Offset, Int32-Anzahl, Byte[]& Ausgabe) bei System.Net.Security.SecureChannel.NextMessage(Byte[] eingehend, Int32-Offset, Int32-Anzahl) bei System.Net.Security.SslState.StartSendBlob(Byte[] eingehend, Int32-Anzahl, AsyncProtocolRequest asyncRequest) bei System.Net.Security.SslState.ProcessReceivedBlob(Byte[] Puffer, Int32-Anzahl, AsyncProtocolRequest asyncRequest) bei System.Net.Security.SslState.StartReadFrame(Byte[] Puffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) bei System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest) --- Ende des Stapeltraces vom vorherigen Ort, an dem die Ausnahme ausgelöst wurde --- bei System.Net.Security.SslState.ThrowIfExceptional() bei System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) bei System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) bei System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult) bei System.Net.Security.SslStream.<>c.b__50_2(IAsyncResult iar) bei System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task1 promise, Boolean requiresSynchronization) --- Ende des inneren Ausnahmestapeltraces --- ---> (Innere Ausnahme Nr. 0) System.ComponentModel.Win32Exception (0x8009030D): Die dem Paket bereitgestellten Anmeldeinformationen wurden nicht erkannt bei System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface secModule, String package, CredentialUse intent, SCHANNEL_CRED scc) bei System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SCHANNEL_CRED secureCredential) bei System.Net.Security.SslStreamPal.AcquireCredentialsHandle(X509Certificate certificate, SslProtocols protocols, EncryptionPolicy policy, Boolean isServer) bei System.Net.Security.SecureChannel.AcquireServerCredentials(Byte[]& thumbPrint, Byte[] clientHello) bei System.Net.Security.SecureChannel.GenerateToken(Byte[] Eingabe, Int32-Offset, Int32-Anzahl, Byte[]& Ausgabe) bei System.Net.Security.SecureChannel.NextMessage(Byte[] eingehend, Int32-Offset, Int32-Anzahl) bei System.Net.Security.SslState.StartSendBlob(Byte[] eingehend, Int32-Anzahl,AsyncProtocolRequest asyncRequest) bei System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) bei System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) bei System.Net.Security.SslState.PartialFrameCallback(AsyncProtocolRequest asyncRequest) --- Ende des Stacktraces vom vorherigen Ort, an dem die Ausnahme ausgelöst wurde --- bei System.Net.Security.SslState.ThrowIfExceptional() bei System.Net.Security.SslState.InternalEndProcessAuthentication(LazyAsyncResult lazyResult) bei System.Net.Security.SslState.EndProcessAuthentication(IAsyncResult result) bei System.Net.Security.SslStream.EndAuthenticateAsServer(IAsyncResult asyncResult) bei System.Net.Security.SslStream.<>c.b__50_2(IAsyncResult iar) bei System.Threading.Tasks.TaskFactory1.FromAsyncCoreLogic(IAsyncResult iar, Func2 endFunction, Action1 endAction, Task1 promise, Boolean requiresSynchronization)<--- , 1b20a2d4
Wir haben OpenSSL-Zertifikate in der VM erstellt und in der Datei config.yaml konfiguriert. Anschließend trat beim Überprüfen der Protokolle des ASA-Mobiltelefons oder des simulierten Sensormoduls ein Fehler auf.