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 |
Avertissement
Microsoft vous recommande d’utiliser le flux d’authentification le plus sécurisé disponible. Le flux d'authentification décrit dans cette procédure demande un degré de confiance très élevé dans l'application et comporte des risques qui ne sont pas présents dans d'autres flux. Vous ne devez utiliser ce flux que si d’autres flux plus sécurisés, tels que les identités managées, ne sont pas viables.
Prérequis
- Installer Visual Studio Code sur l’une des plateformes prises en charge.
- l’interface de ligne de commande Azure. Vous pouvez l’utiliser dans Azure Cloud Shell ou l’installer localement.
- Un compte de stockage Azure et une file d’attente de stockage. Si vous n’avez pas de compte de stockage Azure, créez-en un.
- Ce guide présuppose que vous connaissez les concepts de base présentés dans le guide du développeur Azure Functions et que vous savez comment faire pour se connecter aux services dans Functions.
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.
- 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.
- 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. - Pour vérifier que le déclencheur fonctionne correctement, laissez la fonction s’exécuter localement et ouvrez le volet File d’attente de stockage dans le Portail Azure. Sélectionnez Ajouter un message et fournissez 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.
- Ouvrez le fichier
function.json
dans votre projet local, modifiez la valeur de la propriétéconnection
enbindings
pour qu’elle soitAZURE_STORAGEQUEUE_CONNECTIONSTRING
. - 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}/resourceGroups/{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.
- Suivez ce tutoriel Azure Functions pour déployer votre fonction sur Azure.
- Ouvrez le volet File d’attente de stockage dans le Portail Azure, sélectionnez Ajouter un message et fournissez 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 (<account-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 à Stockage Azure dans le Portail Azure, copiez la chaîne de connexion à partir du volet 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.
- Dans le portail Azure, ouvrez la ressource Application de fonction et sélectionnez Supprimer.
- 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.