Partager via


Appeler un point de terminaison gRPC depuis un pipeline Processeur de données Azure IoT (préversion)

Important

Opérations Azure IoT (préversion) – activé parc Azure Arc est actuellement en PRÉVERSION. Vous ne devez pas utiliser ce logiciel en préversion dans des environnements de production.

Pour connaître les conditions juridiques qui s’appliquent aux fonctionnalités Azure en version bêta, en préversion ou plus généralement non encore en disponibilité générale, consultez l’Avenant aux conditions d’utilisation des préversions de Microsoft Azure.

Utilisez l’index d’appel gRPC pour appeler un gRPC externe avec un corps de requête facultatif et recevoir une réponse facultative. L’index d’appel vous permet d’incorporer une logique de traitement des données personnalisée, telle que l’exécution de modèles Machine Learning, dans le traitement du pipeline.

  • Chaque partition d’un pipeline exécute indépendamment les appels d’API en parallèle.
  • Les appels d’API sont synchrones, l’index attend le retour de l’appel avant de poursuivre le traitement du pipeline.
  • Actuellement, l’index prend uniquement en charge le type RPC unaire.
  • L’appel gRPC ne peut être utilisé qu’avec le format Protobuf. Vous devez utiliser le Protobuf avec l’index d’appel gRPC.

Prérequis

Pour configurer et utiliser un index de pipeline d’appel gRPC, vous avez besoin des éléments suivants :

  • Une instance déployée d’Azure IoT Data Processor (préversion) qui inclut le composant Data Processor facultatif.
  • Un serveur gRPC accessible à partir de l’instance du processeur de données.
  • L’outil protoc permettant de générer le descripteur.

Configurer un index d’appel gRPC

La configuration JSON de l’index d’appel gRPC définit les détails de l’index. Pour créer l’index, vous pouvez interagir avec l’interface utilisateur basée sur le formulaire ou fournir la configuration JSON sous l’onglet Avancé.

Nom Type Description Obligatoire Par défaut Exemple
Nom chaîne Nom à afficher dans l’interface utilisateur du processeur de données. Oui - MLCall2
Description string Une description conviviale de ce que fait l’index d’appel. Non Call ML endpoint 2
Server address string L’adresse du serveur gRPC. Oui - https://localhost:1313
Nom RPC string Nom RPC à appeler Oui - GetInsights
Descripteur1 string Descripteur codé en base 64. Oui - CuIFChxnb29nb
Authentification string Type d’authentification à utiliser. None/Metadata. Oui None None
Clé de métadonnées string Clé de métadonnées à utiliser lorsque Authentication est défini sur Metadata. Non authorization authorization
Secret string La référence secrète à utiliser lorsque Authentication est défini sur Metadata. Non - mysecret
Activer TLS boolean Activation ou non de TLS. Le processeur de données prend actuellement en charge l’authentification basée sur TLS avec un certificat public. Non false true
Requête API > Chemin du corps Chemin d’accès Chemin d’accès à la partie du message du processeur de données qui doit être sérialisé et défini comme corps de la requête. Laissez vide si vous n’avez pas besoin d’envoyer un corps de la demande. Non - .payload.gRPCRequest
Requête API > Métadonnées > Clé2 Champ statique/dynamique Clé de métadonnées à définir dans la requête. Non Champ statique/dynamique
Requête API > Métadonnées > Valeur2 Champ statique/dynamique Valeur des métadonnées à définir dans la requête. Non Champ statique/dynamique
Réponse API > Chemin du corps Chemin d’accès Le chemin d’accès à la propriété dans le message sortant dans lequel stocker la réponse. Laissez vide si vous n’avez pas besoin du corps de la réponse. Non - .payload.gRPCResponse
Réponse API > Métadonnées Chemin d’accès Le chemin d’accès à la propriété dans le message sortant dans lequel stocker les métadonnées de la réponse. Laissez vide si vous n’avez pas besoin des métadonnées de la réponse. Non - .payload.gRPCResponseHeader
Réponse API > État Chemin d’accès Le chemin d’accès à la propriété dans le message sortant dans lequel stocker l’état de la réponse. Laissez vide si vous n’avez pas besoin de l’état de la réponse. Non - .payload.gRPCResponseStatus

1Descripteur : étant donné que l’index d’appel gRPC prend uniquement en charge le format protobuf, vous utilisez les mêmes définitions de format pour la demande et la réponse. Pour sérialiser le corps de la requête et désérialiser le corps de la réponse, vous avez besoin d’un descripteur codé en base 64 du fichier .proto.

Utilisez la commande suivante pour générer le descripteur, remplacez <proto-file> par le nom de votre fichier .proto :

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

Utilisez la sortie de la commande précédente comme descriptor dans la configuration.

2Requête API > Métadonnées : chaque élément du tableau de métadonnées est une paire clé-valeur. Vous pouvez définir dynamiquement la clé ou la valeur en fonction du contenu du message entrant ou sous forme de chaîne statique.