Gyakorlat – A munkafolyamat 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 munkafolyamatot, hogy automatikusan fusson, amikor egy fájl megváltozik a főágban . A frissített munkafolyamat 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 munkafolyamatot, í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 munkafolyamat automatikusan fut-e.
Az eseményindító frissítése ágalapúra
Nyissa meg a .github/workflows/workflow.yml fájlt a Visual Studio Code-ban.
A fájl tetején, a sor
name: deploy-toy-website
után adja hozzá a következő kódot, hogy megakadályozza a több egyidejű munkafolyamat futtatását:name: deploy-toy-website concurrency: toy-company
Távolítsa el a kézi eseményindítót, amely az éppen beolvasott
on: [workflow_dispatch]
vonal.permissions:
A következő triggerdefiníciótconcurrency:
adja hozzá:concurrency: toy-company on: push: branches: - main paths: - 'deploy/**' permissions:
Mentse a fájl módosításait.
Véglegesítse a módosításokat, de még ne küldje le őket. Hamarosan leküldi a módosításokat.
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
A munkafolyamat sikertelenségének ellenőrzése
A böngészőben válassza a GitHub Actions menüjét, és válassza ki a munkafolyamatot.
Válassza ki a legutóbbi munkafolyamatfuttatást, hogy a munkafolyamat automatikusan fusson. A munkafolyamat azért futott, mert leküldte a módosításokat a leküldéses eseményindító által figyelt ágba. Ha a munkafolyamat még fut, várjon egy percet, majd frissítse a lapot.
A munkafolyamat sikertelen üzembe helyezést mutat.
A hiba diagnosztizálásához válassza ki az üzembe helyezési feladatot, és válassza ki a sikertelen arm-deploy feladatot.
Figyelje meg, hogy 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 problémát, amíg a munkafolyamat üzembe nem helyezi a kódot, és nem sikerül. 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 munkafolyamat 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
A munkafolyamat sikerességének ellenőrzése
A GitHubon térjen vissza a munkafolyamatok listájához. válassza ki a munkafolyamatot.
Válassza ki a legutóbbi futtatás lehetőséget. Ha a munkafolyamat még fut, várjon egy percet, majd frissítse a lapot.
Megjelenik a munkafolyamat-futtatás.
A munkafolyamat 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