JSON Azure Resource Manager-sablon felbontása a Bicep-hez
Ez a cikk azt ismerteti, hogyan bonthatja le az Azure Resource Manager-sablonokat (ARM-sablonokat) Bicep-fájlokra. A konvertálási parancsok futtatásához telepítve kell lennie a Bicep CLI-nek .
Feljegyzés
A Visual Studio Code-ból közvetlenül létrehozhat erőforrás-deklarációkat a meglévő erőforrások importálásával. További információ: Bicep-parancsok.
A Visual Studio Code lehetővé teszi a JSON bicepként való beillesztését. Automatikusan futtatja a decompile
parancsot. További információ: JSON beillesztése Bicepként.
Az ARM-sablonok lebontásával megkezdheti a Bicep-fejlesztést. Ha rendelkezik ARM-sablonok kódtárával, és a Bicep-et szeretné használni a jövőbeli fejlesztéshez, a Bicep-be bonthatja őket. Előfordulhat azonban, hogy a Bicep-fájlnak változatokra van szüksége a Bicep ajánlott eljárásainak implementálásához.
Ez a cikk bemutatja, hogyan futtathatja a parancsot az decompile
Azure CLI-ben. Ha nem az Azure CLI-t használja, futtassa a parancsot a parancs kezdete nélkül az
. Például a az bicep decompile
következő lesz bicep decompile
: .
Lebontás JSON-ról Bicep-be
Ha egy ARM-sablon JSON-sablonját a Bicep-be szeretné bontani, használja a következőt:
az bicep decompile --file main.json
Ez a parancs létrehoz egy main.bicep nevű fájlt ugyanabban a könyvtárban, mint main.json. Ha a main.bicep ugyanabban a könyvtárban található, a --force kapcsolóval írja felül a meglévő Bicep-fájlt.
A Visual Studio Code-ból a Visual Studio Code-ból az ARM-sablon JSON-ját a Bicep-be is bonthatja a Decompile into Bicep
Visual Studio Code parancsával. További információ: Decompile into Bicep.
Figyelemfelhívás
A felbontás megpróbálja átalakítani a fájlt, de nincs garantált leképezés JSON ARM-sablonokból Bicep-be. Előfordulhat, hogy ki kell javítania a létrehozott Bicep-fájl figyelmeztetéseit és hibáit. Vagy a felbontás meghiúsulhat, ha a pontos átalakítás nem lehetséges. Hozzon létre egy hibát a problémák vagy a pontatlan konverziók jelentéséhez.
A lebontási és buildelési parancsok funkcionálisan egyenértékű sablonokat hoznak létre. Előfordulhat azonban, hogy a megvalósítás során nem teljesen azonosak. Ha JSON-ról Bicep-re konvertál egy sablont, majd vissza JSON-ra, az az eredeti sablontól eltérő szintaxisú sablont eredményezhet. Üzembe helyezéskor a konvertált sablonok ugyanazokat az eredményeket eredményezik.
Konverziós problémák elhárítása
Tegyük fel, hogy a következő ARM-sablonnal rendelkezik:
{
"$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": "2023-04-01",
"name": "[variables('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageAccountType')]"
},
"kind": "StorageV2",
"properties": {}
}
],
"outputs": {
"storageAccountName": {
"type": "string",
"value": "[variables('storageAccountName')]"
}
}
}
Ha lebontja, a következőt kapja:
@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@2023-04-01' = {
name: storageAccountName
location: location
sku: {
name: storageAccountType
}
kind: 'StorageV2'
properties: {}
}
output storageAccountName string = storageAccountName
A bontott fájl működik, de vannak olyan nevei, amelyeket esetleg módosítani szeretne. A változó var storageAccountName_var
elnevezése szokatlan. Módosíthatja a következőre:
var uniqueStorageName = 'store${uniqueString(resourceGroup().id)}'
Ha át szeretné nevezni a fájlt, kattintson a jobb gombbal a névre, majd válassza az Átnevezés szimbólumot. Az F2 gyorsbillentyűt is használhatja.
Az erőforrásnak van egy szimbolikus neve, amelyet esetleg módosítani szeretne.
storageAccountName
A szimbolikus név helyett használja a következőtexampleStorage
: .
resource exampleStorage 'Microsoft.Storage/storageAccounts@2023-04-01' = {
A teljes fájl a következő:
@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@2023-04-01' = {
name: uniqueStorageName
location: location
sku: {
name: storageAccountType
}
kind: 'StorageV2'
properties: {}
}
output storageAccountName string = uniqueStorageName
Sablon exportálása és konvertálása
Exportálhatja egy erőforráscsoport sablonját, majd közvetlenül a decompile
parancsnak adhatja át. Az alábbi példák bemutatják, hogyan bonthat le egy exportált sablont:
az group export --name "your_resource_group_name" > main.json
az bicep decompile --file main.json
Egymás melletti nézet
A Bicep Playground lehetővé teszi az egyenértékű ARM-sablonok és Bicep-fájlok egymás melletti megtekintését. Választhatja a mintasablont mindkét verzió megtekintéséhez, vagy válassza a Decompile lehetőséget a saját ARM-sablon feltöltéséhez és a megfelelő Bicep-fájl megtekintéséhez.
Következő lépések
Az összes Bicep CLI-parancsról további információt a Bicep CLI-parancsok című témakörben talál.