Partager via


Tutoriel : Déclencher un travail Batch à l’aide d’Azure Functions

Dans ce tutoriel, vous allez apprendre à déclencher un travail Batch à l’aide d’Azure Functions. Cet article décrit un exemple dans lequel des documents sont ajoutés à un conteneur d'objets blob de stockage Azure, et la reconnaissance optique de caractères (OCR) est appliquée en utilisant Azure Batch. Pour simplifier le traitement OCR, cet exemple configure une fonction Azure qui exécute un travail OCR Batch chaque fois qu’un fichier est ajouté au conteneur d’objets blob. Vous apprenez à :

  • Utilisez le portail Azure pour créer des pools et des travaux.
  • Créez des conteneurs d’objets blob et une signature d’accès partagé (SAS).
  • Créez 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.

Prerequisites

Connexion à Azure

Connectez-vous au portail Azure.

Créer un pool Batch et un travail Batch à l’aide du portail Azure

Dans cette section, vous utilisez le portail Azure pour créer le pool Batch et le job Batch qui exécute des tâches OCR.

Créer un pool

  1. Connectez-vous au portail Azure à l’aide de vos informations d’identification Azure.

  2. Créez un pool en sélectionnant Pools dans le volet de navigation gauche, puis sélectionnez le bouton Ajouter au-dessus du formulaire de recherche.

    Capture d’écran de la page Pools d’un compte Batch qui met en surbrillance le bouton Ajouter.

    1. Entrez un ID de pool. Cet exemple nomme le pool ocr-pool.
    2. Sélectionnez Canonical comme éditeur.
    3. Sélectionnez 0001-com-ubuntu-server-jammy comme offre.
    4. Sélectionnez 22_04-lts comme Sku.
    5. Choisissez Standard_F2s_v2 - 2 vCPUs, 2 GB Memory la taille de la machine virtuelle dans la section Taille du nœud .
    6. Définissez le mode dans la section échelle sur Fixe, puis entrez 3 pour les nœuds dédiés cibles.
    7. 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 avec sudo.
    8. Cliquez sur OK.

Créer un travail

  1. Créez un travail sur le pool en sélectionnant Travaux dans le volet de navigation gauche, puis choisissez le bouton Ajouter au-dessus du formulaire de recherche.
    1. Entrez un ID de travail. Cet exemple utilise ocr-job.
    2. Sélectionnez ocr-pool le pool actuel ou le nom que vous avez choisi pour votre pool.
    3. Cliquez sur OK.

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 est l’endroit où tous les documents sans OCR sont initialement chargés pour le traitement. Le conteneur de sortie est nommé output et est l’endroit où le travail Batch écrit des documents traités avec OCR.

  1. Recherchez et sélectionnez Comptes de stockage dans le portail Azure.

  2. Choisissez votre compte de stockage lié à votre compte Batch.

  3. Sélectionnez Conteneurs dans la navigation de gauche, puis créez deux conteneurs d’objets blob (un pour les fichiers d’entrée, un pour les fichiers de sortie) en suivant les étapes de création d’un conteneur d’objets blob.

  4. 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.

  5. Sélectionnez Générer un jeton SAS et une URL, puis copiez l’URL SAS de blob pour utilisation ultérieure dans votre fonction.

    Capture d’écran de la page Jetons d’accès partagé qui met en évidence la liste déroulante Autorisations et le bouton Générer un jeton SAS et un bouton URL.

Création d’une fonction Azure

Dans cette section, vous allez créer la fonction Azure qui déclenche le travail OCR Batch chaque fois qu’un fichier est chargé dans votre conteneur d’entrée.

  1. Suivez les étapes décrites dans Créer une fonction déclenchée par stockage Blob Azure pour créer une fonction.

    1. 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.
    2. Dans la page Stockage , utilisez le même compte de stockage que celui que vous avez lié à votre compte Batch.
    3. Sélectionnez Vérifier + Créer>.

    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.

    Capture d’écran de la page Créer une application de fonction sous l’onglet Informations de base à l’aide d’exemples d’informations.

  2. Dans votre fonction, sélectionnez Fonctions dans le volet de navigation gauche, puis sélectionnez Créer.

  3. Dans le volet Créer une fonction , sélectionnez déclencheur Stockage Blob Azure.

  4. Entrez un nom pour votre fonction dans New Function. 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.

  5. Cliquez sur Créer.

    Capture d'écran du volet Créer une fonction qui met en évidence l'option de déclenchement du stockage Blob Azure et les champs Nouvelle fonction et Chemin d'accès.

  6. Une fois la fonction déclenchée par l’objet blob créée, sélectionnez Code + Test. Utilisez les balises run.csx et function.proj de GitHub dans la fonction. function.proj n’existe pas par défaut. Sélectionnez le bouton Charger pour le charger dans votre espace de travail de développement.

    • run.csx est exécuté lorsqu’un nouvel objet blob est ajouté à votre conteneur d’objets blob d’entrée.
    • function.proj répertorie les bibliothèques externes dans votre code de fonction, par exemple le Kit de développement logiciel (SDK) Batch .NET.
  7. Modifiez les valeurs de substitution des variables dans la fonction Run() dans le fichier run.csx pour refléter vos identifiants Batch et de stockage. Vous trouverez vos informations d’identification de compte de stockage et Batch 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 l’un ou l’ensemble des fichiers analysés à partir du input_files répertoire sur GitHub vers votre conteneur d’entrée.

Vous pouvez tester votre fonction à partir du portail Azure sur la page Code + Test de votre fonction.

  1. Sélectionnez Test/exécution sur la page Code + Test .
  2. Entrez le chemin d’accès de votre conteneur d’entrée dans Corps sous l’onglet Entrée .
  3. Sélectionnez Exécuter.

Après quelques secondes, le fichier avec OCR appliqué est ajouté au conteneur de sortie. Les informations de journalisation s’affichent dans la fenêtre inférieure. Le fichier est ensuite visible et récupérable dans l’Explorateur Stockage.

Vous pouvez aussi trouver les informations du fichier journal sur la page Moniteur :

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 / Astuce

Les fichiers téléchargés peuvent faire l’objet d’une recherche s’ils sont ouverts 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é. Lorsque vous n’avez plus besoin du pool, supprimez-le en procédant comme suit :

  1. Dans la page Pools de votre compte Batch, sélectionnez d’autres options sur votre pool.
  2. Sélectionnez Supprimer.

Lorsque vous supprimez le pool, tous les résultats de tâche sur les nœuds sont supprimés. 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 des charges de travail Batch, consultez les exemples sur GitHub.