Laboratório 07: Acesse segredos de recursos com mais segurança em todos os serviços
Interface de usuário do Microsoft Azure
Dada a natureza dinâmica das ferramentas de nuvem da Microsoft, você pode se deparar com alterações na IU do Azure que ocorram após o desenvolvimento deste conteúdo do treinamento. Como resultado, as instruções do laboratório e as etapas do laboratório podem não estar alinhadas corretamente.
A Microsoft atualiza este curso de treinamento quando a comunidade chama a nossa atenção para alterações necessárias. No entanto, como as atualizações na nuvem ocorrem com frequência, você pode encontrar alterações na interface de usuário antes que esse conteúdo de treinamento seja atualizado. Se isso ocorrer, adapte-se às alterações e trabalhe com elas nos laboratórios, conforme necessário.
Instruções
Antes de começar
Entrar no ambiente de laboratório
Entre na máquina virtual (VM) do Windows 11 usando as seguintes credenciais:
- Nome de usuário:
Admin
- Senha:
Pa55w.rd
Observação: Seu instrutor fornecerá instruções para se conectar ao ambiente de laboratório virtual.
Examinar os aplicativos instalados
Localize a barra de tarefas na área de trabalho do Windows 11. A barra de tarefas contém os ícones dos aplicativos que você usará neste laboratório, incluindo:
- Microsoft Edge
- Explorador de Arquivos
- Terminal
- Visual Studio Code
Cenário do laboratório
Neste laboratório, você criará uma conta de armazenamento e um aplicativo de funções do Azure que acessará a conta de armazenamento. Para demonstrar o armazenamento seguro de informações de cadeia de conexão, você provisionará um recurso do Key Vault e gerenciará os segredos apropriados para armazenar as informações da cadeia de conexão. Você também gerenciará a identidade do serviço para obter acesso seguro às informações da cadeia de conexão da conta de armazenamento.
Diagrama de arquitetura
Exercício 1: Criar recursos do Azure
Tarefa 1: Abrir o portal do Azure
-
Na barra de tarefas, selecione o ícone Microsoft Edge.
-
Na janela aberta do navegador, navegue até o portal do Azure em
https://portal.azure.com
e entre com a conta que você usará para este laboratório.Observação: Se esta for a primeira vez que entra no portal do Azure, você receberá um tour pelo portal. Selecione Introdução para ignorar o tour e começar a usar o portal.
Tarefa 2: Criar uma conta de armazenamento
-
No portal do Azure, use a caixa de texto Pesquisar recursos, serviços e documentos para procurar por Contas de armazenamento e, na lista de resultados, selecione Contas de armazenamento.
-
Na folha Contas de armazenamento , selecione + Criar.
-
Na folha Criar uma conta de armazenamento, na guia Básico, realize as ações a seguir e selecione Examinar:
Configuração Ação Lista suspensa Assinatura Manter o valor padrão Seção Grupo de recursos Selecionar Criar novo, inserir ConfidentialStack e selecionar OK Caixa de texto Nome da conta de armazenamento Inserir securestor[yourname] Lista suspensa Região Selecione (EUA) Leste dos EUA Seção Desempenho Selecione a opção Padrão Lista suspensa Redundância Selecione LRS (Armazenamento com redundância local) A captura de tela a seguir exibe as configurações definidas na folha Criar uma conta de armazenamento.
-
Na guia Revisão, revise as opções selecionadas nas etapas anteriores.
-
Selecione Criar para criar a conta de armazenamento usando a configuração especificada.
Observação: Aguarde a conclusão da tarefa de criação antes de avançar neste laboratório.
-
Na folha Visão Geral de implantação, selecione Ir para o recurso.
-
Na folha Conta de armazenamento , na seção Segurança + rede , selecione o link Chaves de acesso .
-
Na seção Chaves de acesso , selecione Mostrar chaves.
-
Na folha Chaves de acesso , examine qualquer uma das Cadeias de conexão (usando o botão Mostrar) e registre o valor de qualquer uma das caixas de Cadeia de conexão no Bloco de Notas. As Chaves são chaves de criptografia gerenciadas por plataforma e não são usadas para este laboratório.
Observação: Não importa qual cadeia de conexão você escolher. Eles são intercambiáveis.
Tarefa 3: Criar um Azure Key Vault
-
No portal do Azure, use a caixa de texto Pesquisar recursos, serviços e documentos para procurar por Cofres de chaves e, na lista de resultados, selecione Cofres de chaves.
-
Na folha Cofres de chaves, selecione Criar.
-
Na folha Criar cofre de chaves, na guia Informações básicas, realize as seguintes ações e selecione Próximo para acessar a guia Configuração de Acesso:
Configuração Ação Lista suspensa Assinatura Manter o valor padrão Lista suspensa Grupo de recursos Selecionar ConfidentialStack na lista Caixa de texto Nome do cofre de chaves Inserir securevault[yourname] Lista suspensa Região Selecione Leste dos EUA Lista suspensa Tipo de preço Selecione Standard A captura de tela a seguir exibe as configurações definidas na folha Criar cofre de chaves.
-
Na guia Configuração de Acesso, altere o modelo de permissão para Política de acesso ao cofre e selecione Examinar + criar.
-
Na guia Revisar + criar, revise as opções selecionadas nas etapas anteriores.
-
Selecione Criar para criar o cofre de chaves usando a configuração especificada.
Observação: Aguarde a conclusão da tarefa de criação antes de avançar neste laboratório.
tarefa 4: Criar um aplicativo de funções
-
No portal do Azure, use a caixa de texto Pesquisar recursos, serviços e documentos para procurar por Aplicativo de funções e, na lista de resultados, selecione Aplicativo de funções.
-
Na folha Aplicativo de funções, selecione Criar.
-
Na página Selecionar uma opção de hospedagem, verifique se Consumo está selecionado e clique em Selecionar.
-
Na folha Criar um Aplicativo de Funções (Consumo), na guia Básico, realize as seguintes ações e selecione Avançar: Armazenamento:
Configuração Ação Lista suspensa Assinatura Manter o valor padrão Lista suspensa Grupo de recursos Selecionar ConfidentialStack Caixa de texto Nome do aplicativo de funções Inserir securefunc[yourname] Lista suspensaPilha de runtime Selecionar .NET Lista suspensa Versão Selecione 8 (LTS), modelo de trabalho isolado Lista suspensa Região Selecionar a região Leste dos EUA Seção Sistema operacional Selecione Linux A captura de tela a seguir exibe as configurações definidas na folha Criar aplicativo de funções.
-
Na guia Armazenamento, realize as seguintes ações e selecione Revisar + criar:
Configuração Ação Lista suspensa Conta de armazenamento Selecionar a conta de armazenamento securestor[yourname] -
Na guia Revisar + criar, revise as opções selecionadas nas etapas anteriores.
-
Selecione Criar para criar o aplicativo de funções usando a configuração especificada.
Observação: Aguarde a conclusão da tarefa de criação antes de avançar neste laboratório.
Revisão
Neste exercício, você criou todos os recursos que usará neste laboratório.
Exercício 2: Configurar segredos e identidades
tarefa 1: Configurar uma identidade de serviço gerenciada atribuída pelo sistema
-
No painel de navegação do portal do Azure, selecione o link Grupos de recursos.
-
Na folha Grupos de recursos, selecione o grupo de recursos ConfidentialStack.
-
Na folha ConfidentialStack, selecione o aplicativo de funções securefunc[yourname].
Observação: Haverá dois recursos, um aplicativo de funções e um recurso de insights de aplicativo, com o mesmo nome. Certifique-se de selecionar o recurso de aplicativo de funções.
-
Na folha Aplicativo de funções, selecione a opção Identidade da seção Configurações.
-
No painel Identidade, na guia Atribuída pelo sistema, defina o Status como Ativado e selecione Salvar.
-
Selecione Sim para confirmar a configuração.
Observação: aguarde a identidade gerenciada atribuída pelo sistema ser criada antes de avançar neste laboratório.
Tarefa 2: Criar um segredo do Key Vault
-
No painel de navegação do portal do Azure, selecione o link Grupos de recursos.
-
Na folha Grupos de recursos, selecione o grupo de recursos ConfidentialStack.
-
Na folha ConfidentialStack, selecione o cofre de chaves securevault[yourname].
-
Na folha Key Vault, selecione o link segredos na seção Objetos.
-
No painel Segredos, selecione + Gerar/Importar.
-
Na folha Criar um segredo, realize as seguintes ações e selecione Criar:
Configuração Ação Lista suspensa Opções de upload Selecione Manual Caixa de texto Nome Inserir storagecredentials Caixa de texto Valor secreto Insira a cadeia de conexão da conta de armazenamento salva anteriormente neste laboratório. Caixa de texto Tipo de conteúdo Deixar em branco Caixa de seleção Definir data de ativação Não selecionado Caixa de seleção Definir data de validade Não selecionado Opção Habilitado Selecione Sim A captura de tela a seguir exibe as configurações definidas na folha Criar um segredo.
Observação: Aguarde o segredo ser criado antes de avançar neste laboratório.
-
Retorne ao painel Segredos e selecione o item storagecredentials na lista.
-
No painel Versões, selecione a última versão do segredo storagecredentials.
-
No painel Versão do segredo, realize as seguintes ações:
-
Selecione Mostrar valor secreto para encontrar o valor do segredo.
-
Registre o valor da caixa de texto Identificador do segredo, porque você o usará mais adiante no laboratório.
Observação: Você está registrando o valor da caixa de texto Identificador do segredo, e não da caixa de texto Valor secreto.
-
Tarefa 3: Configurar uma política de acesso do Key Vault
-
No painel de navegação do portal do Azure, selecione o link Grupos de recursos.
-
Na folha Grupos de recursos, selecione o grupo de recursos ConfidentialStack.
-
Na folha ConfidentialStack, selecione o cofre de chaves securevault[yourname].
-
Na folha Key Vault, selecione o link Políticas de acesso na seção Visão Geral.
-
No painel Políticas de acesso, selecione + Criar.
-
Na folha Criar uma política de acesso, na seção Permissões, faça as seguintes seleções:
Configuração Ação Lista suspensa Configurar com base em um modelo Deixar em branco Caixas de seleção Permissões de chave 0 selecionado Caixas de seleção Permissões de segredo Selecionar a permissão GET Caixas de seleção Permissões de certificado 0 selecionado -
Selecione a seção Entidade de segurança e faça as seleções a seguir:
Configuração Ação Link Selecionar entidade de segurança Localize e selecione a entidade de serviço chamada securefunc[yourname]. A identidade gerenciada atribuída pelo sistema criada anteriormente neste laboratório terá o mesmo nome que o recurso do Azure Functions -
Selecione Revisar + criar e, então, selecione Criar.
Observação: Aguarde as suas alterações nas políticas de acesso serem salvas antes de avançar neste laboratório.
Tarefa 4: Criar uma configuração de aplicativo derivado do Key Vault
-
No painel de navegação do portal do Azure, selecione o link Grupos de recursos.
-
Na folha Grupos de recursos, selecione o grupo de recursos ConfidentialStack.
-
Na folha ConfidentialStack, selecione o aplicativo de funções securefunc[yourname].
-
Na folha Aplicativo de Funções, na seção Configurações, selecione o link Variáveis de ambiente.
-
Na guia Configurações de aplicativo, escolha + Adicionar. Insira as seguintes informações na caixa de diálogo pop-up Adicionar/Editar configuração de aplicativo:
Configuração Ação Caixa de texto Nome Insira StorageConnectionString Caixa de texto Valor Construa um valor usando a seguinte sintaxe: @Microsoft.KeyVault(SecretUri=<Secret Identifier>)
, em que o espaço reservado<Secret Identifier>
representa o identificador secreto que você anotou anteriormente neste exercício.Caixa de seleção Configuração do slot de implantação Manter o valor padrão Observação: Por exemplo, se o seu identificador de segredo for
https://securevaultstudent.vault.azure.net/secrets/storagecredentials/17b41386df3e4191b92f089f5efb4cbf
, o valor resultante será@Microsoft.KeyVault(SecretUri=https://securevaultstudent.vault.azure.net/secrets/storagecredentials/17b41386df3e4191b92f089f5efb4cbf)
. -
Escolha Aplicar para fechar a caixa de diálogo pop-up e retornar à seção Configurações de aplicativo.
-
Na parte inferior da seção Configurações de aplicativo, selecione Aplicar.
Observação: Você poderá receber um aviso de que o seu aplicativo pode ser reiniciado ao atualizar as configurações do aplicativo. Selecione Confirmar. Aguarde até que as configurações do aplicativo sejam salvas antes de avançar neste laboratório.
Revisão
Neste exercício, você criou uma identidade de serviço gerenciada atribuída pelo sistema para o seu aplicativo de funções e, em seguida, concedeu a essa identidade as permissões apropriadas para obter o valor de um segredo no cofre de chaves. Por fim, você criou um segredo referenciado dentro das definições de configuração do seu aplicativo de funções.
Exercício 3: Criar um aplicativo do Azure Functions
Tarefa 1: Inicializar um projeto de função
-
Na barra de tarefas, selecione o ícone de Terminal.
-
Execute o seguinte comando para alterar o diretório atual para o diretório vazio Allfiles (F):\Allfiles\Labs\07\Starter\func:
cd F:\Allfiles\Labs\07\Starter\func
Observação: No Windows Explorer, remova o atributo Somente leitura do arquivo gitignore F:\Allfiles\Labs\07\Starter\func..
-
Execute o seguinte comando para usar Azure Functions Core Tools para criar um novo projeto local do Functions no diretório atual usando o runtime dotnet:
func init --worker-runtime dotnet-isolated --target-framework net8.0 --force
Observação: Você pode examinar a documentação para [create a new project][azure-functions-core-tools-new-project] usando Azure Functions Core Tools.
-
Execute o seguinte comando para compilação do projeto do .NET 8:
dotnet build
Tarefa 2: Criar uma função disparada por HTTP
-
Execute o comando a seguir para usar Azure Functions Core Tools para criar uma nova função chamada FileParser usando o modelo de gatilho de HTTP:
func new --template "HTTP trigger" --name "FileParser"
Observação: você pode examinar a documentação para [create a new function][azure-functions-core-tools-new-function] usando Azure Functions Core Tools.
-
Feche o aplicativo de Terminal em execução no momento.
Tarefa 3: Configurar e ler uma configuração de aplicativo
-
Na tela inicial, selecione o bloco Visual Studio Code.
-
No menu Arquivo, selecione Abrir Pasta.
-
Na janela Explorador de Arquivos que se abre, navegue até Allfiles (F):\Allfiles\Labs\07\Starter\func e selecione Selecionar Pasta.
-
No painel Explorer da janela do Visual Studio Code, abra o arquivo local.settings.json.
-
Observe o valor atual do objeto Valores:
"Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated" }
-
Atualize o valor do objeto Valores, adicionando uma nova configuração chamada StorageConnectionString e, em seguida, atribuindo-lhe um valor de cadeia de caracteres de [TEST VALUE]:
"Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", "StorageConnectionString": "[TEST VALUE]" }
-
O arquivo local.settings.json agora deve incluir:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", "StorageConnectionString": "[TEST VALUE]" } }
-
Selecione Salvar para salvar as alterações no arquivo local.settings.json.
-
No painel Explorer da janela do Visual Studio Code, abra o arquivo FileParser.cs.
-
No editor de código, substitua o conteúdo do código gerado automaticamente da função FileParser começando pela linha 18 pelo seguinte código:
[Function("FileParser")] public HttpResponseData Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req) { _logger.LogInformation("C# HTTP trigger function processed a request."); var response = req.CreateResponse(HttpStatusCode.OK); response.Headers.Add("Content-Type", "text/plain; charset=utf-8"); string connectionString = Environment.GetEnvironmentVariable("StorageConnectionString"); response.WriteString(connectionString); return response; }
-
Ignore os avisos sobre valores nulos.
-
Revise o código resultante, que deve consistir no seguinte conteúdo (esse código retorna o valor da variável de ambiente StorageConnectionString):
using System.Net; using Microsoft.Azure.Functions.Worker; using Microsoft.Azure.Functions.Worker.Http; using Microsoft.Extensions.Logging; namespace func { public class FileParser { private readonly ILogger _logger; public FileParser(ILoggerFactory loggerFactory) { _logger = loggerFactory.CreateLogger<FileParser>(); } [Function("FileParser")] public HttpResponseData Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req) { _logger.LogInformation("C# HTTP trigger function processed a request."); var response = req.CreateResponse(HttpStatusCode.OK); response.Headers.Add("Content-Type", "text/plain; charset=utf-8"); string connectionString = Environment.GetEnvironmentVariable("StorageConnectionString"); response.WriteString(connectionString); return response; } } }
-
Selecione Salvar para salvar as alterações no arquivo FileParser.cs.
Tarefa 4: Validar a função local
-
Na barra de tarefas, selecione o ícone de Terminal.
-
Execute o seguinte comando para alterar o diretório atual para o diretório vazio Allfiles (F):\Allfiles\Labs\07\Starter\func:
cd F:\Allfiles\Labs\07\Starter\func
-
Execute o seguinte comando para executar o projeto de aplicativo de funções:
func start --build
Observação: Você pode examinar a documentação para [start the function app project locally][azure-functions-core-tools-start-function] usando Azure Functions Core Tools.
-
No computador do laboratório, inicie um Prompt de comando.
-
Execute o seguinte comando para executar o teste da chamada da API REST do GET em
http://localhost:7071/api/FileParser
:curl -X GET -i http://localhost:7071/api/FileParser
-
Observe o valor [TEST VALUE] de StorageConnectionString devolvido como resultado da solicitação HTTP:
HTTP/1.1 200 OK Content-Type: text/plain; charset=utf-8 Date: Tue, 01 Sep 2020 23:35:39 GMT Server: Kestrel Transfer-Encoding: chunked [TEST VALUE]
-
Feche todas as instâncias em execução no momento do aplicativo Terminal e o aplicativo Prompt de comando.
Tarefa 5: Implantar a função usando Azure Functions Core Tools
-
Na barra de tarefas, selecione o ícone de Terminal.
-
Execute o seguinte comando para alterar o diretório atual para o diretório vazio Allfiles (F):\Allfiles\Labs\07\Starter\func:
cd F:\Allfiles\Labs\07\Starter\func
-
Execute o seguinte comando para entrar na interface de linha de comando (CLI) do Azure:
az login
-
Na janela do navegador Microsoft Edge, insira as credenciais da conta que você usa para acessar sua assinatura do Azure e selecione Entrar.
-
Retorne à janela do Terminal aberta no momento. Aguarde a conclusão do processo de credenciais.
-
Execute o seguinte comando para publicar o projeto de aplicativo de funções (mude o espaço reservado
<function-app-name>
para o nome do aplicativo de funções criado anteriormente neste laboratório):func azure functionapp publish <function-app-name> --dotnet-version 8.0
Observação: Por exemplo, se o nome do aplicativo de funções for securefuncstudent, o comando será
func azure functionapp publish securefuncstudent --force
. Você pode examinar a documentação para [publish the local function app project][azure-functions-core-tools-publish-azure] usando Azure Functions Core Tools. -
Aguarde o término da implantação antes de avançar neste laboratório.
-
Feche o aplicativo de Terminal em execução no momento.
Tarefa 6: Testar a configuração de aplicativo derivado do Key Vault
-
Na barra de tarefas, selecione o ícone Microsoft Edge e, em seguida, selecione a guia que contém o portal do Azure.
-
No painel de navegação do portal do Azure, selecione o link Grupos de recursos.
-
Na folha Grupos de recursos, selecione o grupo de recursos ConfidentialStack.
-
Na folha ConfidentialStack, selecione o aplicativo de funções securefunc[yourname].
-
Na folha Aplicativo de funções, selecione a opção Visão Geral.
-
Na guia Funçõesna parte inferior da página de visão geral, selecione a função FileParser.
-
Na folha Função, selecione a opção Codificar + Testar da seção Desenvolvedor.
-
No editor de funções, selecione Testar/Executar.
-
No painel exibido automaticamente, na listaMétodo HTTP, selecione GET.
-
Selecione Executar para testar a função.
-
Examine os resultados do teste executado. O resultado deve ser sua cadeia de conexão de armazenamento do Azure.
Revisão
Neste exercício, você usou uma identidade de serviço para ler o valor de um segredo armazenado no Key Vault e devolveu esse valor como o resultado de um aplicativo de funções.
Exercício 4: Acessar dados de Armazenamento de Blobs do Azure
Tarefa 1: carregar uma amostra de blob de armazenamento
-
No painel de navegação do portal do Azure, selecione o link Grupos de recursos.
-
Na folha Grupos de recursos, selecione o grupo de recursos ConfidentialStack.
-
Na folha ConfidentialStack, selecione a conta de armazenamento securestor[yourname].
-
Na folha Conta de armazenamento, selecione o link Contêineres na seção Armazenamento de dados.
-
Na seção Contêineres, selecione + Contêiner.
-
Na janela pop-up Novo contêiner, realize as seguintes ações e selecione Criar:
Configuração Ação Caixa de texto Nome Insirasoltar -
Retorne à seção Contêineres e navegue até o contêiner remover recém-criado.
-
Na folha Contêiner, selecione Carregar.
-
Na janela Carregar blob, realize as seguintes ações e selecione Carregar:
Configuração Ação Seção Arquivos Selecionar Procurar arquivos ou usar o recurso de arrastar e soltar Janela Explorador de Arquivos Navegue até Allfiles (F):\Allfiles\Labs\07\Starter, selecione o arquivo records.json e, então, selecione Abrir Caixa de seleção Substituir se arquivos já existirem Verificar se essa caixa de seleção está marcada Observação: aguarde o carregamento do blob antes de continuar com este laboratório.
-
Retorne à folha Contêiner e selecione o blob records.json na lista de blobs.
-
Na folha Blob, localize os metadados do blob e copie a URL para o blob.
-
Na barra de tarefas, ative o menu de atalho para o ícone do Microsoft Edge e selecione Nova janela.
-
Na nova janela do navegador, consulte a URL que você copiou para o blob.
-
Uma mensagem de erro indicando que o acesso público não é permitido agora será exibida.
Observação: Isso é esperado porque o acesso anônimo para nossos blobs não está habilitado.
Tarefa 2: Transferir e configurar o SDK do Azure para .NET
-
Na barra de tarefas, selecione o ícone de Terminal.
-
Execute o seguinte comando para alterar o diretório atual para o diretório vazio Allfiles (F):\Allfiles\Labs\07\Starter\func:
cd F:\Allfiles\Labs\07\Starter\func
-
Execute o seguinte comando para adicionar a versão 12.18.0 do pacote Azure.Storage.Blobs do NuGet:
dotnet add package Azure.Storage.Blobs --version 12.18.0
Observação: O pacote Azure.Storage.Blobs do NuGet referencia o subconjunto do SDK do Azure para .NET necessário para gravar código para Armazenamento de Blobs do Azure.
-
Feche o aplicativo de Terminal em execução no momento.
-
Na tela inicial, selecione o bloco Visual Studio Code.
-
No menu Arquivo, selecione Abrir Pasta.
-
Na janela Explorador de Arquivos que se abre, navegue até Allfiles (F):\Allfiles\Labs\07\Starter\func e selecione Selecionar Pasta.
-
No painel Explorer da janela do Visual Studio Code, abra o arquivo FileParser.cs.
-
Adicione usando diretivas para os namespaces Azure.Storage.Blobs e Azure.Storage.Blobs.Models:
using Azure.Storage.Blobs; using Azure.Storage.Blobs.Models;
-
Substitua o conteúdo do método FileParser atual começando pela linha 19 pelo seguinte código:
[Function("FileParser")] public HttpResponseData Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req) { _logger.LogInformation("C# HTTP trigger function processed a request."); var response = req.CreateResponse(HttpStatusCode.OK); string connectionString = Environment.GetEnvironmentVariable("StorageConnectionString"); /* Create a new instance of the BlobClient class by passing in your connectionString variable, a "drop" string value, and a "records.json" string value to the constructor */ BlobClient blob = new BlobClient(connectionString, "drop", "records.json"); // Download the content of the referenced blob BlobDownloadResult downloadResult = blob.DownloadContent(); // Retrieve the value of the downloaded blob and convert it to string response.WriteString(downloadResult.Content.ToString()); //return the response return response; }
-
Ignore o aviso sobre valores nulos.
-
Revise o código resultante, que deve consistir no seguinte conteúdo (esse código retorna o conteúdo do blob baixado da conta de armazenamento designada pela variável de ambiente StorageConnectionString):
namespace func { public class FileParser { private readonly ILogger _logger; public FileParser(ILoggerFactory loggerFactory) { _logger = loggerFactory.CreateLogger<FileParser>(); } [Function("FileParser")] public HttpResponseData Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req) { _logger.LogInformation("C# HTTP trigger function processed a request."); var response = req.CreateResponse(HttpStatusCode.OK); string connectionString = Environment.GetEnvironmentVariable("StorageConnectionString"); /* Create a new instance of the BlobClient class by passing in your connectionString variable, a "drop" string value, and a "records.json" string value to the constructor */ BlobClient blob = new BlobClient(connectionString, "drop", "records.json"); // Download the content of the referenced blob BlobDownloadResult downloadResult = blob.DownloadContent(); // Retrieve the value of the downloaded blob and convert it to string response.WriteString(downloadResult.Content.ToString()); //return the response return response; } } }
-
Selecione Salvar para salvar as alterações no arquivo FileParser.cs.
Tarefa 3: Implantar e validar o aplicativo do Azure Functions
-
Na barra de tarefas, selecione o ícone de Terminal.
-
Execute o seguinte comando para alterar o diretório atual para o diretório vazio Allfiles (F):\Allfiles\Labs\07\Starter\func:
cd F:\Allfiles\Labs\07\Starter\func
-
Execute o seguinte comando para entrar na CLI do Azure:
az login
-
Na janela do navegador do Microsoft Edge, insira o endereço de email e a senha da sua conta Microsoft e selecione Entrar.
-
Retorne à janela do Terminal aberta no momento. Aguarde a conclusão do processo de credenciais.
-
Execute o seguinte comando para publicar o projeto de aplicativo de funções (mude o espaço reservado
<function-app-name>
para o nome do aplicativo de funções usado anteriormente neste laboratório):func azure functionapp publish <function-app-name> --dotnet-version 8.0
Observação: Por exemplo, se o nome do aplicativo de funções for securefuncstudent, o comando será
func azure functionapp publish securefuncstudent
. Você pode examinar a documentação para [publish the local function app project][azure-functions-core-tools-publish-azure] usando Azure Functions Core Tools. -
Aguarde o término da implantação antes de avançar neste laboratório.
-
Feche o aplicativo de Terminal em execução no momento.
-
Na barra de tarefas, selecione o ícone do Microsoft Edge e, em seguida, consulte o portal do Azure.
-
No painel de navegação do portal do Azure, selecione o link Grupos de recursos.
-
Na folha Grupos de recursos, selecione o grupo de recursos ConfidentialStack.
-
Na folha ConfidentialStack, selecione o aplicativo de funções securefunc[yourname].
-
Na folha Aplicativo de funções, selecione a opção Visão Geral.
-
Na guia Funções da página de visão geral, selecione a função FileParser existente.
-
Na folha Função, selecione a opção Codificar + Testar da seção Desenvolvedor.
-
No editor de funções, selecione Testar/Executar.
-
No painel exibido automaticamente, na listaMétodo HTTP, selecione GET.
-
Selecione Executar para testar a função.
-
Examine os resultados do teste executado. A saída conterá o conteúdo do blob $/drop/records.json armazenado em sua conta de armazenamento do Azure.
Revisão
Neste exercício, você usou o código # C para acessar uma conta de armazenamento e, em seguida, baixou o conteúdo de um blob.