Ćwiczenie — konfigurowanie, wdrażanie i uruchamianie aplikacji na platformie Azure
Teraz nadszedł czas na uruchomienie aplikacji na platformie Azure. Musisz utworzyć aplikację usługi aplikacja systemu Azure Service, skonfigurować ją przy użyciu tożsamości zarządzanej i konfiguracji magazynu oraz wdrożyć kod.
Tworzenie planu i aplikacji usługi App Service
Tworzenie aplikacji usługi App Service jest procesem dwuetapowym: najpierw należy utworzyć plan, a następnie aplikację.
Nazwa planu musi być unikatowa tylko w ramach subskrypcji, więc możesz użyć tej samej nazwy: keyvault-exercise-plan
. Nazwa aplikacji musi być jednak globalnie unikatowa, więc wybierz własną.
W usłudze Azure Cloud Shell uruchom następujące polecenie, aby utworzyć plan usługi App Service.
az appservice plan create \ --name keyvault-exercise-plan \ --sku FREE \ --location centralus \ --resource-group "<rgn>[sandbox resource group name]</rgn>"
Następnie, aby utworzyć aplikację internetową korzystającą z utworzonego planu usługi App Service, uruchom następujące polecenie. Pamiętaj, aby zastąpić
<your-unique-app-name>
ciąg nazwą aplikacji w parametrze--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>
Dodawanie konfiguracji do aplikacji
Aby wdrożyć na platformie Azure, postępuj zgodnie z najlepszymi rozwiązaniami usługi App Service dotyczącymi umieszczania VaultName
konfiguracji w ustawieniu aplikacji zamiast pliku konfiguracji. Aby utworzyć ustawienie aplikacji, uruchom to polecenie. Pamiętaj, aby zastąpić zarówno <your-unique-app-name>
nazwą aplikacji w parametrze --name
, jak i <your-unique-vault-name>
nazwą magazynu w parametrze --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>'
Aby wdrożyć na platformie Azure, postępuj zgodnie z najlepszymi rozwiązaniami usługi App Service dotyczącymi umieszczania VaultName
konfiguracji w ustawieniu aplikacji zamiast pliku konfiguracji. Należy również ustawić SCM_DO_BUILD_DURING_DEPLOYMENT
ustawienie na true
tak, aby usługa App Service przywracała pakiety aplikacji na serwerze i tworzy niezbędną konfigurację do uruchomienia aplikacji. Aby utworzyć ustawienia aplikacji, uruchom to polecenie. Pamiętaj, aby zastąpić zarówno <your-unique-app-name>
nazwą aplikacji w parametrze --name
, jak i <your-unique-vault-name>
nazwą magazynu w parametrze --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'
Włączanie tożsamości zarządzanej
Włączanie tożsamości zarządzanej w aplikacji jest jednym elementem liniowym. Aby ją włączyć w aplikacji, uruchom następujące polecenie. Pamiętaj, aby zastąpić <your-unique-app-name>
ciąg nazwą aplikacji w parametrze --name
.
az webapp identity assign \
--resource-group "<rgn>[sandbox resource group name]</rgn>" \
--name <your-unique-app-name>
Z wynikowych danych wyjściowych JSON skopiuj principalId
wartość. PrincipalId
jest unikatowym identyfikatorem nowej tożsamości aplikacji w usłudze Microsoft Entra ID i użyjesz jej w następnym kroku.
Udzielanie dostępu do magazynu
Ostatnim krokiem przed wdrożeniem jest przypisanie uprawnień usługi Key Vault do tożsamości zarządzanej aplikacji. Pamiętaj, aby zastąpić obie <your-unique-vault-name>
nazwą magazynu w parametrze --name
, a następnie wprowadź principalId
wartość skopiowaną z poprzedniego kroku jako wartość w object-id
poniższym poleceniu. Aby ustanowić Get
i List
uzyskać dostęp, uruchom to polecenie.
az keyvault set-policy \
--secret-permissions get list \
--name <your-unique-vault-name> \
--object-id <your-managed-identity-principleid>
Wdrażanie aplikacji i jej wypróbowywanie
Wszystkie konfiguracje są ustawione i wszystko jest gotowe do wdrożenia. Następujące polecenia publikują witrynę w folderze pub , spakuj ją w site.zip i wdróż plik zip w usłudze App Service. Pamiętaj, aby zastąpić
<your-unique-app-name>
ciąg nazwą aplikacji w parametrze--name
.Uwaga
Jeśli jeszcze nie znajdujesz się w katalogu KeyVaultDemoApp, musisz do niego wrócić za pomocą polecenia
cd
.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>
Konfiguracja została ustawiona i wszystko jest gotowe do wdrażania. Następujące polecenia spakują aplikację do site.zip i wdróżą ją w usłudze App Service. Wykluczamy
node_modules
z pliku zip, ponieważ usługa App Service przywraca je automatycznie podczas wdrażania. Pamiętaj, aby zastąpić<your-unique-app-name>
ciąg nazwą aplikacji w parametrze--name
.Uwaga
Jeśli jeszcze nie znajdujesz się w katalogu KeyVaultDemoApp, musisz do niego wrócić za pomocą polecenia
cd
.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>
- Ukończenie wdrożenia może potrwać minutę lub dwie. Po otrzymaniu wyniku wskazującego, że witryna została wdrożona, otwórz w
https://<your-unique-app-name>.azurewebsites.net/api/SecretTest
przeglądarce. Uruchomienie aplikacji po raz pierwszy na serwerze trwa chwilę, ale po jej wykonaniu powinna zostać wyświetlona wartość wpisu tajnego reindeer_flotilla.
Twoja aplikacja jest gotowa i wdrożona.