Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje, jak dekompilovat šablony Azure Resource Manageru (šablony ARM) do souborů Bicep. Abyste mohli spouštět příkazy převodu, musíte mít nainstalované příkazové rozhraní Bicep.
Poznámka:
V editoru Visual Studio Code můžete přímo vytvořit deklarace prostředků importem z existujících prostředků. Další informace najdete v tématu Příkazy Bicep.
Visual Studio Code umožňuje vložit JSON jako Bicep. Automaticky spustí decompile příkaz. Další informace najdete v Vložit JSON jako Bicep.
Dekompilování šablony ARM vám pomůže začít s vývojem Bicep. Pokud máte knihovnu šablon ARM a chcete použít Bicep pro budoucí vývoj, můžete je dekompilovat do Bicep. Možná ale budete muset upravit soubor Bicep a implementovat osvědčené postupy.
Tento článek ukazuje, jak spustit decompile příkaz v Azure CLI. Pokud nepoužíváte Azure CLI, spusťte příkaz bez části az na začátku příkazu. Například z az bicep decompile se stane bicep decompile.
Dekompilování z JSON do Bicep
Pokud chcete dekompilovat JSON šablony ARM do Bicep, použijte:
az bicep decompile --file main.json
Tento příkaz vytvoří soubor main.bicep ve stejném adresáři jako main.json. Pokud soubor main.bicep existuje ve stejném adresáři, přepište existující soubor Bicep pomocí --force přepínače.
Kód JSON šablony ARM můžete dekompilovat do Bicep ve Visual Studio Code pomocí příkazu Decompile into Bicep ve Visual Studio Code. Další informace naleznete v tématu Decompile into Bicep.
Upozornění
Dekompilace se pokusí převést soubor, ale neexistuje žádné zaručené mapování ze šablon JSON ARM na Bicep. Možná budete muset opravit upozornění a chyby ve vygenerovaném souboru Bicep. V opačném případě může dekompilace selhat, pokud není možný přesný převod. Vytvořte problém , který nahlásí všechny problémy nebo nepřesné převody.
Příkazy dekompilu a sestavení vytvářejí šablony, které jsou funkčně ekvivalentní. Během implementace ale nemusí být úplně stejné. Převod šablony z JSON na Bicep a následný návrat do FORMÁTU JSON může vytvořit šablonu s jinou syntaxí než původní šablona. Při nasazení vytvoří převedené šablony stejné výsledky.
Řešení problémů s převodem
Předpokládejme, že máte následující šablonu ARM:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountType": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_ZRS",
"Premium_LRS"
],
"metadata": {
"description": "Storage Account type"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"variables": {
"storageAccountName": "[concat('store', uniquestring(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2025-06-01",
"name": "[variables('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageAccountType')]"
},
"kind": "StorageV2",
"properties": {}
}
],
"outputs": {
"storageAccountName": {
"type": "string",
"value": "[variables('storageAccountName')]"
}
}
}
Když ji dekompilujete, získáte:
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_ZRS'
'Premium_LRS'
])
@description('Storage Account type')
param storageAccountType string = 'Standard_LRS'
@description('Location for all resources.')
param location string = resourceGroup().location
var storageAccountName = 'store${uniqueString(resourceGroup().id)}'
resource storageAccount 'Microsoft.Storage/storageAccounts@2025-06-01' = {
name: storageAccountName
location: location
sku: {
name: storageAccountType
}
kind: 'StorageV2'
properties: {}
}
output storageAccountName string = storageAccountName
Dekompilovaný soubor funguje, ale má několik názvů, které můžete chtít změnit. Proměnná var storageAccountName_var má neobvyklou konvenci pojmenování. Můžete ho změnit na:
var uniqueStorageName = 'store${uniqueString(resourceGroup().id)}'
Pokud chcete soubor přejmenovat, klikněte pravým tlačítkem myši na název a pak vyberte Přejmenovat symbol. Můžete také použít klávesu F2 .
Prostředek má symbolický název, který můžete chtít změnit.
storageAccountName Místo symbolického názvu použijte exampleStorage.
resource exampleStorage 'Microsoft.Storage/storageAccounts@2025-06-01' = {
Úplný soubor je:
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_ZRS'
'Premium_LRS'
])
@description('Storage Account type')
param storageAccountType string = 'Standard_LRS'
@description('Location for all resources.')
param location string = resourceGroup().location
var uniqueStorageName = 'store${uniqueString(resourceGroup().id)}'
resource exampleStorage 'Microsoft.Storage/storageAccounts@2025-06-01' = {
name: uniqueStorageName
location: location
sku: {
name: storageAccountType
}
kind: 'StorageV2'
properties: {}
}
output storageAccountName string = uniqueStorageName
Exportovat šablonu a konvertovat
Poznámka:
K exportu souborů Bicep můžete použít Azure Portal. Další informace najdete v tématu Použití webu Azure Portal k exportu souboru Bicep.
Šablonu pro skupinu prostředků můžete exportovat a předat ji přímo do decompile příkazu. Následující příklady ukazují, jak dekompilovat exportovanou šablonu:
az group export --name "your_resource_group_name" > main.json
az bicep decompile --file main.json
Zobrazení vedle sebe
Bicep Playground umožňuje zobrazit ekvivalentní šablony ARM a soubory Bicep vedle sebe. Pokud chcete zobrazit obě verze, můžete vybrat ukázkovou šablonu, nebo zvolit Decompile, nahrát vlastní šablonu ARM a zobrazit ekvivalentní soubor Bicep.
Další kroky
Další informace o všech příkazech rozhraní příkazového řádku Bicep najdete v tématu Příkazy rozhraní příkazového řádku Bicep.