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

Concluído

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

Criar a aplicação e o plano do Serviço de Aplicações

Criar uma aplicação do Serviço de Aplicações é um processo de dois passos: primeiro, crie o plano, depois a aplicação.

O nome do plano só precisa ser exclusivo na sua assinatura, para que você possa usar o mesmo nome: keyvault-exercise-plan. No entanto, o nome do aplicativo precisa ser globalmente exclusivo, então escolha o seu.

  1. No Azure Cloud Shell, execute o seguinte comando 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 seguinte comando. Certifique-se de substituir <your-unique-app-name> pelo nome do seu aplicativo no --name parâmetro.

    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 configuração à aplicação

Para implantar no Azure, siga a prática recomendada do Serviço de Aplicativo de colocar a VaultName configuração em uma configuração de aplicativo em vez de um arquivo de configuração. Para criar a definição da aplicação, execute este comando. Certifique-se de substituir ambos <your-unique-app-name> pelo nome do aplicativo no parâmetro e <your-unique-vault-name> pelo nome do cofre no --name--settings parâmetro.

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 VaultName configuração em uma configuração de aplicativo em vez de um arquivo de configuração. Você também define a configuração para que o Serviço de Aplicativo restaure os pacotes do aplicativo no servidor e crie a SCM_DO_BUILD_DURING_DEPLOYMENT configuração necessária para true executar o aplicativo. Para criar as definições da aplicação, execute este comando. Certifique-se de substituir ambos <your-unique-app-name> pelo nome do aplicativo no parâmetro e <your-unique-vault-name> pelo nome do cofre no --name--settings parâmetro.

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'

Ativar a identidade gerida

Habilitar a identidade gerenciada em um aplicativo é uma linha única. Para habilitá-lo em seu aplicativo, execute o seguinte comando. Certifique-se de substituir <your-unique-app-name> pelo nome do seu aplicativo no --name parâmetro.

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

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

Conceder acesso ao cofre

O último passo antes da implementação é atribuir permissões de Cofre de Chaves à identidade gerida da sua aplicação. Certifique-se de substituir ambos <your-unique-vault-name> pelo nome do seu cofre no --name parâmetro e insira o valor copiado da etapa anterior como o principalId valor para object-id no comando a seguir. Para estabelecer Get e List acessar, execute este comando.

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

Implementar e experimentar a aplicação

  1. Toda a sua configuração está definida e você está pronto para implantar! Os comandos a seguir publicam o site na pasta pub , compactam-no no site.zip e implantam o zip no Serviço de Aplicativo. Certifique-se de substituir <your-unique-app-name> pelo nome do seu aplicativo no --name parâmetro.

    Nota

    Vai ter de utilizar o comando cd para regressar ao diretório KeyVaultDemoApp, caso ainda não esteja lá.

    dotnet publish -o pub
    zip -j site.zip pub/*
    
    az webapp deployment source config-zip \
        --src site.zip \
        --resource-group "<rgn>[sandbox resource group name]</rgn>" \
        --name <your-unique-app-name>
    
  1. A sua configuração foi definida e está tudo pronto para implementar! Os comandos a seguir compactarão seu aplicativo no 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ê implanta. Certifique-se de substituir <your-unique-app-name> pelo nome do seu aplicativo no --name parâmetro.

    Nota

    Vai ter de utilizar o comando cd para regressar ao diretório KeyVaultDemoApp, caso ainda não esteja lá.

    zip site.zip * -x node_modules/
    
    az webapp deployment source config-zip \
        --src 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 indique que o site foi implantado, abra https://<your-unique-app-name>.azurewebsites.net/api/SecretTest em um navegador. O aplicativo leva um momento para iniciar pela primeira vez no servidor, mas depois disso, você deve ver o valor secreto, reindeer_flotilla.

A sua aplicação está concluída e implementada!