Share via


Anropa en gRPC-slutpunkt från en Azure IoT Data Processor Preview-pipeline

Viktigt!

Förhandsversion av Azure IoT Operations – aktiverad av Azure Arc finns för närvarande i FÖRHANDSVERSION. Du bör inte använda den här förhandsgranskningsprogramvaran i produktionsmiljöer.

Juridiska villkor för Azure-funktioner i betaversion, förhandsversion eller som av någon annan anledning inte har gjorts allmänt tillgängliga ännu finns i kompletterande användningsvillkor för Microsoft Azure-förhandsversioner.

Använd gRPC-fasen för att anropa en extern gRPC med en valfri begärandetext och få ett valfritt svar. Med anropssteget kan du införliva anpassad databearbetningslogik, till exempel att köra maskininlärningsmodeller, i pipelinebearbetningen.

  • Varje partition i en pipeline kör API-anropen parallellt.
  • API-anrop är synkrona, fasen väntar på att anropet ska returneras innan du fortsätter med ytterligare pipelinebearbetning.
  • För närvarande stöder fasen endast Unary RPC-typen.
  • gRPC-pratbubblor kan bara användas med Protobuf-formatet . Du måste använda Protobuf med gRPC-anropssteget.

Förutsättningar

För att konfigurera och använda en gRPC cal lout pipeline-fas behöver du:

  • En distribuerad instans av förhandsversionen av Azure IoT Data Processor.
  • En gRPC-server som är tillgänglig från dataprocessorinstansen.
  • Verktyget protoc för att generera beskrivningen.

Konfigurera en gRPC-anropsfas

JSON-konfigurationen för gRPC-anropssteget definierar detaljerna i fasen. Om du vill skapa fasen kan du antingen interagera med det formulärbaserade användargränssnittet eller ange JSON-konfigurationen på fliken Avancerat .

Namn Type Beskrivning Obligatoriskt Standardvärde Exempel
Name sträng Ett namn som ska visas i användargränssnittet för dataprocessorn. Ja - MLCall2
beskrivning sträng En användarvänlig beskrivning av vad fasen i anropet gör. Nej Call ML endpoint 2
Server address sträng GRPC-serveradressen. Ja - https://localhost:1313
RPC-namn sträng RPC-namnet som ska anropas Ja - GetInsights
Beskrivning 1 sträng Den grundläggande 64-kodade beskrivningen. Ja - CuIFChxnb29nb
Autentisering sträng Den autentiseringstyp som ska användas. None/Metadata. Ja None None
Metadatanyckel sträng Metadatanyckeln som ska användas när Authentication är inställd på Metadata. Nej authorization authorization
Hemlig sträng Den hemliga referens som ska användas när Authentication är inställd på Metadata. Nej - mysecret
Aktivera TLS boolean Om TLS ska aktiveras. Dataprocessorn stöder för närvarande TLS-baserad autentisering med offentligt certifikat. Nej false true
Sökväg för API-begärandetext > Sökväg Sökvägen till den del av dataprocessormeddelandet som ska serialiseras och anges som begärandetext. Lämna tomt om du inte behöver skicka en begärandetext. Nej - .payload.gRPCRequest
API-begärandemetadatanyckel >>2 Statiskt/dynamiskt fält Metadatanyckeln som ska anges i begäran. Nej Statiskt/dynamiskt fält
API-begärandemetadatavärde >>2 Statiskt/dynamiskt fält Metadatavärdet som ska anges i begäran. Nej Statiskt/dynamiskt fält
Sökväg för API-svarstext > Sökväg Sökvägen till egenskapen i det utgående meddelandet för att lagra svaret i. Lämna tomt om du inte behöver svarstexten. Nej - .payload.gRPCResponse
API-svarsmetadata > Sökväg Sökvägen till egenskapen i det utgående meddelandet för att lagra svarsmetadata i. Lämna tomt om du inte behöver svarsmetadata. Nej - .payload.gRPCResponseHeader
API-svarsstatus > Sökväg Sökvägen till egenskapen i det utgående meddelandet för att lagra svarsstatusen i. Lämna tomt om du inte behöver svarsstatusen. Nej - .payload.gRPCResponseStatus

1Beskrivning: Eftersom gRPC-anropssteget endast stöder protobuf-formatet använder du samma formatdefinitioner för både begäran och svar. För att serialisera begärandetexten och deserialisera svarstexten behöver du en grundläggande 64-kodad beskrivning av .proto-filen.

Använd följande kommando för att generera beskrivningen och ersätt <proto-file> med namnet på .proto-filen:

protoc --descriptor_set_out=/dev/stdout --include_imports <proto-file> | base64 | tr '\n' ' ' | sed 's/[[:space:]]//g'

Använd utdata från föregående kommando som descriptor i konfigurationen.

2API-begärandemetadata>: Varje element i metadatamatrisen är ett nyckelvärdepar. Du kan ange nyckeln eller värdet dynamiskt baserat på innehållet i det inkommande meddelandet eller som en statisk sträng.