Cvičení – aktualizace triggeru kanálu
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 kanál, který jste vytvořili, aby se automaticky spustil při každé změně souboru v hlavní větvi. Aktualizovaný kanál použijete k nasazení požadované změny konfigurace na web.
Během tohoto procesu:
- Aktualizujte kanál, aby se aktivoval automaticky při každé změně souboru ve složce nasazení v hlavní větvi.
- Změňte soubor Bicep.
- Ověřte, že se kanál spouští automaticky.
Aktualizace triggeru tak, aby byla založená na větvích
V editoru Visual Studio Code otevřete soubor deploy/azure-pipelines.yml .
Odeberte ruční aktivační událost na prvním řádku.
Na první řádek přidejte následující definici triggeru:
trigger: batch: true branches: include: - main
Všimněte si, že povolíte také řízení souběžnosti, abyste se vyhnuli tomu, že kanál běží vícekrát současně.
Uložte změny souboru.
Potvrďte změny, ale změny zatím nenasdílejte. Brzy je nasdílíš.
git add . git commit -m 'Add branch trigger'
Aktualizace souboru Bicep
V editoru Visual Studio Code otevřete soubor main.bicep .
appServiceApp
Do vlastnosti definicesiteConfig
prostředku přidejtealwaysOn
vlastnost s hodnotoutrue
: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 } ] } } }
Uložte změny souboru.
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í kanálu
V prohlížeči vyberte Kanály a pak vyberte kanál.
Výběrem posledního spuštění zobrazíte, že se kanál spustil automaticky. Kanál se spustil, protože jste odeslali změny do větve, kterou trigger větve monitoruje. Pokud kanál stále běží, počkejte minutu a pak aktualizujte stránku.
Kanál zobrazuje neúspěšné nasazení.
Pokud chcete diagnostikovat selhání, vyberte úlohu v části Úlohy a pak vyberte neúspěšnou úlohu AzureResourceManagerTemplateDeployment . Posuňte se a zobrazte celou chybovou zprávu. Chybová zpráva 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 váš kanál nenasadí kód, nemusí se objevit problém, který selže. 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í kanálu
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.
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' } } } }
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@2022-03-01' = { name: appServiceAppName location: location properties: { serverFarmId: appServicePlan.id httpsOnly: true siteConfig: { alwaysOn: environmentConfigurationMap[environmentType].appServiceApp.alwaysOn appSettings: [ { name: 'ToyManualsStorageAccountConnectionString' value: toyManualsStorageAccountConnectionString } ] } } }
Uložte změny souboru.
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ěřte, že kanál proběhne úspěšně.
V Azure DevOps se vraťte do seznamu Pipelines a vyberte svůj kanál.
Vyberte poslední spuštění. Pokud kanál stále běží, počkejte minutu a pak aktualizujte stránku.
Kanál 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