Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure Resource Manager şablonlarını (ARM şablonları) Bicep dosyalarına dönüştürme açıklanmaktadır. Dönüştürme komutlarını çalıştırmak için Bicep CLI yüklü olmalıdır.
Note
Visual Studio Code'dan, mevcut kaynaklardan içeri aktararak doğrudan kaynak bildirimleri oluşturabilirsiniz. Daha fazla bilgi için Bicep komutları'na bakın.
Visual Studio Code, JSON'ı Bicep olarak yapıştırmanızı sağlar. Komutu otomatik olarak çalıştırır decompile . Daha fazla bilgi için bkz JSON'ı Bicep olarak yapıştırın.
Decompiling an ARM template helps you get started with Bicep development. ARM şablonları kitaplığınız varsa ve gelecekteki geliştirmeler için Bicep'i kullanmak istiyorsanız, bunları Bicep'e göre koda aktarabilirsiniz. However, you might need to revise the Bicep file to implement best practices.
Bu makalede, decompile komutunun Azure CLI'de nasıl çalıştırılacağını gösterilmektedir. Azure CLI kullanmıyorsanız, komutu başında "az" olmadan çalıştırın. Örneğin az bicep decompile, bicep decompile olur.
JSON'dan Bicep'e kaynak kod çözme
ARM şablonu JSON'unu Bicep'e decompile etmek için şunu kullanın:
az bicep decompile --file main.json
Bu komut, main.json ile aynı dizinde main.bicep adlı bir dosya oluşturur. If main.bicep exists in the same directory, use the --force switch to overwrite the existing Bicep file.
You can also decompile ARM template JSON to Bicep from Visual Studio Code by using the Decompile into Bicep command in Visual Studio Code. Daha fazla bilgi için Bicep'e Decompile Etme bölümüne bakın.
Dikkat
Decompilation attempts to convert the file, but there's no guaranteed mapping from JSON ARM templates to Bicep. Oluşturulan Bicep dosyasındaki uyarıları ve hataları düzeltmeniz gerekebilir. Aksi takdirde, doğru bir dönüştürme mümkün değilse, kod çözme başarısız olabilir. Sorunları veya yanlış dönüştürmeleri bildirmek için bir sorun oluşturun.
Kod çözme ve derleme komutları, işlevsel olarak eşdeğer şablonlar oluşturur. Ancak, uygulama sırasında tam olarak aynı olmayabilir. Bir şablonu JSON'dan Bicep'e ve sonra da JSON'a dönüştürmek, özgün şablondan farklı söz dizimine sahip bir şablon oluşturabilir. Dağıtıldığında, dönüştürülen şablonlar aynı sonuçları üretir.
Dönüştürme sorunlarını düzeltme
Aşağıdaki ARM şablonunuz olduğunu varsayalım:
{
"$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')]"
}
}
}
Bu koda çözüm getirdiğinizde şunları elde edersiniz:
@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
Koda dönüştürülmüş dosya çalışır, ancak değiştirmek isteyebileceğiniz bazı adlara sahiptir. Değişkenin var storageAccountName_var olağan dışı bir adlandırma kuralı vardır. Bunu şu şekilde değiştirebilirsiniz:
var uniqueStorageName = 'store${uniqueString(resourceGroup().id)}'
Dosya genelinde yeniden adlandırmak için ada sağ tıklayın ve ardından Simgeyi yeniden adlandır seçin. F2 kısayol tuşunu da kullanabilirsiniz.
Kaynağın değiştirmek isteyebileceğiniz sembolik bir adı var.
storageAccountName Sembolik ad yerine kullanınexampleStorage.
resource exampleStorage 'Microsoft.Storage/storageAccounts@2025-06-01' = {
Dosyanın tamamı:
@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
Şablonu dışarı aktarma ve dönüştürme
Note
Azure portalını kullanarak Bicep dosyalarını dışarı aktarabilirsiniz. Daha fazla bilgi için bkz. Bicep dosyasını dışarı aktarmak için Azure portalını kullanma.
Bir kaynak grubu için şablonu dışarı aktarabilir ve ardından doğrudan decompile komutunu kullanabilirsiniz. Aşağıdaki örneklerde, dışarı aktarılan bir şablonun nasıl kaynak koda dönüştürüleceğini gösterir:
az group export --name "your_resource_group_name" > main.json
az bicep decompile --file main.json
Yan yana görünüm
Bicep Playground , eşdeğer ARM şablonlarını ve Bicep dosyalarını yan yana görüntülemenizi sağlar. Her iki sürümünü görmek için Örnek Şablon'u seçebilir veya Kaynak koda ayırma'yı seçerek kendi ARM şablonunuzu yükleyip eşdeğer Bicep dosyasını görüntüleyebilirsiniz.
Sonraki adımlar
To learn about all Bicep CLI commands, see Bicep CLI commands.