Gyakorlat – A folyamat eseményindítójának frissítése
Egy munkatársa arra kéri, hogy kapcsolja be az App Service Always On funkciót a vállalati webhelyen, így a webhelyalkalmazás mindig fut.
Ebben a gyakorlatban frissítenie kell a létrehozott folyamatot, hogy automatikusan fusson, amikor egy fájl megváltozik a főágon . A frissített folyamat használatával fogja üzembe helyezni a kért konfigurációmódosítást a webhelyen.
A folyamat során a következőt fogja elvégezni:
- Frissítse a folyamatot, így automatikusan aktiválódik, amikor egy fájl megváltozik a központi ág üzembehelyezési mappájában.
- Módosítsa a Bicep-fájlt.
- Ellenőrizze, hogy a folyamat automatikusan fut-e.
Az eseményindító frissítése ágalapúra
A Visual Studio Code-ban nyissa meg a deploy/azure-pipelines.yml fájlt.
Távolítsa el a kézi eseményindítót az első sorban.
Adja hozzá az alábbi triggerdefiníciót az első sorban:
trigger: batch: true branches: include: - main
Figyelje meg, hogy az egyidejűség-vezérlést is engedélyezi, így elkerülheti, hogy a folyamat egyszerre többször fusson.
Mentse a fájl módosításait.
Véglegesítse a módosításokat, de még ne küldje le a módosításokat. Hamarosan leküldi őket.
git add . git commit -m 'Add branch trigger'
A Bicep-fájl frissítése
Nyissa meg a main.bicep fájlt a Visual Studio Code-ban.
appServiceApp
Az erőforrásdefiníció tulajdonságábansiteConfig
adja hozzá aalwaysOn
tulajdonságot a következőtrue
értékkel:resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = { name: appServiceAppName location: location properties: { serverFarmId: appServicePlan.id httpsOnly: true siteConfig: { alwaysOn: true appSettings: [ { name: 'ToyManualsStorageAccountConnectionString' value: toyManualsStorageAccountConnectionString } ] } } }
Mentse a fájl módosításait.
A Visual Studio Code terminálon futtassa a következő kódot a módosítások véglegesítéséhez és mindkét véglegesítés leküldéséhez:
git add . git commit -m 'Configure app Always On setting' git push
Ellenőrizze, hogy a folyamat sikertelen-e
A böngészőben válassza a Folyamatok lehetőséget, majd válassza ki a folyamatot.
A legutóbbi futtatás kiválasztásával ellenőrizze, hogy a folyamat automatikusan futott-e. A folyamat azért futott, mert leküldte a módosításokat egy olyan ágba, amelyet az ág eseményindítója figyel. Ha a folyamat még fut, várjon egy percet, majd frissítse a lapot.
A folyamat sikertelen üzembe helyezést jelenít meg.
A hiba diagnosztizálásához a Feladatok területen válassza ki a feladatot, majd válassza ki a sikertelen AzureResourceManagerTemplateDeployment feladatot. Görgessen a teljes hibaüzenet megjelenítéséhez. A hibaüzenet a következő szöveget tartalmazza:
There was a conflict. AlwaysOn cannot be set for this site as the plan does not allow it. For more information on pricing and features, please see: https://aka.ms/appservicepricingdetails
Ez a hibaüzenet azt jelzi, hogy az üzembe helyezés meghiúsult, mert az App Service-alkalmazás az F1 ingyenes szinttel lett üzembe helyezve, amely nem támogatja az Always On funkciót.
Fontos
Ez a példa bemutatja, hogyan fontos a Bicep-fájlok tesztelése, beleértve az összes használt paraméterértéket. A finom hibák könnyen hozzáadhatók az erőforrás-konfigurációhoz vagy más kódhoz. Előfordulhat, hogy nem talál hibát, amíg a folyamat üzembe nem helyezi a kódot, és az meghiúsul. Egy jövőbeli modulban megismerhet néhány stratégiát, amellyel ellenőrizheti és tesztelheti a Bicep-kódot.
A Bicep-fájl javítása és a folyamat ismételt aktiválásának megtekintése
A sikertelen üzembe helyezésről a kollégájával beszél. Együtt úgy dönt, hogy az Always On beállítást csak az éles környezetben kell alkalmazni. Itt kijavíthatja az üzembe helyezési hibát okozó hibát a használni kívánt új szabály alkalmazásával.
A Visual Studio Code-ban adjon hozzá új tulajdonságokat az egyes környezettípusokhoz a
environmentConfigurationMap
változóhoz:var environmentConfigurationMap = { nonprod: { appServiceApp: { alwaysOn: false } appServicePlan: { sku: { name: 'F1' capacity: 1 } } toyManualsStorageAccount: { sku: { name: 'Standard_LRS' } } } prod: { appServiceApp: { alwaysOn: true } appServicePlan: { sku: { name: 'S1' capacity: 2 } } toyManualsStorageAccount: { sku: { name: 'Standard_ZRS' } } } }
Módosítsa az alkalmazás beállítását
alwaysOn
úgy, hogy a környezet típusának megfelelő konfigurációs leképezési értéket használja:resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = { name: appServiceAppName location: location properties: { serverFarmId: appServicePlan.id httpsOnly: true siteConfig: { alwaysOn: environmentConfigurationMap[environmentType].appServiceApp.alwaysOn appSettings: [ { name: 'ToyManualsStorageAccountConnectionString' value: toyManualsStorageAccountConnectionString } ] } } }
Mentse a fájl módosításait.
A Visual Studio Code terminálban véglegesítse a módosításokat, és küldje el őket:
git add . git commit -m 'Enable App Service Always On for production environments only' git push
Ellenőrizze, hogy a folyamat sikeres-e
Az Azure DevOpsban térjen vissza a Folyamatok listához, és válassza ki a folyamatot.
Válassza ki a legutóbbi futtatás lehetőséget. Ha a folyamat még fut, várjon egy percet, majd frissítse a lapot.
A folyamat sikeres üzembe helyezést mutat. Ez ezúttal sikeres volt, mert érvényes Bicep-fájlt használt.
Az erőforrások eltávolítása
Most, hogy befejezte a gyakorlatot, eltávolíthatja az erőforrásokat, így nem kell fizetnie értük.
A Visual Studio Code Terminálban futtassa a következő parancsot:
az group delete --resource-group ToyWebsite --yes --no-wait
Az erőforráscsoport a háttérben törlődik.
Remove-AzResourceGroup -Name ToyWebsite -Force