Ez a rövid útmutató bemutatja, hogyan hozhat létre és helyezhet üzembe sablonspektratívokat egy Bicep-fájllal. A sablon specifikációja egy erőforráscsoportban van üzembe helyezve, így a szervezet tagjai erőforrásokat helyezhetnek üzembe a Microsoft Azure-ban. A sablon specifikációi lehetővé teszik az üzembehelyezési sablonok megosztását anélkül, hogy hozzáférést kellene adni a felhasználóknak a Bicep-fájl módosításához. Ez a sablonspecifikációs példa egy Bicep-fájlt használ egy tárfiók üzembe helyezéséhez.
Sablonleképezés létrehozásakor a Bicep-fájl JavaScript Object Notation (JSON) lesz. A sablon specifikációja JSON-t használ az Azure-erőforrások üzembe helyezéséhez. Jelenleg nem használhatja a Microsoft Azure Portalt Bicep-fájlok importálására és sablon-specifikációs erőforrás létrehozására.
Előfeltételek
Bicep-fájl létrehozása
Sablon-specifikációt egy helyi Bicep-fájlból hozhat létre. Másolja ki a következő mintát, és mentse a számítógépre main.bicep néven. A példák a C:\templates\main.bicep elérési utat használják. Használhat egy másik elérési utat, de módosítania kell a parancsokat.
Az alábbi Bicep-fájlt használja a PowerShell és a PARANCSSOR lap. A Bicep fájlfül egy másik sablont használ, amely a Bicep és a JSON használatával hoz létre és helyez üzembe egy sablon-specifikációt.
@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@2024-01-01' = {
name: storageAccountName
location: location
sku: {
name: storageAccountType
}
kind: 'StorageV2'
properties: {}
}
output storageAccountNameOutput string = storageAccount.name
Sablon specifikáció létrehozása
A sablon specifikációja egy Microsoft.Resources/templateSpecs nevű erőforrástípus. Sablon specifikáció létrehozásához használja az Azure CLI-t, az Azure PowerShellt vagy egy Bicep-fájlt.
Ez a példa az erőforráscsoport nevét templateSpecRG
használja. Más nevet is használhat, de módosítania kell a parancsokat.
Hozzon létre egy új erőforráscsoportot a sablon specifikációjának tartalmaznia.
New-AzResourceGroup `
-Name templateSpecRG `
-Location westus2
Hozza létre a sablon specifikációját az erőforráscsoportban. Adja meg az új sablon specifikációjának a storageSpec nevet.
New-AzTemplateSpec `
-Name storageSpec `
-Version "1.0" `
-ResourceGroupName templateSpecRG `
-Location westus2 `
-TemplateFile "C:\templates\main.bicep"
Hozzon létre egy új erőforráscsoportot a sablon specifikációjának tartalmaznia.
az group create \
--name templateSpecRG \
--location westus2
Hozza létre a sablon specifikációját az erőforráscsoportban. Adja meg az új sablon specifikációjának a storageSpec nevet.
az ts create \
--name storageSpec \
--version "1.0" \
--resource-group templateSpecRG \
--location westus2 \
--template-file "C:\templates\main.bicep"
Létrehozhat sablon-specifikációt egy Bicep-fájllal, de annak mainTemplate
JSON-fájlban kell lennie. A JSON-sablon nem használ szabványos JSON-szintaxist. Például nincsenek sorvégi vesszők, a dupla idézőjelek egy idézőjelekre cserélődnek, a fordított perjelek (\
) pedig az önálló idézőjelek kifejezésen belüli feloldására szolgálnak.
Másolja ki a következő sablont, és mentse a számítógépre main.bicep formátumban.
param templateSpecName string = 'storageSpec'
param templateSpecVersionName string = '1.0'
@description('Location for all resources.')
param location string = resourceGroup().location
resource createTemplateSpec 'Microsoft.Resources/templateSpecs@2022-02-01' = {
name: templateSpecName
location: location
}
resource createTemplateSpecVersion 'Microsoft.Resources/templateSpecs/versions@2022-02-01' = {
parent: createTemplateSpec
name: templateSpecVersionName
location: location
properties: {
mainTemplate: {
'$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'
'contentVersion': '1.0.0.0'
'metadata': {}
'parameters': {
'storageAccountType': {
'type': 'string'
'defaultValue': 'Standard_LRS'
'metadata': {
'description': 'Storage account type.'
}
'allowedValues': [
'Premium_LRS'
'Premium_ZRS'
'Standard_GRS'
'Standard_GZRS'
'Standard_LRS'
'Standard_RAGRS'
'Standard_RAGZRS'
'Standard_ZRS'
]
}
'location': {
'type': 'string'
'defaultValue': '[resourceGroup().location]'
'metadata': {
'description': 'Location for all resources.'
}
}
}
'variables': {
'storageAccountName': '[format(\'{0}{1}\', \'storage\', uniqueString(resourceGroup().id))]'
}
'resources': [
{
'type': 'Microsoft.Storage/storageAccounts'
'apiVersion': '2023-04-01'
'name': '[variables(\'storageAccountName\')]'
'location': '[parameters(\'location\')]'
'sku': {
'name': '[parameters(\'storageAccountType\')]'
}
'kind': 'StorageV2'
'properties': {}
}
]
'outputs': {
'storageAccountNameOutput': {
'type': 'string'
'value': '[variables(\'storageAccountName\')]'
}
}
}
}
}
Új erőforráscsoport létrehozása az Azure PowerShell vagy az Azure CLI használatával.
New-AzResourceGroup `
-Name templateSpecRG `
-Location westus2
az group create \
--name templateSpecRG \
--location westus2
Hozza létre a sablon specifikációját az erőforráscsoportban. A sablon specifikációjának neve storageSpec és verziószám 1.0
a Bicep-fájl paraméterei.
New-AzResourceGroupDeployment `
-ResourceGroupName templateSpecRG `
-TemplateFile "C:\templates\main.bicep"
az deployment group create \
--resource-group templateSpecRG \
--template-file "C:\templates\main.bicep"
Sablon specifikáció üzembe helyezése
Tárfiók üzembe helyezéséhez használja a sablon specifikációt. Ez a példa az erőforráscsoport nevét storageRG
használja. Más nevet is használhat, de módosítania kell a parancsokat.
Hozzon létre egy erőforráscsoportot az új tárfiók tárolásához.
New-AzResourceGroup `
-Name storageRG `
-Location westus2
Kérje le a sablon specifikációjának erőforrás-azonosítóját.
$id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "1.0").Versions.Id
A sablon specifikációjának üzembe helyezése.
New-AzResourceGroupDeployment `
-TemplateSpecId $id `
-ResourceGroupName storageRG
Pontosan ugyanúgy adja meg a paramétereket, mint egy Bicep-fájl üzembe helyezéséhez. A sablon specifikációjának ismételt üzembe helyezése a tárfiók típusának paraméterével.
New-AzResourceGroupDeployment `
-TemplateSpecId $id `
-ResourceGroupName storageRG `
-storageAccountType Standard_GRS
Hozzon létre egy erőforráscsoportot az új tárfiók tárolásához.
az group create \
--name storageRG \
--location westus2
Kérje le a sablon specifikációjának erőforrás-azonosítóját.
id=$(az ts show --name storageSpec --resource-group templateSpecRG --version "1.0" --query "id")
Feljegyzés
Ismert probléma merült fel a sablon specifikációazonosítóinak lekérésével és egy változóhoz való hozzárendelésével kapcsolatban a Windows PowerShellben.
A sablon specifikációjának üzembe helyezése.
az deployment group create \
--resource-group storageRG \
--template-spec $id
Pontosan ugyanúgy adja meg a paramétereket, mint egy Bicep-fájl üzembe helyezéséhez. A sablon specifikációjának ismételt üzembe helyezése a tárfiók típusának paraméterével.
az deployment group create \
--resource-group storageRG \
--template-spec $id \
--parameters storageAccountType="Standard_GRS"
A sablon specifikációinak Bicep-fájllal való üzembe helyezéséhez használjon egy modult. A modul egy meglévő sablonelemre hivatkozik. További információ: fájl a sablon specifikációjában.
Másolja ki a következő Bicep-modult, és mentse a számítógépre storage.bicep néven.
module deployTemplateSpec 'ts:<subscriptionId>/templateSpecRG/storageSpec:1.0' = {
name: 'deployVersion1'
}
Cserélje le <subscriptionId>
a modulban. Az előfizetés azonosítóját az Azure PowerShell vagy az Azure CLI használatával szerezheti be.
(Get-AzContext).Subscription.Id
az account show --query "id" --output tsv
Az Azure PowerShell vagy az Azure CLI használatával hozzon létre egy új erőforráscsoportot a tárfiókhoz.
New-AzResourceGroup `
-Name storageRG `
-Location westus2
az group create \
--name storageRG \
--location westus2
A sablon specifikációjának üzembe helyezése az Azure PowerShell vagy az Azure CLI használatával.
New-AzResourceGroupDeployment `
-ResourceGroupName storageRG `
-TemplateFile "C:\templates\storage.bicep"
az deployment group create \
--resource-group storageRG \
--template-file "C:\templates\storage.bicep"
Hozzáadhat egy paramétert, és újra üzembe helyezheti a sablon specifikációt egy másik tárfióktípussal. Másolja ki a mintát, és cserélje le a storage.bicep fájlt. Ezután telepítse újra a sablon specifikációjának üzembe helyezését.
module deployTemplateSpec 'ts:<subscriptionId>/templateSpecRG/storageSpec:1.0' = {
name: 'deployVersion1'
params: {
storageAccountType: 'Standard_GRS'
}
}
Hozzáférés megadása
Ha engedélyezni szeretné, hogy a szervezet más felhasználói üzembe helyezhessék a sablon specifikációját, olvasási hozzáférést kell biztosítani számukra. Az Olvasó szerepkört hozzárendelheti egy Microsoft Entra-csoporthoz ahhoz az erőforráscsoporthoz, amely a megosztani kívánt sablon-specifikációkat tartalmazza. További információ : Oktatóanyag: Csoporthozzáférés biztosítása Azure-erőforrásokhoz az Azure PowerShell használatával.
Bicep-fájl frissítése
A sablon specifikációjának létrehozása után úgy döntött, hogy frissíti a Bicep-fájlt. A PowerShell- vagy CLI-lapok példáinak folytatásához másolja ki a mintát, és cserélje le a main.bicep fájlt.
A paraméter storageNamePrefix
a tárfiók nevének előtagértékét adja meg. A storageAccountName
változó egyedi sztringgel fűzi össze az előtagot.
@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
Sablon specifikációs verziójának frissítése
Ahelyett, hogy új sablonspecifikációt hoz létre a módosított sablonhoz, adjon hozzá egy új, a meglévő sablon specifikációjának elnevezett 2.0
verziót. A felhasználók bármelyik verziót üzembe helyezhetik.
Hozza létre a sablon specifikációjának új verzióját.
New-AzTemplateSpec `
-Name storageSpec `
-Version "2.0" `
-ResourceGroupName templateSpecRG `
-Location westus2 `
-TemplateFile "C:\templates\main.bicep"
Az új verzió üzembe helyezéséhez kérje le a verzió erőforrás-azonosítóját 2.0
.
$id = (Get-AzTemplateSpec -ResourceGroupName templateSpecRG -Name storageSpec -Version "2.0").Versions.Id
Telepítse az új verziót, és adja meg a storageNamePrefix
tárfiók nevének előtagot.
New-AzResourceGroupDeployment `
-TemplateSpecId $id `
-ResourceGroupName storageRG `
-storageNamePrefix "demo"
Hozza létre a sablon specifikációjának új verzióját.
az ts create \
--name storageSpec \
--version "2.0" \
--resource-group templateSpecRG \
--location westus2 \
--template-file "C:\templates\main.bicep"
Az új verzió üzembe helyezéséhez kérje le a verzió erőforrás-azonosítóját 2.0
.
id=$(az ts show --name storageSpec --resource-group templateSpecRG --version "2.0" --query "id")
Telepítse az új verziót, és adja meg a storageNamePrefix
tárfiók nevének előtagot.
az deployment group create \
--resource-group storageRG \
--template-spec $id \
--parameters storageNamePrefix="demo"
Hozza létre a sablon specifikációjának új verzióját. Másolja ki a mintát, és cserélje le a main.bicep fájlt.
A paraméter storageNamePrefix
a tárfiók nevének előtagértékét adja meg. A storageAccountName
változó egyedi sztringgel fűzi össze az előtagot.
param templateSpecName string = 'storageSpec'
param templateSpecVersionName string = '2.0'
@description('Location for all resources.')
param location string = resourceGroup().location
resource createTemplateSpec 'Microsoft.Resources/templateSpecs@2022-02-01' = {
name: templateSpecName
location: location
}
resource createTemplateSpecVersion 'Microsoft.Resources/templateSpecs/versions@2022-02-01' = {
parent: createTemplateSpec
name: templateSpecVersionName
location: location
properties: {
mainTemplate: {
'$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#'
'contentVersion': '1.0.0.0'
'metadata': {}
'parameters': {
'storageAccountType': {
'type': 'string'
'defaultValue': 'Standard_LRS'
'metadata': {
'description': 'Storage account type.'
}
'allowedValues': [
'Premium_LRS'
'Premium_ZRS'
'Standard_GRS'
'Standard_GZRS'
'Standard_LRS'
'Standard_RAGRS'
'Standard_RAGZRS'
'Standard_ZRS'
]
}
'location': {
'type': 'string'
'defaultValue': '[resourceGroup().location]'
'metadata': {
'description': 'Location for all resources.'
}
}
'storageNamePrefix': {
'type': 'string'
'defaultValue': 'storage'
'metadata': {
'description': 'The storage account name prefix.'
}
'maxLength': 11
}
}
'variables': {
'storageAccountName': '[format(\'{0}{1}\', toLower(parameters(\'storageNamePrefix\')), uniqueString(resourceGroup().id))]'
}
'resources': [
{
'type': 'Microsoft.Storage/storageAccounts'
'apiVersion': '2023-04-01'
'name': '[variables(\'storageAccountName\')]'
'location': '[parameters(\'location\')]'
'sku': {
'name': '[parameters(\'storageAccountType\')]'
}
'kind': 'StorageV2'
'properties': {}
}
]
'outputs': {
'storageAccountNameOutput': {
'type': 'string'
'value': '[variables(\'storageAccountName\')]'
}
}
}
}
}
Ha hozzá szeretné adni az új verziót a sablon specifikációjához, helyezze üzembe a sablont az Azure PowerShell vagy az Azure CLI használatával.
New-AzResourceGroupDeployment `
-ResourceGroupName templateSpecRG `
-TemplateFile "C:\templates\main.bicep"
az deployment group create \
--resource-group templateSpecRG \
--template-file "C:\templates\main.bicep"
Másolja ki a következő Bicep-modult, és mentse a számítógépre storage.bicep néven.
module deployTemplateSpec 'ts:<subscriptionId>/templateSpecRG/storageSpec:2.0' = {
name: 'deployVersion2'
params: {
storageNamePrefix: 'demo'
}
}
Cserélje le <subscriptionId>
a modulban. Az előfizetés azonosítóját az Azure PowerShell vagy az Azure CLI használatával szerezheti be.
(Get-AzContext).Subscription.Id
az account show --query "id" --output tsv
A sablon specifikációjának üzembe helyezése az Azure PowerShell vagy az Azure CLI használatával.
New-AzResourceGroupDeployment `
-ResourceGroupName storageRG `
-TemplateFile "C:\templates\storage.bicep"
az deployment group create \
--resource-group storageRG \
--template-file "C:\templates\storage.bicep"
Az erőforrások eltávolítása
Az ebben a rövid útmutatóban üzembe helyezett erőforrások törléséhez törölje mindkét erőforráscsoportot. Az erőforráscsoport, a sablon specifikációi és a tárfiókok törlődnek.
Az erőforráscsoportok törléséhez használja az Azure PowerShellt vagy az Azure CLI-t.
Remove-AzResourceGroup -Name "templateSpecRG"
Remove-AzResourceGroup -Name "storageRG"
az group delete --name templateSpecRG
az group delete --name storageRG
Következő lépések