Oefening: uw app configureren, implementeren en uitvoeren in Azure
Het is nu tijd om uw app in Azure uit te voeren. U moet een Azure-app Service-app maken, deze instellen met een beheerde identiteit en uw kluisconfiguratie en uw code implementeren.
Het App Service-plan en de App Service-app maken
Het maken van een App Service-app bestaat uit twee stappen: u maakt eerst het plan en vervolgens de app.
De abonnementsnaam hoeft alleen uniek te zijn binnen uw abonnement, zodat u dezelfde naam kunt gebruiken: keyvault-exercise-plan
. De naam van de app moet echter wereldwijd uniek zijn, dus kies uw eigen naam.
Voer in Azure Cloud Shell de volgende opdracht uit om een App Service-plan te maken.
az appservice plan create \ --name keyvault-exercise-plan \ --sku FREE \ --location centralus \ --resource-group "<rgn>[sandbox resource group name]</rgn>"
Voer vervolgens de volgende opdracht uit om de web-app te maken die gebruikmaakt van het App Service-plan dat u hebt gemaakt. Zorg ervoor dat u de naam van uw app in de
--name
parameter vervangt<your-unique-app-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>
Configuratie toevoegen aan de app
Als u wilt implementeren in Azure, volgt u de best practice van App Service om de VaultName
configuratie in een app-instelling te plaatsen in plaats van een configuratiebestand. Voer de volgende opdracht uit om de app-instelling te maken. Zorg ervoor dat u beide <your-unique-app-name>
vervangt door de naam van uw app in de --name
parameter en <your-unique-vault-name>
door de naam van uw kluis in de --settings
parameter.
az webapp config appsettings set \
--resource-group "<rgn>[sandbox resource group name]</rgn>" \
--name <your-unique-app-name> \
--settings 'VaultName=<your-unique-vault-name>'
Als u wilt implementeren in Azure, volgt u de best practice van App Service om de VaultName
configuratie in een app-instelling te plaatsen in plaats van een configuratiebestand. U stelt de SCM_DO_BUILD_DURING_DEPLOYMENT
instelling true
ook zo in dat App Service de pakketten van uw app op de server herstelt en de benodigde configuratie maakt om de app uit te voeren. Voer de volgende opdracht uit om de app-instellingen te maken. Zorg ervoor dat u beide <your-unique-app-name>
vervangt door de naam van uw app in de --name
parameter en <your-unique-vault-name>
door de naam van uw kluis in de --settings
parameter.
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'
Beheerde identiteit inschakelen
Het inschakelen van een beheerde identiteit in een app is een één-liner. Voer de volgende opdracht uit om deze in te schakelen in uw app. Zorg ervoor dat u de naam van uw app in de --name
parameter vervangt<your-unique-app-name>
.
az webapp identity assign \
--resource-group "<rgn>[sandbox resource group name]</rgn>" \
--name <your-unique-app-name>
Kopieer principalId
de waarde vanuit de resulterende JSON-uitvoer. PrincipalId
is de unieke id van de nieuwe identiteit van de app in Microsoft Entra ID en u gaat deze in de volgende stap gebruiken.
Toegang verlenen tot de kluis
De laatste stap voor het implementeren bestaat uit het toewijzen van Key Vault-machtigingen aan de beheerde identiteit van uw app. Zorg ervoor dat u beide <your-unique-vault-name>
vervangt door de naam van uw kluis in de --name
parameter en voer de principalId
waarde in die u uit de vorige stap hebt gekopieerd als de waarde voor object-id
in de volgende opdracht. Voer deze opdracht uit om deze opdracht tot stand te brengen Get
en List
te openen.
az keyvault set-policy \
--secret-permissions get list \
--name <your-unique-vault-name> \
--object-id <your-managed-identity-principleid>
De app implementeren en proberen
Al uw configuratie is ingesteld en u bent klaar om te implementeren. Met de volgende opdrachten publiceert u de site naar de pubmap , zipt u deze in site.zip en implementeert u de zip in App Service. Zorg ervoor dat u de naam van uw app in de
--name
parameter vervangt<your-unique-app-name>
.Notitie
U moet
cd
naar de map KeyVaultDemoApp als u daar niet meer bent.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>
De configuratie is voltooid en u bent klaar om de app te implementeren. Met de volgende opdrachten wordt uw app in site.zip gezipt en geïmplementeerd in App Service. We sluiten het zip-bestand uit
node_modules
omdat App Service deze automatisch herstelt wanneer u implementeert. Zorg ervoor dat u de naam van uw app in de--name
parameter vervangt<your-unique-app-name>
.Notitie
Als u zich nog niet in de
KeyVaultDemoApp
map bevindt, gebruikt u decd
opdracht om terug te gaan naar de map.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>
- Het kan een paar minuten duren voordat de implementatie is voltooid. Nadat u een resultaat hebt dat aangeeft dat de site is geïmplementeerd, opent
https://<your-unique-app-name>.azurewebsites.net/api/SecretTest
u deze in een browser. Het duurt even voordat de app voor het eerst op de server wordt opgestart, maar nadat deze is uitgevoerd, ziet u de geheime waarde, reindeer_flotilla.
Uw app is voltooid en geïmplementeerd.