Tutoriel : Déclencher une tâche Batch à l’aide d’Azure Functions
Dans ce tutoriel, vous allez apprendre à déclencher une tâche Batch à l’aide d’Azure Functions. Cet article décrit un exemple qui prend en charge les documents ajoutés à un conteneur d’objets blob stockage Azure qui applique la reconnaissance optique de caractères (OCR) à l’aide de Azure Batch. Pour rationaliser le traitement OCR, cet exemple configure une fonction Azure qui exécute une tâche OCR Batch chaque fois qu’un fichier est ajouté au conteneur d’objets blob. Vous allez apprendre à effectuer les actions suivantes :
- Utilisez le Portail Azure pour créer des pools et des tâches.
- Créez des conteneurs d’objets blob et une signature d’accès partagé (SAP).
- Créer une fonction Azure déclenchée par un objet blob.
- Charger des fichiers d’entrée sur le stockage.
- Surveiller l’exécution d’une tâche.
- Récupérer les fichiers de sortie.
Prérequis
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Un compte Azure Batch et un compte Stockage Azure lié. Consultez Créer un compte Batch pour plus d’informations sur la façon de créer et lier des comptes.
Connexion à Azure
Connectez-vous au portail Azure.
Créer un pool Batch et une tâche Batch avec le Portail Azure
Dans cette section, vous allez utiliser le Portail Azure pour créer le pool Batch et la tâche Batch qui vont exécuter les tâches de reconnaissance optique de caractères (OCR).
Créer un pool
Connectez-vous au Portail Azure à l’aide de vos informations d’identification Azure.
Créez un pool en sélectionnant Pools dans la barre de navigation gauche, puis sélectionnez le bouton Ajouter au-dessus du formulaire de recherche.
- Entrez un ID de pool. Cet exemple nomme le pool
ocr-pool
. - Sélectionnez canonique comme serveur de publication.
- Sélectionnez 0001-com-ubuntu-server-jammy comme Offre.
- Sélectionnez 22_04-lts comme référence SKU.
- Choisissez
Standard_F2s_v2 - 2 vCPUs, 2 GB Memory
comme taille de machine virtuelle dans la section Taille du nœud. - Définissez Mode dans la section Mise à l’échelle sur Fixe, puis entrez 3 pour les Nœuds dédiés cibles.
- Définissez Démarrer la tâche sur Activé la tâche de démarrage, puis entrez la commande
/bin/bash -c "sudo update-locale LC_ALL=C.UTF-8 LANG=C.UTF-8; sudo apt-get update; sudo apt-get -y install ocrmypdf"
dans Ligne de commande. Veillez à définir le Niveau d'élévation sur utilisateur automatique du Pool, administrateur, ce qui permet aux tâches de démarrage d’inclure des commandes avecsudo
. - Sélectionnez OK.
- Entrez un ID de pool. Cet exemple nomme le pool
Créer un travail
- Créez une tâche sur le pool en sélectionnant Tâches dans la barre de navigation gauche, puis le bouton Ajouter au-dessus du formulaire de recherche.
- Entrez un ID de tâche. Cet exemple utilise
ocr-job
. - Sélectionnez
ocr-pool
pour le Pool actuel, ou le nom que vous avez choisi pour votre pool. - Sélectionnez OK.
- Entrez un ID de tâche. Cet exemple utilise
Créer des conteneurs d’objets blob
Ici, vous allez créer des conteneurs d’objets blob pour stocker vos fichiers d’entrée et de sortie pour la tâche Batch de reconnaissance optique de caractères (OCR). Dans cet exemple, le conteneur d’entrée est nommé input
et correspond à l’emplacement auquel tous les documents sans reconnaissance optique de caractères (OCR) sont initialement chargés à des fins de traitement. Le conteneur de sortie est nommé output
et correspond à l’emplacement auquel la tâche Batch écrit des documents traités avec la reconnaissance optique de caractères (OCR).
Dans le Portail Azure, recherchez et sélectionnez Comptes de stockage.
Choisissez votre compte de stockage lié à votre compte Batch.
Sélectionnez Conteneurs dans la navigation de gauche, et créez deux conteneurs d’objets blob (un pour les fichiers d’entrée, un pour les fichiers de sortie) en suivant les étapes indiquées dans Créer un conteneur d’objets blob.
Créez une signature d’accès partagé pour votre conteneur de sortie en sélectionnant le conteneur de sortie, puis, dans la page Jetons d’accès partagé, sélectionnez Écrire dans la liste déroulante Autorisations. Aucune autre autorisation n’est nécessaire.
Sélectionnez Générer un jeton SAS et une URL, puis copiez l’URL SAS d’objet blob à utiliser ultérieurement pour votre fonction.
Création d’une fonction Azure
Dans cette section, vous allez créer la fonction Azure qui déclenche la tâche Batch de reconnaissance optique de caractères (OCR) chaque fois qu’un fichier est chargé dans votre conteneur d’entrée.
Suivez les étapes indiquées dans Créer une fonction déclenchée par un stockage Blob Azure pour créer une fonction.
- Pour la pile d’exécution, choisissez .NET. Cet exemple de fonction utilise C# pour tirer parti du Kit de développement logiciel (SDK) Batch .NET.
- Dans la page Stockage, utilisez le même compte de stockage que celui que vous avez lié à votre compte Batch.
- Sélectionnez Vérifier + créer > Créer.
La capture d’écran suivante de la page Créer une application de fonction sous l’onglet Informations de base à l’aide d’exemples d’informations.
Dans votre fonction, sélectionnez Fonctions dans le volet de navigation gauche, puis sélectionnez Créer.
Dans le volet Créer une fonction, sélectionnez Stockage Blob Azure déclencheur.
Entrez un nom pour votre fonction dans Nouvelle fonction. Dans cet exemple, le nom est OcrTrigger. Entrez le chemin d’accès sous la forme
input/{name}
, où entrée dans le nom de votre conteneur d’objets blob.Sélectionnez Create (Créer).
Une fois que vous avez créé la fonction déclenchée par un objet blob, sélectionnez Code + test. Utilisez les fichiers
run.csx
etfunction.proj
de GitHub dans la fonction.function.proj
n’existe pas par défaut. Par conséquent, sélectionnez le bouton Charger pour le charger dans votre espace de travail de développement.-
run.csx
est exécuté quand un nouvel objet blob est ajouté à votre conteneur d’objets blob d’entrée. -
function.proj
liste les bibliothèques externes dans votre code de fonction, par exemple, le SDK .NET Batch.
-
Modifiez les valeurs des espaces réservés des variables dans la fonction
Run()
du fichierrun.csx
pour qu’elles reflètent vos informations d’identification Batch et de stockage. Celles-ci figurent, dans le portail Azure, dans la section Clés de votre compte Batch et de stockage.
Déclencher la fonction et récupérer les résultats
Chargez sur votre conteneur d’entrée une partie ou la totalité des fichiers analysés à partir du répertoire input_files
de GitHub.
Vous pouvez tester votre fonction à partir de Portail Azure sur la page Code + Test de votre fonction.
- Sélectionnez Tester/exécuter dans la page Code + Test.
- Entrez le chemin d’accès de votre conteneur d’entrée dans Corps sous l’onglet Entrée.
- Sélectionnez Exécuter.
À l’issue de quelques secondes, le fichier avec la reconnaissance optique de caractères (OCR) appliquée est ajouté au conteneur de sortie. Les sorties d’informations de journal dans la fenêtre inférieure. Ce fichier est alors visible et récupérable sur l’Explorateur Stockage.
Vous pouvez également trouver les informations de journal sur la page Surveiller :
2019-05-29T19:45:25.846 [Information] Creating job...
2019-05-29T19:45:25.847 [Information] Accessing input container <inputContainer>...
2019-05-29T19:45:25.847 [Information] Adding <fileName> as a resource file...
2019-05-29T19:45:25.848 [Information] Name of output text file: <outputTxtFile>
2019-05-29T19:45:25.848 [Information] Name of output PDF file: <outputPdfFile>
2019-05-29T19:45:26.200 [Information] Adding OCR task <taskID> for <fileName> <size of fileName>...
Pour télécharger les fichiers de sortie sur votre ordinateur local, accédez au conteneur de sortie dans votre compte de stockage. Sélectionnez d’autres options sur le fichier souhaité, puis sélectionnez Télécharger.
Conseil
Les fichiers téléchargés peuvent faire l’objet d’une recherche si vous les ouvrez dans un lecteur PDF.
Nettoyer les ressources
Vous êtes facturé pour le pool pendant que les nœuds sont en cours d’exécution, même si aucun travail n’est planifié. Quand vous n’avez plus besoin du pool, supprimez-le en procédant comme suit :
- Dans la page Pools de votre compte Batch, sélectionnez d’autres options sur votre pool.
- Sélectionnez Supprimer.
Lorsque vous supprimez le pool, toutes les sorties de tâche sur les nœuds sont supprimées. Toutefois, les fichiers de sortie restent dans le compte de stockage. Quand vous n’en avez plus besoin, vous pouvez également supprimer le compte Batch et le compte de stockage.
Étapes suivantes
Pour plus d’exemples d’utilisation de l’API .NET pour planifier et traiter les charges de travail Batch, consultez les exemples sur GitHub.