Exercício - Configurar, implantar e executar seu aplicativo no Azure
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.
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>"
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 --name
parâmetro e <your-unique-vault-name>
pelo nome do cofre no --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 true
que o SCM_DO_BUILD_DURING_DEPLOYMENT
Serviço de Aplicativo restaure os pacotes do aplicativo no servidor e crie a configuração necessária para 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 --name
parâmetro e <your-unique-vault-name>
pelo nome do cofre no --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 cofre no --name
parâmetro e insira o principalId
valor copiado da etapa anterior como o 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
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 em 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 deploy \ --src-path site.zip \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name <your-unique-app-name>
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 deploy \ --src-path site.zip \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --name <your-unique-app-name>
- 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!