Exercício – Configurar, implantar e executar o seu aplicativo no Azure

Concluído

Agora devemos executar nosso aplicativo no Azure. Você precisa criar um aplicativo do Serviço de Aplicativo do Azure, configurá-lo com uma identidade gerenciada e a configuração do cofre e implantar seu código.

Criar o Plano do Serviço de Aplicativo e o aplicativo

Criar um aplicativo de Serviço de Aplicativo é um processo em duas etapas: Primeiro crie o plano, depois o aplicativo.

O nome do plano só precisa ser exclusivo em sua assinatura, para que você possa usar o mesmo nome: keyvault-exercise-plan. No entanto, o nome do aplicativo precisa ser globalmente exclusivo; portanto, escolha um nome exclusivo.

  1. No Azure Cloud Shell, execute o comando a seguir para criar um plano do Serviço de Aplicativo.

    az appservice plan create \
        --name keyvault-exercise-plan \
        --sku FREE \
        --location centralus \
        --resource-group "<rgn>[sandbox resource group name]</rgn>"
    
  2. Em seguida, para criar o aplicativo Web que usa o plano do Serviço de Aplicativo criado, execute o comando a seguir. Substitua <your-unique-app-name> pelo nome do aplicativo no parâmetro --name.

    az webapp create \
        --plan keyvault-exercise-plan \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --name <your-unique-app-name>
    
    az webapp create \
        --plan keyvault-exercise-plan \
        --runtime "node|16LTS" \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --name <your-unique-app-name>
    

Adicionar a configuração ao aplicativo

Para implantar no Azure, siga a prática recomendada do Serviço de Aplicativo de colocar a configuração VaultName em uma configuração de aplicativo em vez de um arquivo de configuração. Execute o comando a seguir para criar as configurações do aplicativo. Substitua <your-unique-app-name> com o nome do aplicativo no parâmetro --name, e <your-unique-vault-name> com o nome do cofre no parâmetro --settings.

az webapp config appsettings set \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --name <your-unique-app-name> \
    --settings 'VaultName=<your-unique-vault-name>'

Para implantar no Azure, siga a prática recomendada do Serviço de Aplicativo de colocar a configuração VaultName em uma configuração de aplicativo em vez de um arquivo de configuração. Você também define a configuração SCM_DO_BUILD_DURING_DEPLOYMENT como true para que o Serviço de Aplicativo restaure os pacotes do aplicativo no servidor e crie a configuração necessária para executar o aplicativo. Execute o comando a seguir para criar configurações do aplicativo. Substitua <your-unique-app-name> com o nome do aplicativo no parâmetro --name, e <your-unique-vault-name> com o nome do cofre no parâmetro --settings.

az webapp config appsettings set \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --name <your-unique-app-name> \
    --settings 'VaultName=<your-unique-vault-name>' 'SCM_DO_BUILD_DURING_DEPLOYMENT=true'

Habilitar a identidade gerenciada

A habilitação da identidade gerenciada em um aplicativo ocorre em uma única linha. Para habilita-la em seu aplicativo, execute o comando a seguir. Substitua <your-unique-app-name> pelo nome do aplicativo no parâmetro --name.

az webapp identity assign \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --name <your-unique-app-name>

Na saída JSON resultante, copie o valor principalId. PrincipalId é a ID exclusiva da nova identidade do aplicativo no Microsoft Entra ID e você a usará na próxima etapa.

Permitir acesso ao cofre

A última etapa antes de implantar é atribuir permissões do Key Vault para a identidade gerenciada do aplicativo. Substitua ambos os <your-unique-vault-name> pelo nome do cofre no parâmetro --name e insira o valor principalId copiado da etapa anterior como o valor para object-id no comando a seguir. Para estabelecer os acessos Get e List, execute este comando.

az keyvault set-policy \
    --secret-permissions get list \
    --name <your-unique-vault-name> \
    --object-id <your-managed-identity-principleid>

Implantar o aplicativo e experimentá-lo

  1. Toda a configuração foi definida e agora é só iniciar a implantação! Os comandos a seguir publicam o site na pasta pub, o compactam em site.zip e implantam o zip no Serviço de Aplicativo. Substitua <your-unique-app-name> pelo nome do aplicativo no parâmetro --name.

    Observação

    Você precisará executar cd novamente no diretório KeyVaultDemoApp, caso ainda não tenha feito isso.

    dotnet publish -o pub
    zip -j site.zip pub/*
    
    az webapp deploy \
        --src-path site.zip \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --name <your-unique-app-name>
    
  1. Toda a configuração foi definida e você está pronto para a implantação. Os comandos a seguir compactarão seu aplicativo em site.zip e o implantarão no Serviço de Aplicativo. Excluímos node_modules do zip porque o Serviço de Aplicativo os restaura automaticamente quando você realiza a implantação. Substitua <your-unique-app-name> pelo nome do aplicativo no parâmetro --name.

    Observação

    Você precisará executar cd novamente no diretório KeyVaultDemoApp, caso ainda não tenha feito isso.

    zip site.zip * -x node_modules/
    
    az webapp deploy \
        --src-path site.zip \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --name <your-unique-app-name>
    
  1. A implantação pode levar um ou dois minutos para ser concluída. Depois de obter um resultado que indica que o site foi implantado, abra https://<your-unique-app-name>.azurewebsites.net/api/SecretTest em um navegador. O aplicativo leva um momento para ser iniciado pela primeira vez no servidor, mas depois disso, você deverá ver o valor do segredo, reindeer_flotilla.

O aplicativo foi concluído e implantado!