Lint a ověření kódu Bicep
Teď, když víte, k jakým fázím kanálu slouží, se podíváme na první sadu kroků ověření, které můžete přidat do kanálu nasazení Bicep. V této lekci se dozvíte o ověřování šablon Bicep. Dozvíte se také o dvou aktivitách, které fáze ověřování obvykle provádí: lintování a předběžné ověření.
Co je platný soubor Bicep?
Platný soubor Bicep je soubor, který neobsahuje žádné chyby syntaxe. Definice prostředků Azure, které plánujete nasadit, jsou také platné. A když se nasadí prostředky definované v souboru, zůstanou v rámci kvót a omezení, které existují ve vašem předplatném Azure.
Některé kontroly se v souboru Bicep provádějí izolovaně, například kontroly chyb syntaxe, platné definice prostředků Azure a kvalitu kódu. Tyto kroky jsou součástí procesu označovaného jako lintování. Pokud chcete zkontrolovat další problémy, musíte požádat, aby služba Azure Resource Manager vaši šablonu ověřila a zohlednila vaše prostředí Azure.
Platná šablona Bicep má větší šanci na úspěšné nasazení. Zpětnou vazbu získáte bez nasazení šablony Bicep. Ověření je dobrým postupem, protože pokud nasadíte neplatný soubor Bicep, Azure může nasadit nebo změnit jenom podmnožinu prostředků popsaných v šabloně. Výsledkem může být, že stav vašeho prostředí je nekonzistentní a nemusí se chovat očekávaným způsobem.
Sestavení a lint Bicep – kód
Když nasadíte soubor Bicep, nástroje Bicep nejprve spustí některé základní kroky ověření. Tyto kroky jsou stejné, které se spouštějí při úpravě souboru pomocí editoru Visual Studio Code. Zkontrolují, že jste správně použili klíčová slova jazyka Bicep a že jste prostředky Azure definovali podle požadavků pro každý typ prostředku.
Kromě toho Bicep spustí linter přes vaše soubory. Linting je proces kontroly kódu proti sadě doporučení. Bicep linter se podívá na váš soubor a ověří, že jste postupovali podle osvědčených postupů pro udržovatelnost, správnost, flexibilitu a rozšiřitelnost.
Linter obsahuje předdefinovanou sadu pravidel pro každou z těchto kategorií. Mezi příklady pravidel linteru patří:
- Nepoužité parametry: Linter vyhledá všechny parametry, které se nepoužívají kdekoli v souboru Bicep. Odstraněním nepoužívaných parametrů usnadníte nasazení šablony, protože nemusíte zadávat nepotřebné hodnoty. Můžete také omezit nejasnosti, když se někdo pokusí pracovat s vaším souborem Bicep.
-
Interpolace řetězců: Linter zkontroluje, jestli váš soubor místo interpolace řetězců Bicep používá
concat()
funkci. Interpolace řetězců usnadňuje čtení souborů Bicep. -
Výchozí hodnoty pro zabezpečené parametry: Linter vás upozorní, pokud nastavíte výchozí hodnoty pro parametry označené dekorátorem
@secure()
. Výchozí hodnota zabezpečeného parametru je chybný postup, protože poskytuje zabezpečený parametr hodnotu čitelnou pro člověka a uživatelé ji před nasazením nemusí změnit.
Linter Bicep se spustí automaticky při použití nástrojů Bicep. Pokaždé, když sestavíte soubor Bicep, linter zkontroluje jeho osvědčené postupy. Při nasazení souboru Bicep do Azure k lintingu dojde automaticky.
V kanálu ale obvykle chcete spustit ověřovací a lintovací kroky před nasazením souboru. Bicep můžete říct, aby soubor ověřil ručním sestavením souboru Bicep prostřednictvím rozhraní příkazového řádku Bicep:
az bicep build --file main.bicep
bicep build main.bicep
Poznámka:
Když spustíte build
příkaz, Bicep také transpiluje kód Bicep do šablony ARM JSON. Obecně nepotřebujete soubor, který výstupuje, takže ho můžete ignorovat.
Protože chcete, aby linter kontroloval šablony Bicep pokaždé, když někdo zkontroluje kód do vašeho úložiště, můžete do kanálu přidat fázi lint a úlohu:
Tento doplněk můžete vyjádřit v souboru YAML kanálu takto:
stages:
- stage: Lint
jobs:
- job: Lint
steps:
- script: |
az bicep build --file deploy/main.bicep
Upozornění a chyby linteru
Ve výchozím nastavení linter vygeneruje upozornění, když zjistí, že soubor Bicep porušil pravidlo. Upozornění, že se linter Bicep nechovají jako s chybou, takže nezastaví spuštění kanálu ani nezastaví spuštění dalších fází.
Toto chování můžete změnit tak, že nakonfigurujete Bicep tak, aby zacházeli s porušením pravidel linteru jako s chybami místo upozornění. Tuto konfiguraci provedete přidáním souboru bicepconfig.json do složky, která obsahuje váš soubor Bicep. Můžete se rozhodnout, které problémy s linterem by se měly považovat za chyby a které by měly zůstat jako upozornění. Později v tomto modulu se dozvíte, jak aktualizovat pravidla linteru.
Tip
Soubor bicepconfig.json také řídí, jak Visual Studio Code zobrazuje chyby a upozornění v editoru. Zobrazí červenou a žlutou vlnovku pod chybně nakonfigurovanými částmi v šabloně Bicep. Tyto indikátory poskytují ještě rychlejší zpětnou vazbu při psaní kódu Bicep, což dále snižuje pravděpodobnost chyby.
Jakmile překonfigurujete linter tak, aby vygenerovávala chyby, při každém zjištění problému se kanál zastaví a následné úlohy nebo fáze se nespustí. Toto nastavení pomáhá zajistit, aby se problematický kód Bicep nenasadil.
Předběžné ověření
Měli byste také zkontrolovat, jestli se vaše šablona Bicep pravděpodobně úspěšně nasadí do vašeho prostředí Azure. Tato kontrola se označuje jako předběžné ověření a spouští další kontroly, které potřebují Azure k poskytnutí informací. Mezi tyto druhy kontrol patří:
- Jsou názvy, které jste zadali pro vaše prostředky Bicep, platné?
- Jsou už zadané názvy prostředků Bicep?
- Jsou oblasti, na které nasazujete prostředky, platné?
Předběžné ověření vyžaduje komunikaci s Azure, ale ve skutečnosti nenasazuje žádné prostředky.
Pomocí AzureResourceManagerTemplateDeployment
úlohy můžete odeslat soubor Bicep k předběžnému ověření a nakonfigurovat:deploymentMode
Validation
- stage: Validate
jobs:
- job: Validate
steps:
- task: AzureResourceManagerTemplateDeployment@3
inputs:
connectedServiceName: 'MyServiceConnection'
location: $(deploymentDefaultLocation)
deploymentMode: Validation
resourceGroupName: $(ResourceGroupName)
csmFile: deploy/main.bicep
Tento příkaz je podobný úloze nasazení, kterou jste už použili, ale ve skutečnosti nenasazuje žádné prostředky. Provádí dodatečné kontroly prostředků použitých v šabloně.
Předpokládejme například, že váš soubor Bicep obsahuje účet úložiště. Předběžné ověření zkontroluje, jestli už jiný účet úložiště přijal název, který jste zvolili. Zkontroluje také, jestli název, který jste zvolili pro účet úložiště, splňuje zásady vytváření názvů.
Příkaz předběžného ověření spustí také linter Bicep. Je ale obvykle vhodné spustit linter samostatně. Pokud dojde k nějakým chybám linteru, zjistíte je rychle místo čekání na dokončení procesu ověření. Ověření trvá déle.
Důležité
Když spustíte předběžné ověření, každý z poskytovatelů prostředků Azure provede vlastní kontroly. Někteří poskytovatelé prostředků nespouštějí mnoho kontrol, zatímco jiní, takže se nemůžete spolehnout na předběžné ověření, abyste měli jistotu, že je váš soubor platný. Je to ale užitečný nástroj, který stojí za to zahrnout do kanálu.
Přidáním fází ověřování do kanálu pro spuštění linteru a provedením předběžného ověření získáte větší jistotu před nasazením souboru Bicep.