Gyakorlat – A munkafolyamat eseményindítójának frissítése

Befejeződött

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

  1. Nyissa meg a .github/workflows/workflow.yml fájlt a Visual Studio Code-ban.

  2. 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
    
  3. Távolítsa el a kézi eseményindítót, amely az éppen beolvasott on: [workflow_dispatch]vonal.

  4. permissions: A következő triggerdefiníciót concurrency: adja hozzá:

    concurrency: toy-company
    
    on:
      push:
        branches:
          - main
        paths:
          - 'deploy/**'
    
    permissions:
    
  5. Mentse a fájl módosításait.

  6. 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

  1. Nyissa meg a main.bicep fájlt a Visual Studio Code-ban.

  2. appServiceApp Az erőforrásdefiníció tulajdonságában siteConfig adja hozzá a alwaysOn 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
            }
          ]
        }
      }
    
  3. Mentse a fájl módosításait.

  4. 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

  1. A böngészőben válassza a GitHub Actions menüjét, és válassza ki a munkafolyamatot.

  2. 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.

    Screenshot of the GitHub interface showing the failed workflow run.

    A munkafolyamat sikertelen üzembe helyezést mutat.

  3. 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.

  1. 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'
          }
        }
      }
    }
    
  2. 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
            }
          ]
        }
      }
    }
    
  3. Mentse a fájl módosításait.

  4. 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

  1. A GitHubon térjen vissza a munkafolyamatok listájához. válassza ki a munkafolyamatot.

  2. 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.

    Screenshot of the GitHub interface showing the successful workflow run.

    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