Övning – Konfigurera, distribuera och köra din app i Azure
Nu är det dags att köra appen i Azure. Du måste skapa en Azure App Service-app, konfigurera den med en hanterad identitet och din valvkonfiguration och distribuera koden.
Skapa App Service-planen och appen
Att skapa en App Service-app är en tvåstegsprocess: Först skapas planen, sedan appen.
Plannamnet behöver bara vara unikt i din prenumeration, så du kan använda samma namn: keyvault-exercise-plan
. Appnamnet måste dock vara globalt unikt, så välj ditt eget.
I Azure Cloud Shell kör du följande kommando för att skapa en App Service-plan.
az appservice plan create \ --name keyvault-exercise-plan \ --sku FREE \ --location centralus \ --resource-group "<rgn>[sandbox resource group name]</rgn>"
Kör sedan följande kommando för att skapa webbappen som använder App Service-planen som du skapade. Ersätt
<your-unique-app-name>
med appens namn i parametern--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>
Lägga till konfigurationen i appen
Om du vill distribuera till Azure följer du apptjänstens metodtips för att placera konfigurationen VaultName
i en appinställning i stället för en konfigurationsfil. Skapa appinställningen genom att köra det här kommandot. Ersätt både <your-unique-app-name>
med appens namn i parametern --name
och <your-unique-vault-name>
med valvets namn i parametern --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>'
Om du vill distribuera till Azure följer du apptjänstens metodtips för att placera konfigurationen VaultName
i en appinställning i stället för en konfigurationsfil. Du ställer också in inställningen SCM_DO_BUILD_DURING_DEPLOYMENT
på true
så att App Service återställer appens paket på servern och skapar den konfiguration som krävs för att köra appen. Skapa appinställningarna genom att köra det här kommandot. Ersätt både <your-unique-app-name>
med appens namn i parametern --name
och <your-unique-vault-name>
med valvets namn i parametern --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'
Aktivera hanterad identitet
Att aktivera hanterad identitet i en app är en enradare. Om du vill aktivera den i din app kör du följande kommando. Ersätt <your-unique-app-name>
med appens namn i parametern --name
.
az webapp identity assign \
--resource-group "<rgn>[sandbox resource group name]</rgn>" \
--name <your-unique-app-name>
Kopiera värdet från de resulterande JSON-utdata.principalId
PrincipalId
är det unika ID:t för appens nya identitet i Microsoft Entra-ID och du kommer att använda det i nästa steg.
Bevilja åtkomst till valvet
Det sista steget innan du distribuerar är att tilldela Key Vault-behörigheter till din apps hanterade identitet. Ersätt båda <your-unique-vault-name>
med valvets namn i parametern --name
och ange det principalId
värde som du kopierade från föregående steg som värde för object-id
i följande kommando. Kör det här kommandot för att upprätta Get
och List
komma åt.
az keyvault set-policy \
--secret-permissions get list \
--name <your-unique-vault-name> \
--object-id <your-managed-identity-principleid>
Distribuera appen och testa den
All konfiguration är inställd och du är redo att distribuera! Följande kommandon publicerar webbplatsen till pubmappen, zippar upp den i site.zip och distribuerar zip-filen till App Service. Ersätt
<your-unique-app-name>
med appens namn i parametern--name
.Kommentar
Du måste
cd
tillbaka till katalogen KeyVaultDemoApp om du inte är där fortfarande.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>
Din konfiguration är klar och du är redo att distribuera! Följande kommandon zippar upp appen till site.zip och distribuerar den till App Service. Vi undantar
node_modules
från zip-filen eftersom App Service återställer dem automatiskt när du distribuerar. Ersätt<your-unique-app-name>
med appens namn i parametern--name
.Kommentar
Du måste
cd
tillbaka till katalogen KeyVaultDemoApp om du inte är där fortfarande.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>
- Distributionen kan ta en minut eller två att slutföra. När du har fått ett resultat som anger att webbplatsen har distribuerats öppnar
https://<your-unique-app-name>.azurewebsites.net/api/SecretTest
du i en webbläsare. Appen tar en stund att starta för första gången på servern, men när den har det bör du se det hemliga värdet reindeer_flotilla.
Din app är klar och distribuerad!