Cvičení – aktualizace triggeru pracovního postupu

Dokončeno

Kolega vás požádá, abyste na webu společnosti zapnuli funkci AlwaysOn služby App Service, takže webová aplikace je vždy spuštěná.

V tomto cvičení aktualizujete pracovní postup, který jste vytvořili, aby se spouštěl automaticky při každé změně souboru v hlavní větvi. Aktualizovaný pracovní postup použijete k nasazení požadované změny konfigurace na web.

Během tohoto procesu:

  • Aktualizujte pracovní postup, aby se automaticky aktivoval při každé změně souboru ve složce nasazení v hlavní větvi.
  • Změňte soubor Bicep.
  • Ověřte, že se pracovní postup spouští automaticky.

Aktualizace triggeru tak, aby byla založená na větvích

  1. V editoru Visual Studio Code otevřete soubor .github/workflows/workflow.yml .

  2. V horní části souboru za řádek name: deploy-toy-website přidejte následující kód, který zabrání spuštění více souběžných pracovních postupů:

    name: deploy-toy-website
    concurrency: toy-company
    
  3. Odeberte ruční aktivační událost, což je řádek, který se právě čte on: [workflow_dispatch].

  4. Mezi concurrency: a permissions: přidejte následující definici triggeru:

    concurrency: toy-company
    
    on:
      push:
        branches:
          - main
        paths:
          - 'deploy/**'
    
    permissions:
    
  5. Uložte změny souboru.

  6. Potvrďte změny, ale zatím je nenasdílejte. Změny nasdílíte brzy.

    git add .
    git commit -m 'Add branch trigger'
    

Aktualizace souboru Bicep

  1. V editoru Visual Studio Code otevřete soubor main.bicep .

  2. appServiceApp Do vlastnosti definice siteConfig prostředku přidejte alwaysOn vlastnost s hodnotou true:

    
    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. Uložte změny souboru.

  4. V terminálu editoru Visual Studio Code spusťte následující kód pro potvrzení změn a nasdílejte obě potvrzení:

    git add .
    git commit -m 'Configure app Always On setting'
    git push
    

Ověření selhání pracovního postupu

  1. V prohlížeči vyberte nabídku Akce GitHubu a vyberte svůj pracovní postup.

  2. Vyberte poslední spuštění pracovního postupu, abyste viděli, že se pracovní postup spustil automaticky. Pracovní postup se spustil, protože jste odeslali změny do větve monitorované triggerem nabízených oznámení. Pokud pracovní postup stále běží, počkejte minutu a pak stránku aktualizujte.

    Screenshot of the GitHub interface showing the failed workflow run.

    Pracovní postup ukazuje neúspěšné nasazení.

  3. Pokud chcete diagnostikovat selhání, vyberte úlohu nasazení a vyberte neúspěšnou úlohu arm-deploy .

    Všimněte si, že obsahuje následující text:

    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
    

    Tato chybová zpráva značí, že nasazení selhalo, protože aplikace služby App Service byla nasazena pomocí úrovně Free F1, která nepodporuje funkci AlwaysOn.

    Důležité

    Tento příklad ukazuje, jak je důležité otestovat soubory Bicep, včetně všech hodnot parametrů, které používáte. Přidání drobných chyb do konfigurace prostředku nebo jiného kódu je snadné. Dokud pracovní postup nenasadí kód a selže, nemusí se objevit problém. V dalším modulu se seznámíte s některými strategiemi, které můžete použít k ověření a otestování kódu Bicep.

Oprava souboru Bicep a opětovné spuštění pracovního postupu

Promluvíte si se svým kolegou o neúspěšném nasazení. Společně se rozhodnete, že nastavení AlwaysOn se musí použít jenom pro vaše produkční prostředí. Tady opravíte problém, který způsoboval selhání nasazení použitím nového pravidla, které se rozhodnete použít.

  1. V editoru Visual Studio Code přidejte do proměnné nové vlastnosti pro každý typ environmentConfigurationMap prostředí:

    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. Změňte nastavení aplikace alwaysOn tak, aby používala odpovídající hodnotu mapování konfigurace pro typ prostředí:

    resource appServiceApp 'Microsoft.Web/sites@2023-12-01' = {
      name: appServiceAppName
      location: location
      properties: {
        serverFarmId: appServicePlan.id
        httpsOnly: true
        siteConfig: {
          alwaysOn: environmentConfigurationMap[environmentType].appServiceApp.alwaysOn
          appSettings: [
            {
              name: 'ToyManualsStorageAccountConnectionString'
              value: toyManualsStorageAccountConnectionString
            }
          ]
        }
      }
    }
    
  3. Uložte změny souboru.

  4. V terminálu editoru Visual Studio Code potvrďte změny a nasdílejte je:

    git add .
    git commit -m 'Enable App Service Always On for production environments only'
    git push
    

Ověření úspěšného pracovního postupu

  1. Na GitHubu se vraťte do seznamu pracovních postupů . vyberte svůj pracovní postup.

  2. Vyberte poslední spuštění. Pokud pracovní postup stále běží, počkejte minutu a pak stránku aktualizujte.

    Zobrazí se spuštění pracovního postupu.

    Screenshot of the GitHub interface showing the successful workflow run.

    Pracovní postup ukazuje úspěšné nasazení. Tentokrát proběhl úspěšně, protože jste použili platný soubor Bicep.

Vyčištění prostředků

Teď, když jste cvičení dokončili, můžete odebrat prostředky, abyste za ně neúčtoli.

V terminálu editoru Visual Studio Code spusťte následující příkaz:

az group delete --resource-group ToyWebsite --yes --no-wait

Skupina prostředků se odstraní na pozadí.

Remove-AzResourceGroup -Name ToyWebsite -Force