Co je bicep?
Bicep je jazyk specifický pro doménu (DSL), který používá deklarativní syntaxi k nasazení prostředků Azure. Poskytuje stručnou syntaxi, spolehlivé zabezpečení typu a podporu opětovného použití kódu. Věříme, že bicep nabízí nejlepší prostředí pro tvorbu vašich řešení infrastruktury jako kódu v Azure.
K vývoji šablon Azure Resource Manager (šablon ARM) můžete použít bicep místo JSON. Syntaxe JSON pro vytvoření šablony ARM může být podrobná a vyžaduje složité výrazy. Bicep syntax omezuje složitost a zlepšuje vývojové prostředí. Bicep je transparentní abstrakcí přes formát JSON šablony ARM a neztratí žádnou z možností šablony JSON. Během nasazování bicep CLI převede soubor bicep na formát JSON šablony ARM.
Bicep není určený jako obecný programovací jazyk pro psaní aplikací. Soubor bicep deklaruje prostředky Azure a vlastnosti prostředku, aniž by bylo nutné psát sekvenci programovacích příkazů pro vytváření prostředků.
Typy prostředků, verze rozhraní API a vlastnosti, které jsou platné v šabloně ARM, jsou platné v souboru bicep.
Chcete-li sledovat stav bicep práce, přečtěte si téma úložiště projektu bicep.
Další informace o bicep najdete v následujícím videu.
Začínáme
Začínáme s bicep:
- Nainstalujte nástroje. Viz nastavení prostředí pro vývoj a nasazení bicep. nebo můžete použít úložiště VS Code Devcontainer/Codespaces k získání předem nakonfigurovaného vývojového prostředí.
- Dokončete rychlý Start a moduly Microsoft Learn bicep.
Chcete-li dekompilovat stávající šablonu ARM do bicep, přečtěte si téma dekompilace formátu JSON šablony ARM na bicep.
Další informace o prostředcích, které jsou k dispozici v souboru bicep, najdete v tématu bicep Resource reference
příklady Bicep najdete v úložišti Bicep GitHub.
Výhody bicep oproti jiným nástrojům
Bicep poskytuje následující výhody oproti jiným možnostem:
- Podpora pro všechny typy prostředků a verze rozhraní API: bicep okamžitě podporuje všechny verze Preview a GA pro služby Azure. Jakmile poskytovatel prostředků zavádí nové typy prostředků a verze rozhraní API, můžete je použít v souboru bicep. Než začnete používat nové služby, nemusíte čekat na aktualizaci nástrojů.
- Jednoduchá syntaxe: v porovnání s ekvivalentní šablonou JSON jsou soubory bicep výstižnější a snazší si je přečíst. Bicep nevyžaduje žádné předchozí znalosti programovacích jazyků. Syntaxe bicep je deklarativní a určuje, které prostředky a vlastnosti prostředku chcete nasadit.
- prostředí pro vytváření obsahu: při použití VS Code k vytvoření souborů Bicep získáte prostředí pro vytváření první třídy. Editor poskytuje bohatou bezpečnost typů, technologie IntelliSense a ověřování syntaxe.
- Modularita: kód bicep můžete rozdělit na spravovatelné části pomocí modulů. Modul nasadí sadu souvisejících prostředků. Moduly umožňují opakované použití kódu a zjednodušení vývoje. Modul můžete přidat do souboru bicep kdykoli, když potřebujete tyto prostředky nasadit.
- Integrace se službami Azure: bicep se integruje se službami Azure, jako jsou Azure Policy, specifikace šablon a plány.
- Žádné soubory stavu nebo stavu ke správě: veškerý stav je uložený v Azure. Uživatelé můžou spolupracovat a mít jistotu, že se jejich aktualizace zpracovávají podle očekávání. Chcete-li zobrazit náhled změn před nasazením šablony, použijte operaci citlivostní zpracování .
- Bez nákladů a open source: bicep je zcela zdarma. Nemusíte platit za prémiové funkce. Podporuje ho i podpora Microsoftu.
Vylepšení bicep
Bicep nabízí snadnější a přesnější syntaxi v porovnání s ekvivalentním JSON. Nepoužíváte výrazy v závorkách [...] . Místo toho přímo voláte funkce a získáme hodnoty z parametrů a proměnných. Každému nasazenému prostředku udělíte symbolický název, který usnadňuje odkazování na prostředek ve vaší šabloně.
Například následující JSON vrátí výstupní hodnotu z vlastnosti prostředku.
"outputs": {
"hostname": {
"type": "string",
"value": "[reference(resourceId('Microsoft.Network/publicIPAddresses', variables('publicIPAddressName'))).dnsSettings.fqdn]"
},
}
Ekvivalentní výstupní výraz v bicep je snazší psát. Následující příklad vrátí stejnou vlastnost pomocí symbolického názvu publicIP pro prostředek, který je definován v rámci šablony:
output hostname string = publicIP.properties.dnsSettings.fqdn
Úplné porovnání syntaxe naleznete v tématu porovnání formátu JSON a bicep pro šablony.
Bicep automaticky spravuje závislosti mezi prostředky. Můžete se vyhnout nastavení, dependsOn když se symbolický název prostředku používá v jiné deklaraci prostředků.
Struktura souboru bicep je flexibilnější než šablona JSON. Můžete deklarovat parametry, proměnné a výstupy kdekoli v souboru. Ve formátu JSON musíte deklarovat všechny parametry, proměnné a výstupy v odpovídajících částech šablony.
Časté otázky
Proč vytvořit nový jazyk namísto použití existujícího jazyka?
Bicep můžete představit jako revizi existujícího jazyka šablon ARM, a ne pomocí nového jazyka. Syntaxe se změnila, ale základní funkce a modul runtime zůstávají stejné.
Před vývojem bicep se považujeme za použití stávajícího programovacího jazyka. Rozhodli jsme se, že naše cílová skupina by usnadnila seznámení s bicep, spíše než Začínáme s jiným jazykem.
Proč se vám nezaměřuje vaše energie na Terraformu nebo jiné infrastruktury třetích stran jako nabídky kódu?
Různí uživatelé dávají přednost různým jazykům a nástrojům konfigurace. Chceme zajistit, aby všechny tyto nástroje poskytovaly Skvělé prostředí v Azure. Bicep je součástí tohoto úsilí.
Pokud máte s Terraformu spokojeni, neexistuje žádný důvod k přepnutí. Společnost Microsoft se zavazuje, že bude mít jistotu, že se Terraformu na Azure nejlépe stane.
Pro zákazníky, kteří mají vybrané šablony ARM, se domníváme, že bicep vylepšuje prostředí pro vytváření obsahu. Bicep také pomáhá s přechodem pro zákazníky, kteří nepřijali infrastrukturu jako kód.
Je tato Příprava k použití v produkčním prostředí?
Ano. Od verze 0,3 jsou bicep podporovány plány podpory Microsoftu. Bicep má paritu s tím, co je možné dosáhnout pomocí šablon ARM. Neexistují žádné nepotřebné změny, které jsou aktuálně plánovány, ale je možné, že budete muset v budoucnu vytvořit zásadní změny.
Je bicep jenom pro Azure?
V současné době neplánujeme, aby se bicep rozšířila mimo Azure. Chceme plně podporovat Azure a optimalizovat prostředí pro nasazení.
Splnění tohoto cíle vyžaduje práci s některými rozhraními API, která jsou mimo Azure. Očekáváme, že pro tyto scénáře budeme poskytovat body rozšiřitelnosti.
Co se stane s existujícími šablonami ARM?
Stále fungují přesně tak, jak mají. Nemusíte dělat žádné změny. Budeme dál podporovat základní jazyk JSON šablony ARM. Soubory bicep se zkompiluje do formátu JSON a tento JSON se pošle do Azure pro nasazení.
Až budete připraveni, můžete soubory JSON dekompilovat na bicep.
Můžu použít bicep k nasazení do centra Azure Stack?
Ano, bicep můžete použít pro nasazení centra Azure Stack, ale Všimněte si, že bicep může zobrazit typy, které ještě nejsou k dispozici v centru Azure Stack. můžete zobrazit sadu příkladů v GitHub úložiště šablon pro rychlý start centra Azure Stack.
Další kroky
Začněte s rychlým startem.