Principy struktury a syntaxe souborů Bicep

Dokončeno

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, managementGroupa 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 locationje , namea properties. Existují vlastnosti specifické pro prostředky, které lze použít k přizpůsobení cenové úrovně SKUprostř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.