Delen via


Quickstart: Een sjabloonspecificatie maken en implementeren met Bicep

In deze quickstart wordt beschreven hoe u een sjabloonspecificatie maakt en implementeert met een Bicep-bestand. Een sjabloonspecificatie wordt geïmplementeerd in een resourcegroep, zodat personen in uw organisatie resources kunnen implementeren in Microsoft Azure. Met sjabloonspecificaties kunt u implementatiesjablonen delen zonder gebruikers toegang te geven om het Bicep-bestand te wijzigen. In dit voorbeeld van een sjabloonspecificatie wordt een Bicep-bestand gebruikt om een opslagaccount te implementeren.

Wanneer u een sjabloonspecificatie maakt, wordt het Bicep-bestand getranspileerd in JavaScript Object Notation (JSON). In de sjabloonspecificatie wordt JSON gebruikt om Azure-resources te implementeren. Op dit moment kunt u microsoft Azure Portal niet gebruiken om een Bicep-bestand te importeren en een sjabloonspecificatieresource te maken.

Vereisten

Bicep-bestand maken

U maakt een sjabloonspecificatie op basis van een lokaal Bicep-bestand. Kopieer het volgende voorbeeld en sla het op uw computer op als main.bicep. In de voorbeelden wordt het pad C:\templates\main.bicep gebruikt. U kunt een ander pad gebruiken, maar u moet de opdrachten wijzigen.

Het volgende Bicep-bestand wordt gebruikt op de tabbladen PowerShell en CLI . Op het tabblad Bicep-bestand wordt een andere sjabloon gebruikt waarin Bicep en JSON worden gecombineerd om een sjabloonspecificatie te maken en te implementeren.

@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@2023-04-01' = {
  name: storageAccountName
  location: location
  sku: {
    name: storageAccountType
  }
  kind: 'StorageV2'
  properties: {}
}

output storageAccountNameOutput string = storageAccount.name

Sjabloonspecificatie maken

De sjabloonspecificatie is een resourcetype met de naam Microsoft.Resources/templateSpecs. Als u een sjabloonspecificatie wilt maken, gebruikt u Azure CLI, Azure PowerShell of een Bicep-bestand.

In dit voorbeeld wordt de naam templateSpecRGvan de resourcegroep gebruikt. U kunt een andere naam gebruiken, maar u moet de opdrachten wijzigen.

  1. Maak een nieuwe resourcegroep voor de sjabloonspecificatie.

    New-AzResourceGroup `
      -Name templateSpecRG `
      -Location westus2
    
  2. Maak de sjabloonspecificatie in deze resourcegroep. Geef de nieuwe sjabloonspecificatie de naam storageSpec.

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

Sjabloonspecificatie implementeren

Gebruik de sjabloonspecificatie om een opslagaccount te implementeren. In dit voorbeeld wordt de naam storageRGvan de resourcegroep gebruikt. U kunt een andere naam gebruiken, maar u moet de opdrachten wijzigen.

  1. Eerst maakt u een resourcegroep die het nieuwe opslagaccount bevat.

    New-AzResourceGroup `
      -Name storageRG `
      -Location westus2
    
  2. Haal de resource-id op van de sjabloonspecificatie.

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "1.0").Versions.Id
    
  3. Implementeer de sjabloonspecificatie.

    New-AzResourceGroupDeployment `
      -TemplateSpecId $id `
      -ResourceGroupName storageRG
    
  4. U geeft parameters precies zoals u zou doen voor een bicep-bestandsimplementatie. Implementeer de sjabloonspecificatie opnieuw met een parameter voor het type opslagaccount.

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

Toegang verlenen

Als u wilt dat andere gebruikers in uw organisatie uw sjabloonspecificatie implementeren, moet u hen leestoegang verlenen. U kunt de rol Lezer toewijzen aan een Microsoft Entra-groep voor de resourcegroep die sjabloonspecificaties bevat die u wilt delen. Zie Zelfstudie: Een groep toegang verlenen tot Azure-resources met behulp van Azure PowerShell voor meer informatie.

Bicep-bestand bijwerken

Nadat de sjabloonspecificatie is gemaakt, hebt u besloten het Bicep-bestand bij te werken. Als u wilt doorgaan met de voorbeelden in de PowerShell - of CLI-tabbladen , kopieert u het voorbeeld en vervangt u het bestand main.bicep .

De parameter storageNamePrefix geeft een voorvoegselwaarde op voor de naam van het opslagaccount. De storageAccountName variabele voegt het voorvoegsel samen met een unieke tekenreeks.

@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

Versie van sjabloonspecificatie bijwerken

In plaats van een nieuwe sjabloonspecificatie te maken voor de herziene sjabloon, voegt u een nieuwe versie toe met de naam van 2.0 de bestaande sjabloonspecificatie. Gebruikers kunnen ervoor kiezen om een van beide versies te implementeren.

  1. Maak een nieuwe versie van de sjabloonspecificatie.

    New-AzTemplateSpec `
      -Name storageSpec `
      -Version "2.0" `
      -ResourceGroupName templateSpecRG `
      -Location westus2 `
      -TemplateFile "C:\templates\main.bicep"
    
  2. Als u de nieuwe versie wilt implementeren, haalt u de resource-id op voor de 2.0-versie.

    $id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "2.0").Versions.Id
    
  3. Implementeer de nieuwe versie en gebruik het storageNamePrefix om een voorvoegsel op te geven voor de naam van het opslagaccount.

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

Resources opschonen

Als u de resources wilt opschonen die u in deze quickstart hebt geïmplementeerd, verwijdert u beide resourcegroepen. De resourcegroep, sjabloonspecificaties en opslagaccounts worden verwijderd.

Gebruik Azure PowerShell of Azure CLI om de resourcegroepen te verwijderen.

Remove-AzResourceGroup -Name "templateSpecRG"

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

az group delete --name storageRG

Volgende stappen