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ší infrastruktury Azure jako řešení kódu.

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. Bicep CLI během nasazování přeformátuje soubor bicep na šablonu formátu ARM JSON.

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

Pokud chcete začít s bicep, nainstalujte nástroje.

Po instalaci nástrojů Vyzkoušejte rychlý Start. Série kurzů vás provede strukturou a funkcemi bicep.

Chcete-li zobrazit ekvivalentní soubory JSON a bicep vedle sebe, přečtěte si téma bicep Playground.

Pokud máte existující šablonu ARM, kterou byste chtěli dekompilovat do bicep, přečtěte si téma dekompilace šablon ARM do bicep.

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. 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 se bicep podporuje v plánech 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.

Další kroky

Začněte s rychlým startem.