Ćwiczenie — dodawanie konfiguracji usługi Azure Storage do aplikacji

Ukończone

Dodajmy do naszej aplikacji .NET core obsługę pobierania parametrów połączenia z pliku konfiguracji. Zaczniemy od dodania niezbędnej instalacji hydraulicznej do zarządzania konfiguracją w pliku JSON.

Tworzenie pliku konfiguracji w formacie JSON

  1. Zmień katalog na katalog PhotoSharingApp, jeśli jeszcze tego nie zrobiono:

    cd PhotoSharingApp
    
  2. Wprowadź następujące polecenie, aby użyć touch narzędzia do utworzenia pliku o nazwie appsettings.json:

    touch appsettings.json
    
  3. Otwórz projekt w edytorze. Jeśli pracujesz lokalnie, możesz użyć wybranego edytora. Firma Microsoft zaleca program Visual Studio Code, który jest rozszerzalnym wieloplatformowym środowiskiem IDE. Jeśli pracujesz w usłudze Azure Cloud Shell (po prawej stronie), zalecamy edytor usługi Cloud Shell. Użyj następującego polecenia, aby otworzyć edytor w dowolnym środowisku:

    code .
    
  4. W edytorze wybierz plik appsettings.json i dodaj następujący tekst:

    {
        "ConnectionStrings": {
            "StorageAccount": "<value>"
        }
    }
    
  5. Zapisz plik przy użyciu skrótu klawiaturowego (Ctrl+S) lub wybierz pozycję Zapisz z menu kontekstowego (wybierz ikonę wielokropka ... na pasku tytułu edytora).

  6. Teraz potrzebujemy polecenia platformy Azure, aby uzyskać rzeczywiste konto magazynu parametry połączenia. W sesji usługi Cloud Shell wklej następujące polecenie, zastępując <name> ciąg unikatową nazwą konta magazynu utworzoną w poprzednim ćwiczeniu, a następnie naciśnij klawisz Enter , aby uruchomić polecenie:

    az storage account show-connection-string \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --query connectionString \
      --name <name>
    
  7. Odpowiedź zawiera parametry połączenia ograniczone przez cudzysłowy, co wygląda podobnie do następującego przykładu:

    "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=storage1ab;AccountKey=QtSCGB...7AeoW0Hw=="
    
  8. Skopiuj parametry połączenia i w pliku appsettings.json w edytorze zastąp <value> symbol zastępczy tym parametry połączenia.

  9. Naciśnij klawisze Ctrl+S , aby zapisać plik.

  10. W edytorze otwórz plik projektu PhotoSharingApp.csproj.

  11. Skopiuj i wklej następujący blok konfiguracji pod istniejącym <ItemGroup> blokiem.

    <ItemGroup>
        <None Update="appsettings.json">
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>
    </ItemGroup>
    
  12. Naciśnij klawisze Ctrl+S , aby zapisać plik. (Musisz zapisać ten plik lub utracisz zmianę po dodaniu następującego pakietu!)

Dodawanie obsługi odczytu pliku konfiguracji w formacie JSON

W konsoli usługi Cloud Shell skopiuj i uruchom następujący kod, aby dodać odwołanie do pakietu NuGet Microsoft.Extensions.Configuration.Json :

dotnet add package Microsoft.Extensions.Configuration.Json

Dodawanie kodu na potrzeby odczytywania pliku konfiguracji

Teraz, gdy dodaliśmy wymagane biblioteki, aby umożliwić odczytywanie konfiguracji, musimy włączyć tę funkcję w naszej aplikacji konsolowej.

  1. W edytorze wybierz pozycję Program.cs.

  2. W górnej części pliku znajduje się skomentowany wiersz kodu. Usuń ten wiersz i dodaj następujące wiersze kodu w górnej części pliku:

    using System;    
    using Microsoft.Extensions.Configuration;
    using System.IO;
    
  3. Zastąp zawartość metody Main (wiersz zawierający ciąg "Hello World!") następującym kodem:

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

    Ten kod inicjuje odczytanie pliku appsettings.json przez system konfiguracji.

    Plik Program.cs powinien teraz wyglądać następująco:

    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. Zapisz plik.

Dodajmy do naszej aplikacji Node.js obsługę pobierania parametrów połączenia z pliku konfiguracji. Zaczniemy od dodania niezbędnej instalacji hydraulicznej do zarządzania konfiguracją z naszego pliku JavaScript.

Tworzenie pliku konfiguracji .env

  1. W sesji usługi Azure Cloud Shell wprowadź następujące polecenie, aby upewnić się, że jesteś w poprawnym katalogu roboczym dla projektu.

    cd PhotoSharingApp 
    
  2. Wprowadź następujące polecenie, aby utworzyć plik o nazwie env:

    touch .env
    
  3. Otwórz projekt w edytorze usługi Cloud Shell:

    code .
    
  4. W edytorze wybierz plik env i dodaj następujący tekst.

    Uwaga

    Może być konieczne wybranie przycisku odświeżenia w kodzie, aby wyświetlić nowe pliki.

    AZURE_STORAGE_CONNECTION_STRING=<value>
    

    Napiwek

    AZURE_STORAGE_CONNECTION_STRING jest ustaloną zmienną środowiskową używaną do wyszukiwania kluczy dostępu przez interfejsy API usługi Storage.

  5. Zapisz plik przy użyciu skrótu klawiaturowego (Ctrl+S) lub wybierz ikonę wielokropka (...) na pasku tytułu edytora, a następnie wybierz pozycję Zapisz z menu kontekstowego.

  6. Teraz potrzebujemy polecenia platformy Azure, aby uzyskać rzeczywiste konto magazynu parametry połączenia. W sesji usługi Cloud Shell uruchom następujące polecenie, zastępując <name> ciąg nazwą konta magazynu utworzoną w poprzednim ćwiczeniu.

    az storage account show-connection-string \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --query connectionString \
      --name <name>
    
  7. Odpowiedź jest parametry połączenia ograniczona cudzysłowami, która wygląda podobnie do następującego przykładu:

    "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=storage1ab;AccountKey=QtSCGB...7AeoW0Hw=="  
    
  8. Skopiuj parametry połączenia i zastąp element <value> w pliku env tym parametry połączenia.

  9. Naciśnij klawisze Ctrl+S , aby zapisać plik.

Dodawanie obsługi odczytu pliku konfiguracji środowiska

Aplikacje Node.js mogą dołączyć obsługę odczytu z pliku .env przez dodanie pakietu dotenv.

  1. W sesji usługi Cloud Shell uruchom następujące polecenie, aby dodać zależność do pakietu dotenv przy użyciu polecenia npm:

    npm install dotenv --save
    

Dodawanie kodu na potrzeby odczytywania pliku konfiguracji

Teraz, gdy dodaliśmy wymagane biblioteki, aby umożliwić odczytywanie konfiguracji, musimy włączyć tę funkcję w naszej aplikacji.

  1. W edytorze otwórz plik index.js .

  2. W górnej części pliku znajduje się wiersz kodu #!/usr/bin/env node. Poniżej tego wiersza dodaj następujący wiersz kodu:

    require('dotenv').config();
    
  3. Naciśnij klawisze Ctrl+S , aby zapisać plik.

Teraz, gdy mamy już skonfigurowaną konfigurację JSON, możemy rozpocząć dodawanie kodu, aby użyć naszego konta magazynu.