Exercício: adicionar a configuração do Armazenamento do Azure à sua aplicação

Concluído

Vamos adicionar suporte à nossa aplicação .NET core para obter uma cadeia de ligação a partir de um ficheiro de configuração. Começaremos adicionando o encanamento necessário para gerenciar uma configuração em um arquivo JSON.

Criar um ficheiro de configuração JSON

  1. Altere o diretório para o diretório PhotoSharingApp, se você ainda não estiver lá:

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

    touch appsettings.json
    
  3. Abra o projeto num editor. Se você estiver trabalhando localmente, você pode usar seu editor de escolha. Recomendamos o Visual Studio Code, que é um IDE pra várias plataformas extensível. Se você estiver trabalhando no Azure Cloud Shell (à direita), recomendamos o editor do Cloud Shell. Use o seguinte comando para abrir o editor em qualquer ambiente:

    code .
    
  4. No editor, selecione o arquivo appsettings.json e adicione o seguinte texto:

    {
        "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 de conta de armazenamento real. Na sessão do Cloud Shell, cole o seguinte comando, substituindo <name> pelo nome exclusivo da conta de armazenamento 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 se parece muito com o exemplo a seguir:

    "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 seguinte bloco de configuração abaixo do bloco existente <ItemGroup> .

    <ItemGroup>
        <None Update="appsettings.json">
            <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        </None>
    </ItemGroup>
    
  12. Pressione Ctrl+S para salvar o arquivo. (Você deve salvar este arquivo, ou você perderá a alteração quando adicionar o seguinte pacote!)

Adicionar suporte para ler um ficheiro 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 o código para ler o ficheiro de configuração

Agora que adicionamos as bibliotecas necessárias para habilitar a leitura da configuração, precisamos habilitar essa funcionalidade em nosso aplicativo de console.

  1. No editor, selecione Program.cs.

  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 "Hello World!") pelo seguinte código:

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

    Este código inicializa o sistema de configuração para ler a partir do ficheiro appsettings.json.

    O arquivo .cs programa agora deve ter esta aparência:

    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. Guarde o ficheiro.

Vamos adicionar suporte à nossa aplicação Node.js para obter uma cadeia de ligação a partir de um ficheiro de configuração. Começaremos adicionando o encanamento necessário para gerenciar uma configuração a partir do nosso arquivo JavaScript.

Criar um ficheiro de configuração .env

  1. Na sessão do Azure Cloud Shell, insira o seguinte comando para garantir que você esteja no diretório de trabalho correto para seu projeto.

    cd PhotoSharingApp 
    
  2. Digite o seguinte comando para criar um arquivo chamado .env:

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

    code .
    
  4. No editor, selecione o arquivo .env e adicione o seguinte texto.

    Nota

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

    AZURE_STORAGE_CONNECTION_STRING=<value>
    

    Gorjeta

    O AZURE_STORAGE_CONNECTION_STRING é uma variável de ambiente codificada que é usada para APIs de armazenamento para procurar 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, em seguida, 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 seguinte comando, substituindo <name> pelo nome da 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 se parece muito com o exemplo a seguir:

    "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 suporte para ler um ficheiro de configuração do ambiente

As aplicações Node.js podem incluir suporte para ler a partir do ficheiro .env ao adicionar o pacote dotenv.

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

    npm install dotenv --save
    

Adicionar o código para ler o ficheiro de configuração

Agora que adicionamos as bibliotecas necessárias para permitir a leitura da configuração, precisamos habilitar essa funcionalidade em nosso aplicativo.

  1. No editor, abra o arquivo .js índice.

  2. Na parte superior do arquivo há uma linha de código #!/usr/bin/env node. Abaixo 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 toda conectada, podemos começar a adicionar código para usar nossa conta de armazenamento.