Rychlý start: Vytvoření a nasazení specifikace šablony pomocí Bicep

Tento rychlý start popisuje, jak vytvořit a nasadit specifikaci šablony pomocí souboru Bicep. Specifikace šablony se nasadí do skupiny prostředků, aby lidé ve vaší organizaci mohli nasazovat prostředky v Microsoft Azure. Specifikace šablon umožňují sdílet šablony nasazení bez nutnosti udělit uživatelům přístup ke změně souboru Bicep. Tento příklad specifikace šablony používá k nasazení účtu úložiště soubor Bicep.

Při vytváření specifikace šablony se soubor Bicep přeloží do formátu JSON (JavaScript Object Notation). Specifikace šablony používá k nasazení prostředků Azure JSON. V současné době nemůžete pomocí webu Microsoft Azure Portal importovat soubor Bicep a vytvořit prostředek specifikace šablony.

Požadavky

Vytvoření souboru Bicep

Vytvoříte specifikaci šablony z místního souboru Bicep. Zkopírujte následující ukázku a uložte ji do počítače jako main.bicep. Příklady používají cestu C:\templates\main.bicep. Můžete použít jinou cestu, ale budete muset změnit příkazy.

Následující soubor Bicep se používá na kartách PowerShellu a rozhraní příkazového řádku . Karta Soubor Bicep používá jinou šablonu, která kombinuje Bicep a JSON k vytvoření a nasazení specifikace šablony.

@allowed([
  'Premium_LRS'
  'Premium_ZRS'
  'Standard_GRS'
  'Standard_GZRS'
  'Standard_LRS'
  'Standard_RAGRS'
  'Standard_RAGZRS'
  'Standard_ZRS'
])
@description('Storage account type.')
param storageAccountType string = 'Standard_LRS'

@description('Location for all resources.')
param location string = resourceGroup().location

var storageAccountName = 'storage${uniqueString(resourceGroup().id)}'

resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: storageAccountType
  }
  kind: 'StorageV2'
  properties: {}
}

output storageAccountNameOutput string = storageAccount.name

Vytvoření specifikace šablony

Specifikace šablony je typ prostředku s názvem Microsoft.Resources/templateSpecs. Pokud chcete vytvořit specifikaci šablony, použijte Azure CLI, Azure PowerShell nebo soubor Bicep.

V tomto příkladu se používá název templateSpecRGskupiny prostředků . Můžete použít jiný název, ale budete muset změnit příkazy.

  1. Vytvořte novou skupinu prostředků, která bude obsahovat specifikaci šablony.

    New-AzResourceGroup `
      -Name templateSpecRG `
      -Location westus2
    
  2. Vytvořte specifikaci šablony v této skupině prostředků. Zadejte novou specifikaci šablony název storageSpec.

    New-AzTemplateSpec `
      -Name storageSpec `
      -Version "1.0" `
      -ResourceGroupName templateSpecRG `
      -Location westus2 `
      -TemplateFile "C:\templates\main.bicep"
    

Nasazení specifikace šablony

Pomocí specifikace šablony nasaďte účet úložiště. V tomto příkladu se používá název storageRGskupiny prostředků . Můžete použít jiný název, ale budete muset změnit příkazy.

  1. Vytvořte skupinu prostředků, která bude obsahovat nový účet úložiště.

    New-AzResourceGroup `
      -Name storageRG `
      -Location westus2
    
  2. Získejte ID prostředku specifikace šablony.

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "1.0").Versions.Id
    
  3. Nasaďte specifikaci šablony.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG
    
  4. Parametry zadáte přesně tak, jak byste zadali pro nasazení souboru Bicep. Znovu nasaďte specifikaci šablony s parametrem pro typ účtu úložiště.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG `
      -storageAccountType Standard_GRS
    

Udělení přístupu

Pokud chcete umožnit ostatním uživatelům ve vaší organizaci nasadit specifikaci šablony, musíte jim udělit přístup pro čtení. Roli Čtenář můžete přiřadit ke skupině prostředků Microsoft Entra, která obsahuje specifikace šablony, které chcete sdílet. Další informace najdete v tématu Kurz: Udělení přístupu ke skupinám k prostředkům Azure pomocí Azure PowerShellu.

Aktualizace souboru Bicep

Po vytvoření specifikace šablony jste se rozhodli aktualizovat soubor Bicep. Pokud chcete pokračovat s příklady na kartách PowerShellu nebo rozhraní příkazového řádku , zkopírujte ukázku a nahraďte soubor main.bicep .

storageNamePrefix Parametr určuje hodnotu předpony pro název účtu úložiště. storageAccountName Proměnná zřetězí předponu s jedinečným řetězcem.

@allowed([
  'Premium_LRS'
  'Premium_ZRS'
  'Standard_GRS'
  'Standard_GZRS'
  'Standard_LRS'
  'Standard_RAGRS'
  'Standard_RAGZRS'
  'Standard_ZRS'
])
@description('Storage account type.')
param storageAccountType string = 'Standard_LRS'

@description('Location for all resources.')
param location string = resourceGroup().location

@maxLength(11)
@description('The storage account name prefix.')
param storageNamePrefix string = 'storage'

var storageAccountName = '${toLower(storageNamePrefix)}${uniqueString(resourceGroup().id)}'

resource storageAccount 'Microsoft.Storage/storageAccounts@2022-09-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: storageAccountType
  }
  kind: 'StorageV2'
  properties: {}
}

output storageAccountNameOutput string = storageAccount.name

Aktualizace verze specifikace šablony

Místo vytvoření nové specifikace šablony pro revidovanou šablonu přidejte novou verzi pojmenovanou 2.0 ke stávající specifikaci šablony. Uživatelé se můžou rozhodnout pro nasazení jedné z verzí.

  1. Vytvořte novou verzi specifikace šablony.

    New-AzTemplateSpec `
      -Name storageSpec `
      -Version "2.0" `
      -ResourceGroupName templateSpecRG `
      -Location westus2 `
      -TemplateFile "C:\templates\main.bicep"
    
  2. Pokud chcete nasadit novou verzi, získejte ID prostředku pro verzi 2.0 .

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "2.0").Versions.Id
    
  3. Nasaďte novou verzi a použijte storageNamePrefix k zadání předpony pro název účtu úložiště.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG `
      -storageNamePrefix "demo"
    

Vyčištění prostředků

Pokud chcete vyčistit prostředky, které jste nasadili v tomto rychlém startu, odstraňte obě skupiny prostředků. Odstraní se skupina prostředků, specifikace šablon a účty úložiště.

K odstranění skupin prostředků použijte Azure PowerShell nebo Azure CLI.

Remove-AzResourceGroup -Name "templateSpecRG"

Remove-AzResourceGroup -Name "storageRG"
az group delete --name templateSpecRG

az group delete --name storageRG

Další kroky