Exercício – Adicionar configuração de Armazenamento do Microsoft Azure ao seu aplicativo

Concluído

Adicionaremos suporte ao aplicativo do .NET Core para recuperar uma cadeia de conexão de um arquivo de configuração. Começaremos adicionando os detalhes técnicos necessários para gerenciar a configuração em um arquivo JSON.

Criar um arquivo de configuração JSON

  1. Altere o diretório para o diretório PhotoSharingApp, caso ainda não esteja lá:

    cd PhotoSharingApp
    
  2. Insira o comando a seguir para usar a ferramenta touch para criar um arquivo chamado appsettings.json:

    touch appsettings.json
    
  3. Abra o projeto em um editor. Se você estiver trabalhando localmente, use o editor da sua preferência. Recomendamos o Visual Studio Code, que é um IDE multiplataforma extensível. Se você estiver trabalhando no Azure Cloud Shell (à direita), use o editor do Cloud Shell. Use o comando a seguir para abrir o editor em qualquer ambiente:

    code .
    
  4. Selecione o arquivo appsettings.json no editor e adicione o texto a seguir:

    {
        "ConnectionStrings": {
            "StorageAccount": "<value>"
        }
    }
    
  5. Salve o arquivo usando o atalho de teclado (Ctrl+S) ou selecione Salvar no menu de contexto (selecione o ícone de reticências ... na barra de título do editor).

  6. Agora, precisamos usar um comando do Azure para obter a cadeia de conexão da conta de armazenamento real. Na sessão do Cloud Shell, cole o comando a seguir, substituindo <name> pelo nome de conta de armazenamento exclusivo que você criou no exercício anterior e pressione Enter para executar o comando:

    az storage account show-connection-string \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --query connectionString \
      --name <name>
    
  7. A resposta contém a cadeia de conexão limitada por aspas, que é semelhante ao seguinte exemplo:

    "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=storage1ab;AccountKey=QtSCGB...7AeoW0Hw=="
    
  8. Copie a cadeia de conexão e, no arquivo appsettings.json no editor, substitua o espaço reservado <value> por essa cadeia de conexão.

  9. Pressione CTRL + S para salvar o arquivo.

  10. No editor, abra o arquivo de projeto PhotoSharingApp.csproj.

  11. Copie e cole o bloco de configuração a seguir embaixo do bloco <ItemGroup> existente.

    <ItemGroup>
        <None Update="appsettings.json">
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>
    </ItemGroup>
    
  12. Pressione CTRL + S para salvar o arquivo. (Você precisa salvar esse arquivo ou perderá a alteração ao adicionar o pacote a seguir.)

Adicionar suporte para ler um arquivo de configuração JSON

No console do Cloud Shell, copie e execute o código a seguir para adicionar uma referência ao pacote NuGet Microsoft.Extensions.Configuration.Json:

dotnet add package Microsoft.Extensions.Configuration.Json

Adicionar um código para ler o arquivo de configuração

Agora que adicionamos as bibliotecas necessárias para habilitar a configuração de leitura, é necessário habilitar essa funcionalidade no aplicativo de console.

  1. Selecione Program.cs no editor.

  2. Na parte superior do arquivo, há uma linha de código comentada. Exclua essa linha e adicione as seguintes linhas de código à parte superior do arquivo:

    using System;    
    using Microsoft.Extensions.Configuration;
    using System.IO;
    
  3. Substitua o conteúdo do método Main (a linha que contém "Olá, Mundo!") pelo código a seguir:

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

    Esse código inicializa o sistema de configuração para ler o arquivo appsettings.json.

    Agora, o arquivo Program.cs deverá ser semelhante a este:

    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. Salve o arquivo.

Adicionaremos suporte ao aplicativo do Node.js para recuperar uma cadeia de conexão de um arquivo de configuração. Começaremos adicionando os detalhes técnicos necessários para gerenciar a configuração no arquivo JavaScript.

Criar um arquivo de configuração .env

  1. Na sessão do Azure Cloud Shell, insira o comando a seguir para verificar se você está no diretório de trabalho correto do projeto.

    cd PhotoSharingApp 
    
  2. Insira o comando a seguir para criar um arquivo chamado .env:

    touch .env
    
  3. Abra o projeto no editor do Cloud Shell:

    code .
    
  4. Selecione o arquivo .env no editor e adicione o texto a seguir.

    Observação

    Talvez seja necessário selecionar o botão Atualizar no código para ver os novos arquivos.

    AZURE_STORAGE_CONNECTION_STRING=<value>
    

    Dica

    O valor AZURE_STORAGE_CONNECTION_STRING é uma variável de ambiente embutida em código usada pelas APIs de Armazenamento para pesquisar as chaves de acesso.

  5. Salve o arquivo usando o atalho de teclado (Ctrl+S) ou selecione o ícone de reticências (...) na barra de título do editor e selecione Salvar no menu de contexto.

  6. Agora, precisamos usar um comando do Azure para obter a cadeia de conexão da conta de armazenamento real. Na sessão do Cloud Shell, execute o comando a seguir, substituindo <name> pelo nome de conta de armazenamento que você criou no exercício anterior.

    az storage account show-connection-string \
      --resource-group <rgn>[sandbox resource group name]</rgn> \
      --query connectionString \
      --name <name>
    
  7. A resposta é uma cadeia de conexão limitada por aspas, que é semelhante ao seguinte exemplo:

    "DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=storage1ab;AccountKey=QtSCGB...7AeoW0Hw=="  
    
  8. Copie a cadeia de conexão e substitua <value> no arquivo .env por essa cadeia de conexão.

  9. Pressione CTRL + S para salvar o arquivo.

Adicionar o suporte para ler um arquivo de configuração do ambiente

Os aplicativos Node.js podem incluir suporte à leitura por meio do arquivo .env adicionando o pacote dotenv.

  1. Na sessão do Cloud Shell, execute o comando a seguir para adicionar uma dependência ao pacote dotenv usando npm:

    npm install dotenv --save
    

Adicionar um código para ler o arquivo de configuração

Agora que as bibliotecas necessárias para habilitar a leitura da configuração foram adicionadas, é preciso habilitar essa funcionalidade no aplicativo.

  1. No editor, abra o arquivo index.js.

  2. Na parte superior do arquivo, há uma linha de código #!/usr/bin/env node. Embaixo dessa linha, adicione a seguinte linha de código:

    require('dotenv').config();
    
  3. Pressione CTRL + S para salvar o arquivo.

Agora que temos a configuração JSON conectada, podemos começar a adicionar o código para usar nossa conta de armazenamento.