Exercice - Ajouter la configuration de stockage Azure à votre application

Effectué

Ajoutons la prise en charge à notre application .NET Core pour récupérer une chaîne de connexion à partir d’un fichier de configuration. Nous commençons par ajouter les éléments nécessaires pour gérer une configuration dans un fichier JSON.

Créer un fichier de configuration JSON

  1. Accédez au répertoire PhotoSharingApp si vous n’y êtes pas déjà :

    cd PhotoSharingApp
    
  2. Entrez la commande suivante afin d’utiliser l’outil touch pour créer un fichier nommé appsettings.json :

    touch appsettings.json
    
  3. Ouvrez le projet dans un éditeur. Si vous travaillez localement, vous pouvez utiliser l’éditeur de votre choix. Nous vous recommandons Visual Studio Code, qui est un IDE multiplateforme extensible. Si vous travaillez dans Azure Cloud Shell (à droite), nous vous recommandons l’éditeur de Cloud Shell. Utilisez la commande suivante pour ouvrir l’éditeur dans un des environnements :

    code .
    
  4. Dans l’éditeur, sélectionnez le fichier appsettings.json, puis ajoutez le texte suivant :

    {
        "ConnectionStrings": {
            "StorageAccount": "<value>"
        }
    }
    
  5. Enregistrez le fichier en utilisant le raccourci clavier (Ctrl+S) ou sélectionnez Enregistrer dans le menu contextuel (sélectionnez l’icône représentant des points de suspension ... dans la barre de titre de l’éditeur).

  6. À présent, nous devons utiliser une commande Azure pour obtenir la chaîne de connexion réelle du compte de stockage. Dans la session Cloud Shell, collez la commande suivante en remplaçant <name> par le nom unique du compte de stockage que vous avez créé dans l’exercice précédent, puis appuyez sur Entrée pour exécuter la commande :

    az storage account show-connection-string \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --query connectionString \
      --name <name>
    
  7. La réponse contient la chaîne de connexion délimitée par des guillemets, qui ressemble beaucoup à l’exemple suivant :

    "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=storage1ab;AccountKey=QtSCGB...7AeoW0Hw=="
    
  8. Copiez la chaîne de connexion puis, dans le fichier appsettings.json ouvert dans l’éditeur, remplacez l’espace réservé <value> par cette chaîne de connexion.

  9. Appuyez sur Ctrl+S pour enregistrer le fichier.

  10. Dans l’éditeur, ouvrez le fichier projet PhotoSharingApp.csproj.

  11. Copiez le bloc de configuration suivant et collez-le sous le bloc <ItemGroup> existant.

    <ItemGroup>
        <None Update="appsettings.json">
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>
    </ItemGroup>
    
  12. Appuyez sur Ctrl+S pour enregistrer le fichier. (Veillez à enregistrer ce fichier. Sinon, vous perdrez les changements quand vous ajouterez le package suivant.)

Ajouter la prise en charge pour lire un fichier de configuration JSON

Dans la console Cloud Shell, copiez le code suivant et exécutez-le pour ajouter une référence au package NuGet Microsoft.Extensions.Configuration.Json :

dotnet add package Microsoft.Extensions.Configuration.Json

Ajouter du code pour lire le fichier de configuration

Maintenant que nous avons ajouté les bibliothèques nécessaires pour permettre la lecture de la configuration, nous devons activer cette fonctionnalité dans notre application console.

  1. Dans l’éditeur, sélectionnez Program.cs.

  2. Une ligne de code commentée est présente en haut du fichier. Supprimez cette ligne et ajoutez les lignes de code suivantes en haut du fichier :

    using System;    
    using Microsoft.Extensions.Configuration;
    using System.IO;
    
  3. Remplacez le contenu de la méthode Main (la ligne contient « Hello World! ») par le code suivant :

    namespace PhotoSharingApp
    {
        class Program
        {
            static void Main(string[] args)
            {
                var builder = new ConfigurationBuilder()
                    .SetBasePath(Directory.GetCurrentDirectory())
                    .AddJsonFile("appsettings.json");
    
                var configuration = builder.Build();
            }
        }
    }
    

    Ce code initialise le système de configuration pour lire à partir du fichier appsettings.json.

    Votre fichier Program.cs doit maintenant se présenter comme ceci :

    using System;
    using Microsoft.Extensions.Configuration;
    using System.IO;
    
    namespace PhotoSharingApp
    {
        class Program
        {
            static void Main(string[] args)
            {
                var builder = new ConfigurationBuilder()
                    .SetBasePath(Directory.GetCurrentDirectory())
                    .AddJsonFile("appsettings.json");
    
                var configuration = builder.Build();
            }
        }
    }
    
  4. Enregistrez le fichier .

Ajoutons la prise en charge de notre application Node.js pour récupérer une chaîne de connexion à partir d’un fichier de configuration. Nous commençons par ajouter les éléments nécessaires pour gérer une configuration à partir de notre fichier JavaScript.

Créer un fichier de configuration .env

  1. Dans la session Azure Cloud Shell, entrez la commande suivante pour vérifier que vous êtes dans le bon répertoire de travail de votre projet.

    cd PhotoSharingApp 
    
  2. Entrez la commande suivante pour créer un fichier nommé .env :

    touch .env
    
  3. Ouvrez le projet dans l’éditeur Cloud Shell :

    code .
    
  4. Dans l’éditeur, sélectionnez le fichier .env et ajoutez le texte suivant.

    Remarque

    Vous devrez peut-être sélectionner le bouton Actualiser dans le code pour voir les nouveaux fichiers.

    AZURE_STORAGE_CONNECTION_STRING=<value>
    

    Conseil

    AZURE_STORAGE_CONNECTION_STRING est une variable d’environnement codée en dur utilisée pour que les API de stockage recherchent des clés d’accès.

  5. Enregistrez le fichier en utilisant le raccourci clavier (Ctrl+S) ou sélectionnez l’icône représentant des points de suspension (...) dans la barre de titre de l’éditeur, puis sélectionnez Enregistrer dans le menu contextuel.

  6. À présent, nous devons utiliser une commande Azure pour obtenir la chaîne de connexion réelle du compte de stockage. Dans la session Cloud Shell, exécutez la commande suivante en remplaçant <name> par le nom du compte de stockage que vous avez créé dans l’exercice précédent.

    az storage account show-connection-string \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --query connectionString \
      --name <name>
    
  7. La réponse est une chaîne de connexion délimitée par des guillemets, qui ressemble beaucoup à l’exemple suivant :

    "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=storage1ab;AccountKey=QtSCGB...7AeoW0Hw=="  
    
  8. Copiez la chaîne de connexion, puis remplacez <value> par cette chaîne dans le fichier .env.

  9. Appuyez sur Ctrl+S pour enregistrer le fichier.

Ajouter la prise en charge pour lire un fichier de configuration d’environnement

Les applications Node.js peuvent inclure la prise en charge de la lecture à partir du fichier .env en ajoutant le package dotenv.

  1. Dans la session Cloud Shell, exécutez la commande suivante pour ajouter une dépendance au package dotenv en utilisant npm :

    npm install dotenv --save
    

Ajouter du code pour lire le fichier de configuration

Maintenant que nous avons ajouté les bibliothèques nécessaires pour permettre la lecture de la configuration, nous devons activer cette fonctionnalité dans notre application.

  1. Dans l’éditeur, ouvrez le fichier index.js.

  2. Une ligne de code #!/usr/bin/env node se trouve en haut du fichier. Sous cette ligne, ajoutez la ligne de code suivante :

    require('dotenv').config();
    
  3. Appuyez sur Ctrl+S pour enregistrer le fichier.

Maintenant que la configuration JSON est prête, nous pouvons commencer à ajouter du code pour utiliser notre compte de stockage.