Exercício – Configurar, implantar e executar o seu aplicativo no Azure
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.
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>"
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
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>
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>
- 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!