Partager via


Tutoriel : fonction Python avec Stockage File d’attente Azure en tant que déclencheur

Dans ce tutoriel, vous allez apprendre à configurer une fonction Python en tant que déclencheur pour la file d’attente de stockage en effectuant les tâches suivantes.

  • Utiliser Visual Studio Code pour créer un projet de fonction Python.
  • Utilisez Visual Studio Code pour exécuter la fonction localement.
  • Utilisez Azure CLI pour créer une connexion entre la fonction Azure et Stockage File d’attente avec le connecteur de services.
  • Utilisez Visual Studio pour déployer votre fonction.

Vue d’ensemble des composants du projet de fonction dans ce tutoriel :

Composant du projet Sélection / Solution
Service source Fonction Azure
Service cible File d’attente de stockage Azure
Liaison de fonction File d’attente de stockage en tant que déclencheur
Type d’authentification du projet local Chaîne de connexion
Type d’authentification de la fonction cloud Chaîne de connexion

Prérequis

Créer un projet de fonction Python

Suivez le tutoriel pour créer un projet Azure Functions local et fournissez les informations suivantes aux demandes :

Prompt Sélection
Sélectionner une langue Choisissez Python. (modèle de langage de programmation v1)
Sélectionner un interpréteur Python pour créer un environnement virtuel Choisissez votre interpréteur Python préféré. Si une option n’est pas affichée, tapez le chemin complet de votre fichier binaire Python.
Sélectionner un modèle pour la première fonction de votre projet Choisissez Azure Queue Storage trigger.
Fournir un nom de fonction Entrez QueueStorageTriggerFunc.
Sélectionnez un paramètre dans « local.setting.json » Choisissez Create new local app settings, qui vous permet de sélectionner votre compte de stockage et de fournir le nom de votre file d’attente qui fonctionnera comme déclencheur.

Vous avez créé un projet de fonction Python avec une file d’attente stockage Azure comme déclencheur. Le projet local se connecte au stockage Azure à l’aide de la chaîne de connexion enregistrée dans le fichier local.settings.json. Enfin, la fonction main dans le fichier __init__.py de la fonction peut consommer la chaîne de connexion à l’aide de la liaison de fonction définie dans le fichier function.json.

Exécuter la fonction localement

Suivez le tutoriel pour exécuter la fonction localement et vérifier le déclencheur.

  1. En cas de demande de connexion au stockage, sélectionnez le compte de stockage que vous aviez choisi en créant la ressource de fonction Azure. Cette valeur est utilisée pour le runtime d’Azure Function, et elle n’est pas nécessairement identique au compte de stockage que vous utilisez pour le déclencheur.
  2. Pour démarrer la fonction localement, appuyez sur <kbd>F5</kbd> ou cliquez sur l’icône Exécuter et déboguer dans la barre d’activité de gauche.
  3. Pour vérifier que le déclencheur fonctionne correctement, laissez la fonction en cours d’exécution localement et ouvrez le panneau File d’attente de stockage dans le portail Azure. Sélectionnez Ajouter un message et renseignez un message de test. Vous devriez voir que la fonction est déclenchée et traitée en tant qu’élément de file d’attente dans votre terminal Visual Studio Code.

Créer une connexion à l’aide du connecteur de service

Lors de la dernière étape, vous avez vérifié le projet de fonction localement. Vous allez maintenant apprendre à configurer la connexion entre la fonction Azure et la file d’attente de stockage Azure dans le cloud, afin que votre fonction puisse être déclenchée par la file d’attente de stockage après avoir été déployée dans le cloud.

  1. Ouvrez le fichier function.json dans votre projet local, modifiez la valeur de la propriété connection en bindings pour qu’elle soit AZURE_STORAGEQUEUE_CONNECTIONSTRING.
  2. Exécutez la commande Azure CLI suivante pour créer une connexion entre votre fonction Azure et votre compte de stockage Azure.
az functionapp connection create storage-queue --source-id "<your-function-resource-id>" --target-id "<your-storage-queue-resource-id>" --secret
  • Format --source-id : /subscriptions/{subscription}/resourceG roups/{source_resource_group}/providers/Microsoft.Web/sites/{site}
  • Format --target-id : /subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/queueServices/default

Cette étape crée une ressource de connecteur de services qui configure une variable AZURE_STORAGEQUEUE_CONNECTIONSTRING dans les paramètres d’application de la fonction. Le runtime de liaison de fonction utilise cette ressource pour se connecter au stockage. Ainsi, la fonction peut accepter des déclencheurs à partir de la file d’attente de stockage. Pour plus d’informations, consultez comment le connecteur de services aide Azure Functions à se connecter aux services.

Déployer la fonction dans Azure

Vous pouvez maintenant déployer votre fonction sur Azure et vérifier que le déclencheur de file d’attente de stockage fonctionne.

  1. Suivez ce tutoriel Azure Functions pour déployer votre fonction sur Azure.
  2. Ouvrez le panneau File d’attente de stockage dans le portail Azure, sélectionnez Ajouter un message et renseignez un message de test. Vous devriez voir que la fonction est déclenchée et traitée en tant qu’élément de file d’attente dans vos journaux de fonction.

Résoudre les problèmes

S’il existe des erreurs liées à l’hôte de stockage, telles que No such host is known (<acount-name>.queue.core.windows.net:443), vérifiez si la chaîne de connexion utilisée pour vous connecter au stockage Azure contient le point de terminaison de file d’attente ou non. Si ce n’est pas le cas, accédez au Stockage Azure dans le portail Azure, copiez la chaîne de connexion à partir du panneau Access keys et remplacez les valeurs.

Si cette erreur se produit lorsque vous démarrez le projet localement, vérifiez le fichier local.settings.json.

Si cette erreur se produit lorsque vous déployez votre fonction dans le cloud (dans ce cas, le déploiement de la fonction échoue généralement sur Syncing triggers ), vérifiez les paramètres d’application de votre fonction.

Nettoyer les ressources

Si vous ne souhaitez pas continuer à utiliser ce projet, supprimez la ressource d’application de fonction que vous avez créée précédemment.

  1. Dans le portail Azure, ouvrez la ressource Application de fonction et sélectionnez Supprimer.
  2. Entrez le nom de l’application et sélectionnez Supprimer pour confirmer.

Étapes suivantes

Lisez les articles ci-dessous pour en savoir plus sur les concepts de connecteur de services et sur la façon dont il aide Azure Functions à se connecter aux services.