Exercício: adicionar a configuração do Armazenamento do Azure à sua aplicação
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
Altere o diretório para o diretório PhotoSharingApp, se você ainda não estiver lá:
cd PhotoSharingApp
Digite o seguinte comando para usar a
touch
ferramenta para criar um arquivo chamado appsettings.json:touch appsettings.json
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 .
No editor, selecione o arquivo appsettings.json e adicione o seguinte texto:
{ "ConnectionStrings": { "StorageAccount": "<value>" } }
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).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>
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=="
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.Pressione Ctrl+S para salvar o arquivo.
No editor, abra o arquivo de projeto PhotoSharingApp.csproj.
Copie e cole o seguinte bloco de configuração abaixo do bloco existente
<ItemGroup>
.<ItemGroup> <None Update="appsettings.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> </ItemGroup>
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.
No editor, selecione Program.cs.
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;
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(); } } }
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
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
Digite o seguinte comando para criar um arquivo chamado .env:
touch .env
Abra o projeto no editor do Cloud Shell:
code .
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.
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.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>
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=="
Copie a cadeia de conexão e substitua
<value>
no arquivo .env por essa cadeia de conexão.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.
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.
No editor, abra o arquivo .js índice.
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();
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.