Chiamare un endpoint gRPC da una pipeline di anteprima del processore di dati IoT di Azure
Importante
Anteprima delle operazioni di Azure IoT: abilitata da Azure Arc è attualmente disponibile in ANTEPRIMA. Non è consigliabile usare questo software di anteprima negli ambienti di produzione.
Vedere le condizioni per l'utilizzo supplementari per le anteprime di Microsoft Azure per termini legali aggiuntivi che si applicano a funzionalità di Azure in versione beta, in anteprima o in altro modo non ancora disponibili a livello generale.
Usare la fase di chiamata gRPC per chiamare un gRPC esterno con un corpo della richiesta facoltativo e ricevere una risposta facoltativa. La fase di chiamata consente di incorporare la logica di elaborazione dei dati personalizzata, ad esempio l'esecuzione di modelli di Machine Learning, nell'elaborazione della pipeline.
- Ogni partizione in una pipeline esegue in modo indipendente le chiamate API in parallelo.
- Le chiamate API sono sincrone, la fase attende che la chiamata venga restituita prima di continuare con un'ulteriore elaborazione della pipeline.
- Attualmente, la fase supporta solo il tipo RPC unario.
- Il callout gRPC può essere usato solo con il formato Protobuf . È necessario usare protobuf con la fase di chiamata gRPC.
Prerequisiti
Per configurare e usare una fase della pipeline gRPC cal lout, è necessario:
- Istanza distribuita di Azure IoT Data Processor Preview che include il componente facoltativo responsabile del trattamento dei dati.
- Un server gRPC accessibile dall'istanza del responsabile del trattamento dei dati.
- Strumento
protoc
per generare il descrittore.
Configurare una fase di chiamata gRPC
La configurazione JSON della fase di chiamata gRPC definisce i dettagli della fase. Per creare la fase, è possibile interagire con l'interfaccia utente basata su form o specificare la configurazione JSON nella scheda Avanzate .
Nome | Tipo | Descrizione | Richiesto | Valore predefinito | Esempio |
---|---|---|---|---|---|
Nome | string | Nome da visualizzare nell'interfaccia utente del responsabile del trattamento dei dati. | Sì | - | MLCall2 |
Descrizione | stringa | Descrizione intuitiva delle operazioni eseguite dalla fase di chiamata. | No | Call ML endpoint 2 |
|
Server address | string | Indirizzo del server gRPC. | Sì | - | https://localhost:1313 |
Nome RPC | string | Nome RPC da chiamare | Sì | - | GetInsights |
Descrittore1 | string | Descrittore codificato in base 64. | Sì | - | CuIFChxnb29nb |
Autenticazione | string | Tipo di autenticazione da usare. None /Metadata . |
Sì | None |
None |
Chiave dei metadati | string | Chiave di metadati da usare quando Authentication è impostata Metadata su . |
No | authorization |
authorization |
Segreto | string | Riferimento al segreto da usare quando Authentication è impostato su Metadata . |
No | - | mysecret |
Abilitare TLS | boolean | Indica se abilitare TLS. Attualmente il responsabile del trattamento dei dati supporta l'autenticazione basata su TLS con un certificato pubblico. | No | false |
true |
Percorso del corpo della richiesta > API | Percorso | Percorso della parte del messaggio del responsabile del trattamento dei dati che deve essere serializzato e impostato come corpo della richiesta. Lasciare vuoto se non è necessario inviare un corpo della richiesta. | No | - | .payload.gRPCRequest |
Chiavemetadati > richiesta > API 2 | Campo statico/dinamico | Chiave di metadati da impostare nella richiesta. | No | Campo statico/dinamico | |
Valoremetadati > richiesta > API 2 | Campo statico/dinamico | Valore dei metadati da impostare nella richiesta. | No | Campo statico/dinamico | |
Percorso corpo risposta > API | Percorso | Percorso della proprietà nel messaggio in uscita in cui archiviare la risposta. Lasciare vuoto se non è necessario il corpo della risposta. | No | - | .payload.gRPCResponse |
Metadati di risposta > API | Percorso | Percorso della proprietà nel messaggio in uscita in cui archiviare i metadati della risposta. Lasciare vuoto se non sono necessari i metadati della risposta. | No | - | .payload.gRPCResponseHeader |
Stato risposta > API | Percorso | Percorso della proprietà nel messaggio in uscita in cui archiviare lo stato della risposta. Lasciare vuoto se non è necessario lo stato della risposta. | No | - | .payload.gRPCResponseStatus |
1Descrittore: poiché la fase di chiamata gRPC supporta solo il formato protobuf, si usano le stesse definizioni di formato sia per la richiesta che per la risposta. Per serializzare il corpo della richiesta e deserializzare il corpo della risposta, è necessario un descrittore con codifica base 64 del file proto.
Usare il comando seguente per generare il descrittore, sostituire <proto-file>
con il nome del file con estensione proto:
protoc --descriptor_set_out=/dev/stdout --include_imports <proto-file> | base64 | tr '\n' ' ' | sed 's/[[:space:]]//g'
Usare l'output del comando precedente come descriptor
nella configurazione.
2Metadati richiesta > API: ogni elemento nella matrice di metadati è una coppia di valori chiave. È possibile impostare la chiave o il valore in modo dinamico in base al contenuto del messaggio in arrivo o come stringa statica.
Contenuto correlato
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per