Упражнение. Добавление конфигурации службы хранилища Azure в приложение

Завершено

Давайте добавим в приложении .NET Core возможность извлекать строку подключения из файла конфигурации. Мы начнем с добавления необходимых конфигурационных данных для управления конфигурацией в JSON-файле.

Создание файла конфигурации в формате JSON

  1. Измените каталог на каталог PhotoSharingApp, если вы еще не там:

    cd PhotoSharingApp
    
  2. Введите следующую команду, чтобы использовать touch средство для создания файла с именем appsettings.json:

    touch appsettings.json
    
  3. Откройте проект в редакторе. Если вы работаете локально, можно использовать любой редактор. Рекомендуется Visual Studio Code, который является расширяемой кроссплатформенной интегрированной средой разработки. Если вы работаете в Azure Cloud Shell (справа), мы рекомендуем редактор Cloud Shell. Используйте следующую команду, чтобы открыть редактор в любой среде:

    code .
    
  4. В редакторе выберите файл appsettings.json и добавьте следующий текст:

    {
        "ConnectionStrings": {
            "StorageAccount": "<value>"
        }
    }
    
  5. Сохраните файл с помощью сочетания клавиш (CTRL+S) или выберите "Сохранить " в контекстном меню (щелкните значок с многоточием ... в строке заголовка редактора).

  6. Теперь нам нужна команда Azure, чтобы получить фактические строка подключения учетной записи хранения. В сеансе Cloud Shell вставьте следующую команду, заменив <name> уникальное имя учетной записи хранения, созданное в предыдущем упражнении, а затем нажмите клавишу ВВОД , чтобы выполнить команду:

    az storage account show-connection-string \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --query connectionString \
      --name <name>
    
  7. Ответ содержит строку подключения, заключенную в кавычки и выглядящую примерно так, как показано в следующем примере:

    "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=storage1ab;AccountKey=QtSCGB...7AeoW0Hw=="
    
  8. Скопируйте строка подключения и в файле appsettings.json в редакторе замените <value> заполнитель этим строка подключения.

  9. Нажмите клавиши CTRL + S, чтобы сохранить файл.

  10. Откройте в редакторе файл проекта PhotoSharingApp.csproj.

  11. Скопируйте и вставьте следующий блок конфигурации под существующим блоком <ItemGroup>.

    <ItemGroup>
        <None Update="appsettings.json">
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>
    </ItemGroup>
    
  12. Нажмите клавиши CTRL + S, чтобы сохранить файл. (Сохраните этот файл, в противном случае при добавлении пакета ниже все изменения не будут сохранены.)

Добавление поддержки для чтения файла конфигурации JSON

В консоли Cloud Shell скопируйте и запустите следующий код, чтобы добавить ссылку на пакет NuGet Microsoft.Extensions.Configuration.Json :

dotnet add package Microsoft.Extensions.Configuration.Json

Добавление кода для чтения файла конфигурации

Теперь, когда мы добавили необходимые библиотеки для настройки чтения, нам нужно включить эту возможность в нашем консольном приложении.

  1. Выберите файл Program.cs в редакторе.

  2. В верхней части файла находится закомментированная строка кода. Удалите такую строку и добавьте в начало файла следующие строки кода:

    using System;    
    using Microsoft.Extensions.Configuration;
    using System.IO;
    
  3. Замените содержимое метода Main (строка, содержащая "Hello World!") следующим кодом:

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

    Этот код инициализирует систему конфигурации для чтения из файла appsettings.json.

    Файл Program.cs должен выглядеть примерно так:

    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. Сохраните файл.

Давайте добавим в приложении Node.js возможность извлекать строку подключения из файла конфигурации. Мы начнем с добавления необходимых конфигурационных данных для управления конфигурацией из нашего файла JavaScript.

Создание ENV-файла конфигурации

  1. В сеансе Azure Cloud Shell введите следующую команду, чтобы убедиться, что вы находитесь в правильном рабочем каталоге проекта.

    cd PhotoSharingApp 
    
  2. Введите следующую команду, чтобы создать файл с именем .env:

    touch .env
    
  3. Откройте проект в редакторе Cloud Shell:

    code .
    
  4. Выберите ENV-файл в редакторе и добавьте в него приведенный ниже текст.

    Примечание.

    Чтобы увидеть новые файлы, может потребоваться выбрать кнопку обновления в коде.

    AZURE_STORAGE_CONNECTION_STRING=<value>
    

    Совет

    AZURE_STORAGE_CONNECTION_STRING — это жестко закодированная переменная среды, которая используется для служба хранилища API для поиска ключей доступа.

  5. Сохраните файл с помощью сочетания клавиш (CTRL+S) или щелкните значок с многоточием (...) в заголовке редактора, а затем нажмите кнопку "Сохранить " в контекстном меню.

  6. Теперь с помощью команды Azure нужно получить действительную строку подключения учетной записи хранения. В сеансе Cloud Shell выполните следующую команду, заменив <name> именем учетной записи хранения, созданной в предыдущем упражнении.

    az storage account show-connection-string \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --query connectionString \
      --name <name>
    
  7. Ответ — это строка подключения, заключенная в кавычки и выглядящая примерно так, как показано в следующем примере:

    "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=storage1ab;AccountKey=QtSCGB...7AeoW0Hw=="  
    
  8. Скопируйте строка подключения и замените <value> в env-файле этим строка подключения.

  9. Нажмите клавиши CTRL + S, чтобы сохранить файл.

Добавление поддержки для чтения файла конфигурации среды

В приложениях Node.js можно реализовать поддержку чтения ENV-файла, добавив пакет dotenv.

  1. В сеансе Cloud Shell выполните следующую команду, чтобы добавить зависимость в пакет dotenv с помощью npm:

    npm install dotenv --save
    

Добавление кода для чтения файла конфигурации

Теперь, когда мы добавили необходимые библиотеки для настройки чтения, нам нужно включить эту возможность в нашем приложении.

  1. Откройте файл index.js в редакторе.

  2. В верхней части файла находится строка кода #!/usr/bin/env node. Под этой строкой добавьте следующую строку кода:

    require('dotenv').config();
    
  3. Нажмите клавиши CTRL + S, чтобы сохранить файл.

Теперь, когда файл конфигурации JSON готов, мы можем добавить код для использования учетной записи хранения.