Övning – Konfigurera, distribuera och köra din app i Azure

Slutförd

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.

  1. 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>"
    
  2. 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_DEPLOYMENTtrue 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

  1. 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>
    
  1. 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>
    
  1. 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!