Didacticiel : Fonction Python avec Stockage Table Azure en tant que sortie
Dans ce tutoriel, vous allez apprendre à configurer une fonction Python avec Stockage Table en sortie en effectuant les tâches suivantes.
- Utilisez Visual Studio Code pour créer un projet de fonction Python.
- Ajoutez une liaison de fonction de sortie Stockage Table.
- Utilisez Visual Studio Code pour exécuter la fonction localement.
- Utilisez Azure CLI pour créer une connexion entre la fonction Azure et Stockage Table 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 | Azure Storage Table |
Liaison de fonction | Déclencheur HTTP, Stockage table en tant que sortie |
Type d’authentification de 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 Stockage Table. Si vous n’avez pas de compte de stockage, créez-en un.
- Le guide part du principe que vous connaissez les concepts présentés dans le guide du développeur Functions et comment se connecter aux services dans Azure Functions.
Créez 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 HTTP trigger . |
Fournir un nom de fonction | Entrez TableStorageOutputFunc . |
Niveau d’autorisation | Choisissez Anonymous , qui permet à quiconque d’appeler le point de terminaison de votre fonction. |
Vous avez créé un projet de fonction Python avec un déclencheur HTTP.
Ajoutez une liaison de sortie d’une Stockage Table
Les attributs de liaison sont définis dans le fichier function.json pour une fonction donnée. Pour créer une liaison, cliquez avec le bouton droit (Ctrl+Clic sur macOS) sur le fichier function.json
dans le dossier de votre fonction, puis choisissez Ajouter une liaison.... Suivez les invites pour définir les propriétés de liaison suivantes pour la nouvelle liaison :
Prompt | Valeur | Description |
---|---|---|
Sélectionner le sens de la liaison | out |
La liaison est une liaison de sortie. |
Sélectionner une liaison avec un sens... | Azure Table Storage |
La liaison est une liaison de table de stockage Azure. |
Nom utilisé pour identifier cette liaison dans votre code | outMessage |
Nom qui identifie le paramètre de liaison référencé dans votre code. |
Nom de la table dans le compte de stockage, où les données seront écrites | testTable |
Le nom de la table que votre fonction écrit en sortie. Créez une table nommée testTable dans votre compte de stockage s’il n’existe pas. |
Sélectionnez le paramètre dans « local.setting.json » | Create new local app settings |
Sélectionnez le compte de stockage que votre fonction écrit en sortie. Visual Studio Code récupère sa chaîne de connexion pour la connexion de projet local. |
Pour vérifier que la liaison a été ajoutée avec succès :
- Ouvrez le fichier
TableStorageOutputFunc/function.json
, vérifiez qu’une nouvelle liaison avectype: table
etdirection: out
a été ajoutée dans ce fichier. - Ouvrez le fichier
local.settings.json
, vérifiez qu’une nouvelle paire clé-valeur<your-storage-account-name>_STORAGE: <your-storage-account-connection-string>
qui contient votre chaîne de connexion de compte de stockage a été ajoutée dans ce fichier.
Une fois la liaison ajoutée, mettez à jour vos codes de fonction pour consommer la liaison en remplaçant TableStorageOutputFunc/__init__.py
par le fichier Python ici.
import logging
import uuid
import json
import azure.functions as func
def main(req: func.HttpRequest, outMessage: func.Out[str]) -> func.HttpResponse:
rowKey = str(uuid.uuid4())
data = {
"Name": "Output binding message",
"PartitionKey": "message",
"RowKey": rowKey
}
outMessage.set(json.dumps(data))
return func.HttpResponse(f"Message created with the rowKey: {rowKey}")
Exécuter la fonction localement
Suivez le didacticiel pour exécuter la fonction localement et vérifier la sortie de la table.
- Sélectionnez le compte de stockage que vous avez choisi lors de la création de la ressource de fonction Azure si vous êtes invité à vous connecter à un compte de stockage. Cette valeur est utilisée pour le runtime Azure Function. Ce n’est pas nécessairement le même compte de stockage que celui que vous utilisez pour la sortie.
- Pour lancer la fonction localement, appuyez sur
<kbd>
F5</kbd>
ou sélectionnez l’icône Exécuter et déboguer dans la barre d’activité de gauche. - Pour vérifier que la fonction peut écrire dans votre table, cliquez avec le bouton droit sur
Execute Function Now...
sur la fonction dans la vue WORKSPACE de Visual Studio Code et vérifiez la réponse de la fonction. Le message de réponse doit contenir lerowKey
qui a été écrit dans la table.
Créez une connexion à l’aide du Connecteur de services
Lors de la dernière étape, vous avez vérifié le projet de fonction localement. Vous allez maintenant apprendre à configurer la connexion entre Azure Function et le Stockage Table Azure dans le cloud, afin que votre fonction puisse écrire dans votre blob 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
dansbindings
pour qu’elle soitAZURE_STORAGETABLE_CONNECTIONSTRING
. - Exécutez la commande Azure CLI suivante pour créer une connexion entre votre fonction Azure et votre stockage Azure.
az functionapp connection create storage-table --source-id "<your-function-resource-id>" --target-id "<your-storage-table-resource-id>" --secret
--source-id
format :/subscriptions/{subscription}/resourceGroups/{source_resource_group}/providers/Microsoft.Web/sites/{site}
--target-id
format :/subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/tableServices/default
Vous avez créé une ressource de connecteur de services qui configure une variable AZURE_STORAGETABLE_CONNECTIONSTRING
dans les paramètres d’application de fonction. Ce paramètre d’application sera ensuite consommé par la liaison de fonction pour se connecter au stockage, afin que la fonction puisse écrire dans la table de stockage. Vous pouvez en savoir plus sur comment le connecteur de services aide Azure Functions à se connecter aux services.
Déployez votre fonction sur Azure
Vous pouvez maintenant déployer votre fonction sur Azure et vérifier que la liaison de sortie de table de stockage fonctionne.
- Suivez ce didacticiel Azure Functions pour déployer votre fonction sur Azure.
- Pour vérifier que la fonction peut écrire dans la table, cliquez avec le bouton droit sur
Execute Function Now...
sur la fonction dans la vue RESOURCES de Visual Studio Code et vérifiez la réponse de la fonction. Le message de réponse doit contenir larowKey
la fonction vient d’écrire dans votre table.
Résoudre les problèmes
S’il y a des erreurs liées à l’hôte de stockage, telles que No such host is known (<account-name>.table.core.windows.net:443)
, vous devez vérifier si la chaîne de connexion que vous utilisez pour vous connecter à Azure Storage contient le point de terminaison de la table ou non. Si ce n’est pas le cas, accédez au portail Stockage 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 cela 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 de l’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 du connecteur de services et comment il aide Azure Functions à se connecter à d’autres services cloud.