Gyakorlat – A folyamat 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 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

  1. A Visual Studio Code-ban nyissa meg a deploy/azure-pipelines.yml fájlt.

  2. Távolítsa el a kézi eseményindítót az első sorban.

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

  4. Mentse a fájl módosításait.

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

  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
    

Ellenőrizze, hogy a folyamat sikertelen-e

  1. A böngészőben válassza a Folyamatok lehetőséget, majd válassza ki a folyamatot.

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

    Screenshot of Azure DevOps that shows the failed pipeline run.

    A folyamat sikertelen üzembe helyezést jelenít meg.

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

  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
    

Ellenőrizze, hogy a folyamat sikeres-e

  1. Az Azure DevOpsban térjen vissza a Folyamatok listához, és válassza ki a folyamatot.

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

    Screenshot of Azure DevOps that shows the successful pipeline run.

    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