Øvelse – Konfigurer, udrul og kør din app i Azure

Fuldført

Nu er det tid til at køre din app i Azure. Du skal oprette en Azure App Service-app, konfigurere den med en administreret identitet og din vault-konfiguration og installere din kode.

Opret App Service-planen og -appen

Oprettelse af en App Service-app er en totrinsproces: Opret først -planen, og derefter -appen .

Navnet på -planen skal kun være entydigt i dit abonnement, så du kan bruge det samme navn: keyvault-exercise-plan. Appnavnet skal dog være globalt entydigt, så vælg dit eget.

  1. Kør følgende kommando i Azure Cloud Shell for at oprette 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 derefter følgende kommando for at oprette den Web App, der bruger den App Service-plan, du har oprettet. Sørg for at erstatte <your-unique-app-name> med appens navn i parameteren --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>
    

Føj konfiguration til appen

Hvis du vil udrulle til Azure, skal du følge den bedste praksis for App Service med at placere VaultName-konfigurationen i en appindstilling i stedet for en konfigurationsfil. Kør denne kommando for at oprette appindstillingen. Sørg for at erstatte begge <your-unique-app-name> med appens navn i parameteren --name, og <your-unique-vault-name> med navnet på din vault i parameteren --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>'

Hvis du vil udrulle til Azure, skal du følge den bedste praksis for App Service med at placere VaultName-konfigurationen i en appindstilling i stedet for en konfigurationsfil. Du kan også angive indstillingen SCM_DO_BUILD_DURING_DEPLOYMENT til true, så App Service gendanner appens pakker på serveren og opretter den nødvendige konfiguration til at køre appen. Kør denne kommando for at oprette appindstillingerne. Sørg for at erstatte begge <your-unique-app-name> med appens navn i parameteren --name, og <your-unique-vault-name> med navnet på din vault i parameteren --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'

Aktivér administreret identitet

Aktivering af administreret identitet i en app er en en-liner. Kør følgende kommando for at aktivere den i din app. Sørg for at erstatte <your-unique-app-name> med appens navn i parameteren --name.

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

Kopiér den principalId værdi ud fra det resulterende JSON-output. PrincipalId er det entydige id for appens nye identitet i Microsoft Entra ID, og du skal bruge det i næste trin.

Giv adgang til vaulten

Det sidste trin, før du udruller, er at tildele Key Vault-tilladelser til din apps administrerede identitet. Sørg for at erstatte begge <your-unique-vault-name> med navnet på din vault i parameteren --name, og angiv den principalId værdi, du kopierede fra det forrige trin, som værdien for object-id i følgende kommando. Kør denne kommando for at oprette Get og List adgang.

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

Udrul appen, og prøv den

  1. Al din konfiguration er indstillet, og du er klar til at udrulle! Følgende kommandoer publicerer webstedet i mappen pub, zipper det op i site.zip, og udrul zip til App Service. Sørg for at erstatte <your-unique-app-name> med appens navn i parameteren --name.

    Seddel

    Du skal cd tilbage til mappen KeyVaultDemoApp, hvis du ikke stadig er der.

    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>
    
  1. Al din konfiguration er indstillet, og du er klar til at installere! Følgende kommandoer zipper din app til site.zipog udruller den i App Service. Vi udelukker node_modules fra zip'en, fordi App Service gendanner dem automatisk, når du installerer dem. Sørg for at erstatte <your-unique-app-name> med appens navn i parameteren --name.

    Seddel

    Hvis du ikke allerede er i mappen KeyVaultDemoApp, skal du bruge kommandoen cd til at vende tilbage til den.

    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>
    
  1. Udrulningen kan tage et minut eller to at fuldføre. Når du har fået et resultat, der angiver, at webstedet er installeret, skal du åbne https://<your-unique-app-name>.azurewebsites.net/api/SecretTest i en browser. Appen tager et øjeblik at starte op for første gang på serveren, men efter det gør, bør du se den hemmelige værdi, reindeer_flotilla.

Din app er færdig og udrullet!