Упражнение. Добавление конфигурации службы хранилища Azure в приложение
Давайте добавим в приложении .NET Core возможность извлекать строку подключения из файла конфигурации. Мы начнем с добавления необходимых конфигурационных данных для управления конфигурацией в JSON-файле.
Создание файла конфигурации в формате JSON
Измените каталог на каталог PhotoSharingApp, если вы еще не там:
cd PhotoSharingApp
Введите следующую команду, чтобы использовать
touch
средство для создания файла с именем appsettings.json:touch appsettings.json
Откройте проект в редакторе. Если вы работаете локально, можно использовать любой редактор. Рекомендуется Visual Studio Code, который является расширяемой кроссплатформенной интегрированной средой разработки. Если вы работаете в Azure Cloud Shell (справа), мы рекомендуем редактор Cloud Shell. Используйте следующую команду, чтобы открыть редактор в любой среде:
code .
В редакторе выберите файл appsettings.json и добавьте следующий текст:
{ "ConnectionStrings": { "StorageAccount": "<value>" } }
Сохраните файл с помощью сочетания клавиш (CTRL+S) или выберите "Сохранить " в контекстном меню (щелкните значок с многоточием
...
в строке заголовка редактора).Теперь нам нужна команда Azure, чтобы получить фактические строка подключения учетной записи хранения. В сеансе Cloud Shell вставьте следующую команду, заменив
<name>
уникальное имя учетной записи хранения, созданное в предыдущем упражнении, а затем нажмите клавишу ВВОД , чтобы выполнить команду:az storage account show-connection-string \ --resource-group <rgn>[sandbox resource group name]</rgn> \ --query connectionString \ --name <name>
Ответ содержит строку подключения, заключенную в кавычки и выглядящую примерно так, как показано в следующем примере:
"DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=storage1ab;AccountKey=QtSCGB...7AeoW0Hw=="
Скопируйте строка подключения и в файле appsettings.json в редакторе замените
<value>
заполнитель этим строка подключения.Нажмите клавиши CTRL + S, чтобы сохранить файл.
Откройте в редакторе файл проекта PhotoSharingApp.csproj.
Скопируйте и вставьте следующий блок конфигурации под существующим блоком
<ItemGroup>
.<ItemGroup> <None Update="appsettings.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> </ItemGroup>
Нажмите клавиши CTRL + S, чтобы сохранить файл. (Сохраните этот файл, в противном случае при добавлении пакета ниже все изменения не будут сохранены.)
Добавление поддержки для чтения файла конфигурации JSON
В консоли Cloud Shell скопируйте и запустите следующий код, чтобы добавить ссылку на пакет NuGet Microsoft.Extensions.Configuration.Json :
dotnet add package Microsoft.Extensions.Configuration.Json
Добавление кода для чтения файла конфигурации
Теперь, когда мы добавили необходимые библиотеки для настройки чтения, нам нужно включить эту возможность в нашем консольном приложении.
Выберите файл Program.cs в редакторе.
В верхней части файла находится закомментированная строка кода. Удалите такую строку и добавьте в начало файла следующие строки кода:
using System; using Microsoft.Extensions.Configuration; using System.IO;
Замените содержимое метода 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(); } } }
Сохраните файл.
Давайте добавим в приложении Node.js возможность извлекать строку подключения из файла конфигурации. Мы начнем с добавления необходимых конфигурационных данных для управления конфигурацией из нашего файла JavaScript.
Создание ENV-файла конфигурации
В сеансе Azure Cloud Shell введите следующую команду, чтобы убедиться, что вы находитесь в правильном рабочем каталоге проекта.
cd PhotoSharingApp
Введите следующую команду, чтобы создать файл с именем .env:
touch .env
Откройте проект в редакторе Cloud Shell:
code .
Выберите ENV-файл в редакторе и добавьте в него приведенный ниже текст.
Примечание.
Чтобы увидеть новые файлы, может потребоваться выбрать кнопку обновления в коде.
AZURE_STORAGE_CONNECTION_STRING=<value>
Совет
AZURE_STORAGE_CONNECTION_STRING — это жестко закодированная переменная среды, которая используется для служба хранилища API для поиска ключей доступа.
Сохраните файл с помощью сочетания клавиш (CTRL+S) или щелкните значок с многоточием (
...
) в заголовке редактора, а затем нажмите кнопку "Сохранить " в контекстном меню.Теперь с помощью команды Azure нужно получить действительную строку подключения учетной записи хранения. В сеансе Cloud Shell выполните следующую команду, заменив
<name>
именем учетной записи хранения, созданной в предыдущем упражнении.az storage account show-connection-string \ --resource-group <rgn>[sandbox resource group name]</rgn> \ --query connectionString \ --name <name>
Ответ — это строка подключения, заключенная в кавычки и выглядящая примерно так, как показано в следующем примере:
"DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=storage1ab;AccountKey=QtSCGB...7AeoW0Hw=="
Скопируйте строка подключения и замените
<value>
в env-файле этим строка подключения.Нажмите клавиши CTRL + S, чтобы сохранить файл.
Добавление поддержки для чтения файла конфигурации среды
В приложениях Node.js можно реализовать поддержку чтения ENV-файла, добавив пакет dotenv.
В сеансе Cloud Shell выполните следующую команду, чтобы добавить зависимость в пакет dotenv с помощью
npm
:npm install dotenv --save
Добавление кода для чтения файла конфигурации
Теперь, когда мы добавили необходимые библиотеки для настройки чтения, нам нужно включить эту возможность в нашем приложении.
Откройте файл index.js в редакторе.
В верхней части файла находится строка кода
#!/usr/bin/env node
. Под этой строкой добавьте следующую строку кода:require('dotenv').config();
Нажмите клавиши CTRL + S, чтобы сохранить файл.
Теперь, когда файл конфигурации JSON готов, мы можем добавить код для использования учетной записи хранения.