Övning – Lägga till Azure Storage-konfiguration i din app

Slutförd

Nu ska vi lägga till stöd i vårt .NET Core-program för att hämta en anslutningssträng från en konfigurationsfil. Vi börjar med att lägga till nödvändig VVS för att hantera en konfiguration i en JSON-fil.

Skapa en JSON-konfigurationsfil

  1. Ändra katalogen till katalogen PhotoSharingApp om du inte redan är där:

    cd PhotoSharingApp
    
  2. Ange följande kommando för att använda touch verktyget för att skapa en fil med namnet appsettings.json:

    touch appsettings.json
    
  3. Öppna projektet i en redigerare. Om du arbetar lokalt kan du använda valfri redigerare. Vi rekommenderar Visual Studio Code, som är en utökningsbar plattformsoberoende IDE. Om du arbetar i Azure Cloud Shell (till höger) rekommenderar vi Cloud Shell-redigeraren. Använd följande kommando för att öppna redigeraren i någon av miljöerna:

    code .
    
  4. I redigeraren väljer du filen appsettings.json och lägger till följande text:

    {
        "ConnectionStrings": {
            "StorageAccount": "<value>"
        }
    }
    
  5. Spara filen med kortkommandot (Ctrl+S) eller välj Spara på snabbmenyn (välj ellipsikonen ... i redigerarens namnlist).

  6. Nu behöver vi använda ett Azure-kommando för att hämta det faktiska lagringskontot anslutningssträng. I Cloud Shell-sessionen klistrar du in följande kommando och ersätter <name> med det unika lagringskontonamnet som du skapade i föregående övning och trycker sedan på Retur för att köra kommandot:

    az storage account show-connection-string \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --query connectionString \
      --name <name>
    
  7. Svaret innehåller anslutningssträng avgränsade med citattecken, vilket ser ut ungefär som i följande exempel:

    "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=storage1ab;AccountKey=QtSCGB...7AeoW0Hw=="
    
  8. Kopiera anslutningssträng och ersätt <value> platshållaren med den här anslutningssträng i filen appsettings.json i redigeraren.

  9. Spara filen genom att trycka på Ctrl+S .

  10. Öppna projektfilen PhotoSharingApp.csproj i redigeraren.

  11. Kopiera och klistra in följande konfigurationsblock under det befintliga <ItemGroup> blocket.

    <ItemGroup>
        <None Update="appsettings.json">
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>
    </ItemGroup>
    
  12. Spara filen genom att trycka på Ctrl+S . (Du måste spara den här filen, annars förlorar du ändringen när du lägger till följande paket!)

Lägga till stöd för läsning från en JSON-konfigurationsfil

I Cloud Shell-konsolen kopierar och kör du följande kod för att lägga till en referens till NuGet-paketet Microsoft.Extensions.Configuration.Json :

dotnet add package Microsoft.Extensions.Configuration.Json

Lägga till kod för att läsa konfigurationsfilen

Nu när vi har lagt till de bibliotek som krävs för att kunna läsa konfigurationen måste vi aktivera den funktionen i konsolprogrammet.

  1. I redigeraren väljer du Program.cs.

  2. Överst i filen finns en kommenterad kodrad. Ta bort raden och lägg till följande kodrader överst i filen:

    using System;    
    using Microsoft.Extensions.Configuration;
    using System.IO;
    
  3. Ersätt innehållet i Main-metoden (raden som innehåller "Hello World!") med följande kod:

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

    Den här koden initierar konfigurationssystemet och får det att läsa från filen appsettings.json.

    Filen Program.cs bör nu se ut så här:

    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. Spara filen.

Nu ska vi lägga till stöd i vår Node.js-app för att hämta en anslutningssträng från en konfigurationsfil. Vi börjar med att lägga till nödvändig VVS för att hantera en konfiguration från vår JavaScript-fil.

Skapa en .env-konfigurationsfil

  1. I Azure Cloud Shell-sessionen anger du följande kommando för att se till att du är i rätt arbetskatalog för projektet.

    cd PhotoSharingApp 
    
  2. Ange följande kommando för att skapa en fil med namnet .env:

    touch .env
    
  3. Öppna projektet i Cloud Shell-redigeraren:

    code .
    
  4. I redigeraren väljer du .env-filen och lägger till följande text.

    Kommentar

    Du kan behöva välja uppdateringsknappen i koden för att se de nya filerna.

    AZURE_STORAGE_CONNECTION_STRING=<value>
    

    Dricks

    AZURE_STORAGE_CONNECTION_STRING är en hårdkodad miljövariabel som används för att storage-API:er ska söka efter åtkomstnycklar.

  5. Spara filen med kortkommandot (Ctrl+S) eller välj ellipsikonen (...) i namnlisten i redigeraren och välj sedan Spara på snabbmenyn.

  6. Nu behöver vi använda ett Azure-kommando för att hämta det faktiska lagringskontot anslutningssträng. I Cloud Shell-sessionen kör du följande kommando och ersätter <name> med namnet på lagringskontot som du skapade i föregående övning.

    az storage account show-connection-string \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --query connectionString \
      --name <name>
    
  7. Svaret är en anslutningssträng avgränsad av citattecken, vilket ser ut ungefär som i följande exempel:

    "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=storage1ab;AccountKey=QtSCGB...7AeoW0Hw=="  
    
  8. Kopiera anslutningssträng och ersätt <value> i .env-filen med den här anslutningssträng.

  9. Spara filen genom att trycka på Ctrl+S .

Lägga till stöd för läsning från en miljökonfigurationsfil

Node.js-appar kan innehålla stöd för att läsa från .env-filen om du lägger till paketet dotenv.

  1. I Cloud Shell-sessionen kör du följande kommando för att lägga till ett beroende i dotenv-paketet med hjälp av npm:

    npm install dotenv --save
    

Lägga till kod för att läsa konfigurationsfilen

Nu när vi har lagt till de bibliotek som krävs för att kunna läsa konfigurationen måste vi aktivera den funktionen i vårt program.

  1. Öppna filen index.js i redigeraren.

  2. Överst i filen finns en kodrad #!/usr/bin/env node. Lägg till följande kodrad under den raden:

    require('dotenv').config();
    
  3. Spara filen genom att trycka på Ctrl+S .

Nu när JSON-konfigurationen är kopplad kan vi börja lägga till kod för att använda vårt lagringskonto.