Créer une fonction déclenchée par Azure Cosmos DB

Découvrez comment créer une fonction dans le Portail Azure qui est déclenchée lorsque des données sont ajoutées ou modifiées dans Azure Cosmos DB. Pour plus d’informations sur Azure Cosmos DB, consultez Azure Cosmos DB : Utilisation des bases de données serverless avec Azure Functions.

Remarque

La modification dans le portail est uniquement prise en charge pour les fonctions de script JavaScript, PowerShell et C#. La modification dans le portail Python est prise en charge uniquement lors de l’exécution dans le plan Consommation. Si possible, vous devez développer vos fonctions localement.

Pour en savoir plus sur les limitations relatives à la modification du code de fonction dans le Portail Azure, consultez limitations de développement dans le Portail Azure.

Prérequis

Pour suivre ce tutoriel :

  • Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Notes

Les liaisons Azure Cosmos DB sont prises en charge uniquement pour une utilisation avec Azure Cosmos DB pour NoSQL. La prise en charge de l’API Table est fournie à l’aide des liaisons de stockage Table à partir de l’extension 5.x. Pour toutes les autres API Azure Cosmos DB, vous devez accéder à la base de données à partir de votre fonction en utilisant le client statique pour votre API, à savoir Azure Cosmos DB for MongoDB, Azure Cosmos DB for Cassandra et Azure Cosmos DB for Apache Gremlin.

Connexion à Azure

Connectez-vous au portail Azure avec votre compte Azure.

Création d’un compte Azure Cosmos DB

Vous devez disposer d’un compte Azure Cosmos DB qui utilise l’API SQL avant de créer le déclencheur.

  1. Dans le menu du portail Azure ou dans la page d’accueil, sélectionnez Créer une ressource.

  2. Rechercher Azure Cosmos DB. Sélectionnez Créer>Azure Cosmos DB.

  3. Dans la page Création d’un compte Azure Cosmos DB, sélectionnez l’option Créer dans la section Azure Cosmos DB for NoSQL.

    Azure Cosmos DB fournit plusieurs API :

    • NoSQL, pour des données de document
    • PostgreSQL
    • MongoDB, pour des données de document
    • Apache Cassandra
    • Table de charge de travail
    • Apache Gremlin, pour des données graphiques

    Pour en savoir plus sur l’API pour NoSQL, consultez Bienvenue dans Azure Cosmos DB.

  4. Sur la page Créer un compte Azure Cosmos DB, entrez les paramètres de base du nouveau compte Azure Cosmos DB.

    Paramètre valeur Description
    Abonnement Nom d’abonnement Sélectionnez l’abonnement Azure que vous souhaitez utiliser pour ce compte Azure Cosmos DB.
    Groupe de ressources Nom de groupe ressources Sélectionnez un groupe de ressources ou sélectionnez Créer, puis entrez un nom unique pour le nouveau groupe de ressources.
    Nom du compte Un nom unique Entrez un nom pour identifier votre compte Azure Cosmos DB. Étant donné que documents.azure.com est ajouté au nom que vous fournissez pour créer votre URI, utilisez un nom unique. Le nom ne peut contenir que des lettres minuscules, des chiffres et le caractère trait d’union (-). Il doit comporter entre 3 et 44 caractères.
    Emplacement La région la plus proche de vos utilisateurs Sélectionnez la zone géographique dans laquelle héberger votre compte Azure Cosmos DB. Utilisez l’emplacement le plus proche de vos utilisateurs pour leur donner l’accès le plus rapide possible aux données.
    Mode de capacité Débit approvisionné ou Serverless Sélectionnez Débit approvisionné pour créer un compte dans mode de débit approvisionné. Sélectionnez serverless pour créer un compte en mode serverless.
    Appliquer la remise de niveau gratuit Azure Cosmos DB Appliquer ou Ne pas appliquer Avec le niveau gratuit d’Azure Cosmos DB, vous recevez gratuitement 1000 RU/s et 25 Go de stockage dans un compte. Découvrez-en plus sur le niveau gratuit.
    Limiter le débit total du compte Sélectionné ou non Limiter la quantité totale de débit pouvant être approvisionné sur ce compte. Cette limite empêche les frais inattendus liés au débit approvisionné. Vous pouvez mettre à jour ou supprimer cette limite une fois votre compte créé.

    Vous pouvez avoir un seul compte Azure Cosmos DB de niveau gratuit par abonnement Azure et vous devez vous inscrire lors de la création du compte. Si vous ne voyez pas l’option permettant d’appliquer la remise de niveau gratuit, cela signifie qu’un autre compte dans l’abonnement a déjà été activé avec le niveau gratuit.

    Screenshot shows the Create Azure Cosmos DB Account page.

    Remarque

    Les options suivantes ne sont pas disponibles si vous sélectionnez Serverless comme Mode de capacité :

    • Appliquer la remise de niveau gratuit
    • Limiter le débit total du compte
  5. Sous l’onglet Distribution globale, configurez les informations suivantes. Pour ce démarrage rapide, vous pouvez conserver les valeurs par défaut :

    Paramètre valeur Description
    Géoredondance Désactiver Activez ou désactivez la diffusion mondiale sur votre compte en appairant votre région avec une région correspondante. Vous pourrez ajouter d’autres régions à votre compte ultérieurement.
    Écritures multirégions Désactiver La fonctionnalité d’écritures multirégions vous permet de tirer parti du débit provisionné pour vos bases de données et conteneurs à travers le monde.
    Zones de disponibilité Désactiver Les zones de disponibilité vous permettent d’accroître la disponibilité et d’améliorer la résilience de votre application.

    Notes

    Les options suivantes ne sont pas disponibles si vous sélectionnez Serverless comme Mode de capacité sur la page Informations de base précédente :

    • Géo-redondance
    • Écritures multirégions
  6. Si vous le souhaitez, vous pouvez configurer des informations supplémentaires sous les onglets suivants :

    • Mise en réseau. Configurez l’accès à partir d’un réseau virtuel.
    • Stratégie de sauvegarde. Configurez une stratégie de sauvegarde périodique ou continue.
    • Chiffrement. Utilisez une clé gérée par le service ou une clé gérée par le client.
    • Tags (balises). Les étiquettes sont des paires nom/valeur qui vous permettent de catégoriser les ressources et d’afficher une facturation centralisée en appliquant la même étiquette à plusieurs ressources et groupes de ressources.
  7. Sélectionnez Revoir + créer.

  8. Passez en revue les paramètres du compte, puis sélectionnez Créer. La création du compte prend quelques minutes. Attendez que la page du portail affiche Votre déploiement est terminé.

    Screenshot shows that your deployment is complete.

  9. Sélectionnez Accéder à la ressource pour accéder à la page du compte Azure Cosmos DB.

    Screenshot shows the Azure Cosmos DB account page.

Créer une application de fonction dans Azure

  1. Dans le menu du portail Azure ou dans la page Accueil, sélectionnez Créer une ressource.

  2. Dans la page Nouveau, sélectionnez Calcul>Application de fonction.

  3. Dans la page De base, utilisez les paramètres d’application de fonction comme indiqué dans le tableau ci-dessous :

    Paramètre Valeur suggérée Description
    Abonnement Votre abonnement L'abonnement sous lequel vous créez votre nouvelle application de fonction.
    Groupe de ressources myResourceGroup Nom du nouveau groupe de ressources dans lequel vous créez votre application de fonction. Vous devez créer un groupe de ressources du fait de limitations connues lors de la création d’applications de fonction dans un groupe de ressources existant.
    Nom de l’application de fonction Nom globalement unique Nom qui identifie votre nouvelle Function App. Les caractères valides sont a-z (insensible à la casse), 0-9et -.
    Voulez-vous déployer du code ou une image conteneur ? Code Option de publication de fichiers de code ou d'un conteneur Docker.
    Pile d’exécution Langage préféré Choisissez un runtime qui prend en charge votre langage de programmation de fonction favori. L’édition dans le portail n’est disponible que pour les scripts JavaScript, PowerShell, Python, TypeScript et C#. La bibliothèque de classes C# et les fonctions Java doivent être développées localement.
    Version Numéro de version Choisissez la version de votre runtime installé.
    Région Région recommandée Sélectionnez une région proche de chez vous, ou proche d’autres services auxquels vos fonctions peuvent accéder.
    Système d’exploitation Windows Un système d'exploitation est présélectionné pour vous en fonction de votre sélection de pile d'exécution, mais vous pouvez modifier ce paramètre si nécessaire. La modification sur le portail est prise en charge sur Windows uniquement. La publication de conteneurs est prise en charge uniquement sur Linux.
    Options et plans d’hébergement Consommation (serverless) Plan d’hébergement qui définit la façon dont les ressources sont allouées à votre Function App. Dans le plan de Consommation par défaut, les ressources sont ajoutées dynamiquement en fonction des besoins de vos fonctions. Avec cet hébergement serverless, vous payez uniquement pour la durée d’exécution de vos fonctions. Le plan Premium offre également une mise à l'échelle dynamique. Si vous exécutez dans un plan App Service, vous devez gérer la mise à l’échelle de votre application de fonction.
  4. Acceptez les options par défaut de création d'un nouveau compte de stockage dans l'onglet Stockage et d'une nouvelle instance Application Insight dans l'onglet Surveillance. Vous pouvez également choisir d'utiliser un compte de stockage ou une instance Application Insights existants.

  5. Sélectionnez Examiner + créer pour examiner la configuration de l'application que vous avez choisie, puis sélectionnez Créer pour approvisionner et déployer l'application de fonction.

  6. Cliquez sur l’icône Notifications en haut à droite du portail pour voir le message Le déploiement a été effectué.

  7. Sélectionnez Accéder à la ressource pour afficher votre nouvelle application de fonction. Vous pouvez également sélectionner Épingler au tableau de bord. L’épinglage permet de revenir plus facilement à cette ressource d’application de fonction à partir de votre tableau de bord.

    Screenshot of deployment notification.

Créez ensuite une fonction dans la nouvelle Function App.

Créer le déclencheur Azure Cosmos DB

  1. Dans votre application de fonction, sélectionnez Vue d’ensemble, puis sélectionnez + Créer sous Fonctions.

  2. Sous Sélectionner un modèle, faites défiler vers le bas et choisissez le modèle de déclencheur Azure Cosmos DB.

  3. Dans les détails du modèle, configurez le nouveau déclencheur avec les paramètres spécifiés dans ce tableau, puis sélectionnez Créer :

    Paramètre Valeur suggérée Description
    Nouvelle fonction Acceptez le nom par défaut Nom de la fonction.
    Connexion de compte Azure Cosmos DB Acceptez le nouveau nom par défaut Sélectionnez Nouveau, le Compte de base de données que vous avez créé précédemment, puis OK. Cette action crée un paramètre d’application pour votre connexion de compte. Ce paramètre est utilisé par la liaison pour se connecter à la base de données.
    Nom de la base de données Tâches Nom de la base de données qui inclut la collection à surveiller.
    Nom de la collection Éléments Nom de la collection à surveiller.
    Nom de collection pour les baux baux Nom de la collection dans laquelle stocker les baux.
    Créer une collection de baux si elle n’existe pas Oui Vérifie l’existence de la collection de baux et la crée automatiquement si nécessaire.

    Azure crée la fonction déclenchée Par Azure Cosmos DB en fonction des valeurs fournies.

  4. Pour afficher le code de fonction basé sur un modèle, sélectionnez Code + test.

    Azure Cosmos DB function template in C#

    Ce modèle de fonction écrit le nombre de documents et le premier ID de document dans les journaux d’activité.

Ensuite, vous vous connectez à votre compte Azure Cosmos DB et créez le conteneur Items dans la base de données Tasks.

Créer le conteneur d’éléments

  1. Ouvrez une deuxième instance du portail Azure sous un nouvel onglet dans le navigateur.

  2. Sur le côté gauche du portail, développez la barre d’icônes, tapez cosmos dans le champ de recherche, puis sélectionnez Azure Cosmos DB.

    Search for the Azure Cosmos DB service

  3. Sélectionnez votre compte Azure Cosmos DB, puis sélectionnez Explorateur de données.

  4. Sous API SQL, choisissez la base de données Tâches et sélectionnez Nouveau conteneur.

    Create a container

  5. Dans Ajouter un conteneur, utilisez les paramètres présentés dans le tableau situé sous l’image.

    Define the Tasks container

    Paramètre Valeur suggérée Description
    ID de base de données Tâches Nom de votre nouvelle base de données. Ce nom doit correspondre au nom défini dans votre liaison de fonction.
    ID de conteneur Éléments Nom du nouveau conteneur. Ce nom doit correspondre au nom défini dans votre liaison de fonction.
    Clé de partition /category Clé de partition qui distribue les données uniformément à chaque partition. Il est important de sélectionner la clé de partition correcte pour obtenir un conteneur performant.
    Débit 400 RU Utilisez la valeur par défaut. Si vous souhaitez réduire la latence, vous pourrez augmenter le débit par la suite.
  6. Cliquez sur OK pour créer le conteneur d’éléments. La création du conteneur peut prendre un peu de temps.

Une fois que le conteneur spécifié dans la liaison de fonction a été créé, vous pouvez tester la fonction en ajoutant des éléments à ce nouveau conteneur.

Tester la fonction

  1. Développez le nouveau conteneur Éléments dans l’Explorateur de données, choisissez Éléments, puis sélectionnez Nouvel élément.

    Create an item in Items container

  2. Remplacez le contenu du nouvel élément par le contenu suivant, puis choisissez Enregistrer.

    {
        "id": "task1",
        "category": "general",
        "description": "some task"
    }
    
  3. Passez au premier onglet de navigateur qui contient votre fonction dans le portail. Développez les journaux d’activité de la fonction et vérifiez que le nouveau document a déclenché la fonction. La valeur d’ID de document task1 doit être écrite dans les journaux d’activité.

    View message in the logs.

  4. (Facultatif) Accédez à votre document, apportez une modification, puis cliquez sur Mettre à jour. Ensuite, revenez aux journaux d’activité de la fonction, puis vérifiez que la mise à jour a également déclenché la fonction.

Nettoyer les ressources

Les autres démarrages rapides de cette collection reposent sur ce démarrage rapide. Si vous envisagez d’utiliser d’autres guides de démarrage rapide ou tutoriels, ou l’un des services que vous avez créés dans ce guide de démarrage rapide, ne supprimez pas les ressources.

Ressources dans Azure fait référence aux applications de fonction, fonctions, comptes de stockage, et ainsi de suite. Elles sont rassemblées en groupes de ressources, et vous pouvez supprimer tous les éléments d’un groupe en supprimant le groupe.

Vous avez créé des ressources pour effectuer ces démarrages rapides. Vous pouvez être facturé pour ces ressources en fonction de l’état de votre compte et de la tarification du service. Si vous n’avez plus besoin des ressources, voici comment les supprimer :

  1. Dans le portail Azure, accédez à la page Groupe de ressources.

    Pour accéder à cette page à partir de la page de l’application de fonction, sélectionnez l’onglet Vue d’ensemble, puis le lien situé sous Groupe de ressources.

    Screenshot that shows select the resource group to delete from the function app page.

    Pour accéder à la page à partir du tableau de bord, sélectionnez Groupes de ressources, puis le groupe de ressources que vous avez utilisé pour cet article.

  2. Dans la page Groupe de ressources, passez en revue la liste des ressources incluses et vérifiez qu’elles correspondent à celles que vous souhaitez supprimer.

  3. Sélectionnez Supprimer le groupe de ressources et suivez les instructions.

    La suppression peut prendre quelques minutes. Une fois terminée, une notification s’affiche pendant quelques secondes. Vous pouvez également sélectionner l’icône représentant une cloche en haut de la page pour afficher la notification.

Étapes suivantes

Vous avez créé une fonction qui s’exécute quand un document est ajouté ou modifié dans votre base de données Azure Cosmos DB. Pour plus d’informations sur les déclencheurs Azure Cosmos DB, consultez Liaisons Azure Cosmos DB pour Azure Functions.

Maintenant que vous avez créé votre première fonction, nous allons y ajouter une liaison de sortie qui écrit un message dans une file d’attente de stockage.