Principy struktury a syntaxe souborů Bicep
Azure Bicep má vlastní syntaxi, je ale snadné ji pochopit a sledovat. Nebudeme se podrobně zabývat syntaxí a strukturou, ale pojďme se podívat na hlavní koncepty pomocí příkladu.
Ukázkový soubor Bicep .bicep
@minLength(3)
@maxLength(11)
param storagePrefix string
param storageSKU string = 'Standard_LRS'
param location string = resourceGroup().location
var uniqueStorageName = '${storagePrefix}${uniqueString(resourceGroup().id)}'
resource stg 'Microsoft.Storage/storageAccounts@2019-04-01' = {
name: uniqueStorageName
location: location
sku: {
name: storageSKU
}
kind: 'StorageV2'
properties: {
supportsHttpsTrafficOnly: true
}
resource service 'fileServices' = {
name: 'default'
resource share 'shares' = {
name: 'exampleshare'
}
}
}
module webModule './webApp.bicep' = {
name: 'webDeploy'
params: {
skuName: 'S1'
location: location
}
}
output storageEndpoint object = stg.properties.primaryEndpoints
Obor
Ve výchozím nastavení je cílový obor všech šablon nastaven pro resourceGroup
, ale můžete ho přizpůsobit tak, že ho explicitně nastavíte. Jako jiné povolené hodnoty, subscription
, managementGroup
a tenant
.
Parametry
Už jste použili parametry v předchozí lekci. Umožňují přizpůsobit nasazení šablony za běhu tím, že poskytují potenciální hodnoty pro názvy, umístění, předpony atd.
Parametry mají také typy, které můžou editory ověřit a také mohou mít výchozí hodnoty, aby byly v době nasazení volitelné. Kromě toho můžete vidět, že můžou mít ověřovací pravidla, aby bylo nasazení spolehlivější, protože brání jakékoli neplatné hodnotě v vytváření obsahu. Další informace naleznete v tématu Parametry v bicep.
Proměnné
Podobně jako parametry hrají proměnné roli při vytváření robustnější a čitelnější šablony. Jakýkoli složitý výraz se dá uložit do proměnné a použít v celé šabloně. Když definujete proměnnou, typ se odvodí z hodnoty.
V předchozím příkladu se uniqueStorageName
používá ke zjednodušení definice prostředku. Další informace najdete v tématu Proměnné v bicep.
Zdroje informací
Klíčové resource
slovo se používá, když potřebujete deklarovat prostředek v šablonách. Deklarace prostředku má symbolický název prostředku, který lze později použít k odkazování na tento prostředek buď pro definování podsourcu, nebo použití jeho vlastností pro implicitní závislost, jako je vztah nadřazený-podřízený.
Existují určité vlastnosti, které jsou společné pro všechny prostředky, jako location
je , name
a properties
. Existují vlastnosti specifické pro prostředky, které lze použít k přizpůsobení cenové úrovně SKU
prostředku atd.
Podsourcy v rámci prostředku nebo mimo prostředek můžete definovat odkazem na nadřazený objekt. V předchozím příkladu se sdílená složka definuje v rámci prostředku účtu úložiště. Pokud by záměrem bylo definovat prostředek mimo něj, museli byste změnit šablonu:
resource storage 'Microsoft.Storage/storageAccounts@2021-02-01' = {
name: 'examplestorage'
location: resourceGroup().location
kind: 'StorageV2'
sku: {
name: 'Standard_LRS'
}
}
resource service 'Microsoft.Storage/storageAccounts/fileServices@2021-02-01' = {
name: 'default'
parent: storage
}
resource share 'Microsoft.Storage/storageAccounts/fileServices/shares@2021-02-01' = {
name: 'exampleshare'
parent: service
}
Další informace najdete v tématu Deklarace prostředků v Bicep.
Moduly
Pokud chcete skutečně opakovaně použitelné šablony, nemůžete se vyhnout použití modulu. Moduly umožňují opakovaně používat soubor Bicep v jiných souborech Bicep. V modulu definujete, co potřebujete k nasazení, a všechny potřebné parametry a když ho znovu použijete v jiném souboru, stačí jenom odkazovat na soubor a zadat parametry. O zbytek se postará Azure Bicep.
V předchozím příkladu používáte modul, který pravděpodobně nasazuje App Service
. Další informace naleznete v tématu Použití modulů v Bicep.
Výstupy
Výstupy můžete použít k předání hodnot z vašeho nasazení do vnějšího světa, ať už v kanálu CI/CD, nebo v místním terminálu nebo v Cloud Shellu. To vám umožní po dokončení nasazení získat přístup k hodnotě, jako je koncový bod úložiště nebo adresa URL aplikace.
Jediné, co potřebujete, je output
klíčové slovo a vlastnost, ke které chcete získat přístup:
output storageEndpoint endpoints = stg.properties.primaryEndpoints
Další informace najdete v tématu Výstupy v Bicep.
Další funkce
V souboru Bicep je k dispozici mnoho dalších funkcí, jako jsou smyčky, podmíněné nasazení, víceřádkové řetězce, odkazování na existující cloudový prostředek a mnoho dalších. Každá platná funkce v šabloně ARM je ve skutečnosti platná také v souboru Bicep.
Další kroky
V další lekci se dozvíte, jak používat Bicep ve službě Azure Pipeline.