Partager via


Démarrage rapide : Répondre aux modifications de base de données dans Azure Cosmos DB à l’aide d’Azure Functions

Dans ce guide de démarrage rapide, vous utilisez Visual Studio Code pour créer une application qui répond aux modifications de base de données dans une base de données No SQL database dans Azure Cosmos DB. Après avoir testé le code localement, vous le déployez sur une nouvelle application de fonction serverless que vous créez et qui s’exécute dans un plan Consommation flexible dans Azure Functions.

La source du projet utilise l’extension Azure Developer CLI (azd) avec Visual Studio Code pour simplifier l’initialisation et la vérification de votre code de projet localement, ainsi que le déploiement de votre code sur Azure. Ce déploiement suit les bonnes pratiques actuelles pour les déploiements Azure Functions sécurisés et scalables.

Important

Lors de la réponse aux modifications apportées à une base de données Azure Cosmos DB Aucune base de données SQL n’est prise en charge pour tous les langages, ce scénario de démarrage rapide ne contient actuellement que des exemples pour C#, Python et TypeScript. Pour suivre ce guide de démarrage rapide, sélectionnez l’une de ces langues prises en charge en haut de l’article.

Prerequisites

  • Node.js 18.x ou version ultérieure. Utilisez la commande node --version pour vérifier la version que vous utilisez.

Initialiser le projet

Vous pouvez utiliser la azd init commande à partir de la palette de commandes pour créer un projet de code Azure Functions local à partir d’un modèle.

  1. Dans Visual Studio Code, ouvrez un dossier ou un espace de travail dans lequel vous souhaitez créer votre projet.

  2. Appuyez sur F1 pour ouvrir la palette de commandes, recherchez et exécutez la commande Azure Developer CLI (azd): Initialize App (init), puis choisissez Sélectionner un modèle.

    Il se peut qu'il y ait un léger retard pendant que azd initialise le dossier ou l'espace de travail actuels.

  1. Lorsque vous y êtes invité, choisissez Sélectionner un modèle, puis recherchez et sélectionnez Azure Functions with Cosmos DB Bindings (.NET).

  2. Lorsque vous y êtes invité, entrez un nom d’environnement unique, tel que cosmosdbchanges-dotnet.

    Cette commande extrait les fichiers projet du référentiel de modèles et initialise le projet dans le dossier ou l’espace de travail actif. Dans azd, l’environnement est utilisé pour maintenir un contexte de déploiement unique pour votre application et vous pouvez en définir plusieurs. Il fait également partie du nom du groupe de ressources que vous créez dans Azure.

  1. Lorsque vous y êtes invité, choisissez Sélectionner un modèle, puis recherchez et sélectionnez Azure Functions TypeScript CosmosDB trigger.

  2. Lorsque vous y êtes invité, entrez un nom d’environnement unique, tel que cosmosdbchanges-ts.

    Cette commande extrait les fichiers projet du référentiel de modèles et initialise le projet dans le dossier ou l’espace de travail actif. Dans azd, l’environnement est utilisé pour maintenir un contexte de déploiement unique pour votre application et vous pouvez en définir plusieurs. Il fait également partie du nom du groupe de ressources que vous créez dans Azure.

  1. Lorsque vous y êtes invité, choisissez Sélectionner un modèle, puis recherchez et sélectionnez Azure Functions Python with CosmosDB triggers and bindings....

  2. Lorsque vous y êtes invité, entrez un nom d’environnement unique, tel que cosmosdbchanges-py.

    Cette commande extrait les fichiers projet du référentiel de modèles et initialise le projet dans le dossier ou l’espace de travail actif. Dans azd, l’environnement est utilisé pour maintenir un contexte de déploiement unique pour votre application et vous pouvez en définir plusieurs. Il fait également partie du nom du groupe de ressources que vous créez dans Azure.

  1. Exécutez cette commande, en fonction de votre système d’exploitation local, pour accorder aux scripts de configuration les autorisations requises :

    Exécutez cette commande avec des privilèges suffisants :

    chmod +x ./infra/scripts/*.sh
    

Avant de pouvoir exécuter votre application localement, vous devez créer les ressources dans Azure. Ce projet n’utilise pas d’émulation locale pour Azure Cosmos DB.

Créer des ressources Azure

Ce projet est configuré pour utiliser la azd provision commande pour créer une application de fonction dans un plan Flex Consumption, ainsi que d’autres ressources Azure requises qui suivent les meilleures pratiques actuelles.

  1. Dans Visual Studio Code, appuyez sur F1 pour ouvrir la palette de commandes, rechercher et exécuter la commande Azure Developer CLI (azd): Sign In with Azure Developer CLI, puis connectez-vous à l’aide de votre compte Azure.

  2. Appuyez sur F1 pour ouvrir la palette de commandes, rechercher et exécuter la commande Azure Developer CLI (azd): Provision Azure resources (provision) pour créer les ressources Azure requises :

  3. Lorsque vous y êtes invité dans la fenêtre terminal, fournissez les paramètres de déploiement requis suivants :

    Prompt Descriptif
    Sélectionner un abonnement Azure à utiliser Choisissez l’abonnement dans lequel vous souhaitez que vos ressources soient créées.
    paramètre de déploiement de lieu Région Azure dans laquelle créer le groupe de ressources qui contient les nouvelles ressources Azure. Seules sont montrées les régions qui prennent actuellement en charge le plan Consommation flexible.
    Paramètre de déploiement vnetEnabled Bien que le modèle prenne en charge la création de ressources à l’intérieur d’un réseau virtuel, pour simplifier le déploiement et le test, choisissez False.

    La azd provision commande utilise votre réponse à ces invites avec les fichiers de configuration Bicep pour créer et configurer ces ressources Azure requises, en suivant les meilleures pratiques les plus récentes :

    • Plan Consommation flexible et application de fonction
    • Compte Azure Cosmos DB
    • Stockage Azure (obligatoire) et Application Insights (recommandé)
    • Stratégies d’accès et rôles pour votre compte
    • Connexions de service à service avec des identités managées (au lieu de chaînes de connexion stockées)

    Les hooks de post-approvisionnement génèrent également le fichier local.settings.json requis lors de l’exécution localement. Ce fichier contient également les paramètres nécessaires pour se connecter à votre base de données Azure Cosmos DB dans Azure.

    Conseil / Astuce

    Si toutes les étapes échouent lors de l’approvisionnement, vous pouvez réexécuter la azd provision commande après avoir résolu les problèmes.

    Une fois la commande terminée, vous pouvez exécuter votre code de projet localement et déclencher sur la base de données Azure Cosmos DB dans Azure.

Exécuter la fonction localement

Visual Studio Code s’intègre aux outils Azure Functions Core pour vous permettre d’exécuter ce projet sur votre ordinateur de développement local avant de publier sur votre nouvelle application de fonction dans Azure.

  1. Appuyez sur F1 et dans la palette de commandes, recherchez et exécutez la commande Azurite: Start.

  2. Pour démarrer la fonction localement, appuyez sur F5 ou cliquez sur l’icône Exécuter et déboguer dans la barre d’activité de gauche. Le panneau Terminal affiche la sortie des outils principaux. Votre application démarre dans le panneau Terminal et vous pouvez voir le nom de la fonction qui s’exécute localement.

    Si vous rencontrez des problèmes d’exécution sur Windows, assurez-vous que le terminal par défaut pour Visual Studio Code n’est pas défini sur WSL Bash.

  3. Avec Core Tools toujours en cours d’exécution dans Terminal, appuyez sur F1 et dans la palette de commandes recherchez et exécutez la commande NoSQL: Create Item... , puis sélectionnez la document-db base de données et le documents conteneur.

  4. Remplacez le contenu du nouveau fichier Item.json par ces données JSON, puis sélectionnez Enregistrer :

    {
        "id": "doc1", 
        "title": "Sample document", 
        "content": "This is a sample document for testing my Azure Cosmos DB trigger in Azure Functions."
    } 
    

    Une fois que vous avez sélectionné Enregistrer, vous voyez l’exécution de la fonction dans le terminal et le document local est mis à jour pour inclure les métadonnées ajoutées par le service.

  5. Lorsque vous avez terminé, appuyez sur Ctrl + C dans la fenêtre du terminal pour arrêter le processus hôte func.exe.

Examiner le code (facultatif)

La fonction est déclenchée en fonction du flux de modification dans une base de données NoSQL Azure Cosmos DB. Ces variables d’environnement configurent la façon dont le déclencheur surveille le flux de modification :

  • COSMOS_CONNECTION__accountEndpoint: point de terminaison du compte Cosmos DB
  • COSMOS_DATABASE_NAME: nom de la base de données à surveiller
  • COSMOS_CONTAINER_NAME: nom du conteneur à surveiller

Ces variables d’environnement sont créées pour vous dans Azure (paramètres de l’application de fonction) et localement (local.settings.json) pendant l’opération azd provision .

Vous pouvez consulter le code qui définit le déclencheur Azure Cosmos DB dans le fichier projet CosmosTrigger.cs.

Vous pouvez consulter le code qui définit le déclencheur Azure Cosmos DB dans le fichier projet cosmos_trigger.ts.

Vous pouvez consulter le code qui définit le déclencheur Azure Cosmos DB dans le fichier projet function_app.py.

Après avoir examiné et vérifié votre code de fonction localement, il est temps de publier le projet sur Azure.

Déployer sur Azure

Vous pouvez exécuter la azd deploy commande à partir de Visual Studio Code pour déployer le code du projet sur vos ressources déjà approvisionnées dans Azure.

  • Appuyez sur F1 pour ouvrir la palette de commandes, rechercher et exécuter la commande Azure Developer CLI (azd): Deploy to Azure (deploy).

    La commande azd deploy emballe et déploie votre code dans le conteneur de déploiement. L’application est ensuite démarrée et s’exécute dans le package déployé.

    Une fois la commande terminée, votre application s’exécute dans Azure.

Appeler la fonction sur Azure

  1. Dans Visual Studio Code, appuyez sur F1 et, dans la palette de commandes, recherchez et exécutez la commande Azure: Open in portal, sélectionnez Function app, puis choisissez votre nouvelle application. Connectez-vous avec votre compte Azure, si nécessaire.

    Cette commande ouvre votre nouvelle application de fonction dans le portail Azure.

  2. Dans l’onglet Vue d’ensemble de la page principale, sélectionnez le nom de votre application de fonction, puis l’onglet Journaux .

  3. Utilisez la NoSQL: Create Item commande dans Visual Studio Code pour ajouter à nouveau un document au conteneur comme précédemment.

  4. Vérifiez à nouveau que la fonction est déclenchée par une mise à jour dans le conteneur surveillé.

Redéployer votre code

Vous pouvez exécuter la azd deploy commande autant de fois que nécessaire pour déployer des mises à jour de code sur votre application de fonction.

Note

Les fichiers de code déployés sont toujours remplacés par le dernier package de déploiement.

Vos réponses initiales aux invites d’azd et toutes les variables d’environnement générées par azd sont stockées localement dans votre environnement nommé. Utilisez la commande azd env get-values pour passer en revue toutes les variables de votre environnement qui ont été utilisées lors de la création de ressources Azure.

Nettoyer les ressources

Lorsque vous avez terminé d’utiliser votre application de fonction et vos ressources associées, vous pouvez utiliser cette commande pour supprimer l’application de fonction et ses ressources associées d’Azure et éviter d’engendrer de nouveaux frais :

azd down --no-prompt

Note

L’option --no-prompt indique à azd de supprimer votre groupe de ressources sans confirmation de votre part.

Cette commande n’affecte pas votre projet de code local.