Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Om du vill distribuera en resurs via en Azure Resource Manager-mall (ARM-mall) lägger du till en resursdeklaration. Använd matrisen resources i en JSON-mall.
languageVersion 2.0 gör en lista över förbättringar av ARM JSON-mallar, till exempel att ändra resursdeklarationen från en matris till ett objekt. De flesta exempel som fortfarande visas i den här artikeln använder resources matris. Specifik information om languageVersion 2.0 finns i Använda symboliskt namn.
Tips/Råd
Vi rekommenderar Bicep eftersom det erbjuder samma funktioner som ARM-mallar och syntaxen är enklare att använda. Mer information finns i resursdeklaration.
Du är begränsad till 800 resurser i en mall. Mer information finns i Mallgränser.
Ange resurstyp och version
När du lägger till en resurs i mallen börjar du med att ange resurstyp och API-version. Dessa värden bestämmer de andra egenskaper som är tillgängliga för resursen.
I följande exempel visas hur du anger resurstyp och API-version för ett lagringskonto. Exemplet visar inte den fullständiga resursdeklarationen.
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-06-01",
...
}
]
Ange resursnamn
Varje resurs har ett namn. När du anger resursnamnet bör du vara uppmärksam på reglerna och begränsningarna för resursnamn.
"parameters": {
"storageAccountName": {
"type": "string",
"minLength": 3,
"maxLength": 24
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-06-01",
"name": "[parameters('storageAccountName')]",
...
}
]
Ange plats
Många resurser kräver en plats. Du kan avgöra om resursen behöver en plats antingen via intellisense- eller mallreferensen. I följande exempel läggs en platsparameter som används för lagringskontot.
"parameters": {
"storageAccountName": {
"type": "string",
"minLength": 3,
"maxLength": 24
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-06-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
...
}
]
Mer information finns i Ange resursplats i ARM-mall.
Ställ in taggar
Du kan använda taggar för en resurs under distributionen. Taggar hjälper dig att logiskt organisera dina distribuerade resurser. Exempel på olika sätt att ange taggar finns i ARM-malltaggar.
Ange resursspecifika egenskaper
Ovanstående egenskaper är generiska för de flesta resurstyper. När du har angett dessa värden måste du ange de egenskaper som är specifika för den resurstyp som du distribuerar.
Använd intellisense- eller mallreferens för att avgöra vilka egenskaper som är tillgängliga och vilka som krävs. I följande exempel anges de återstående egenskaperna för ett lagringskonto.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName": {
"type": "string",
"minLength": 3,
"maxLength": 24
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"functions": [],
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-06-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS",
"tier": "Standard"
},
"kind": "StorageV2",
"properties": {
"accessTier": "Hot"
}
}
]
}
Använd symboliskt namn
I Bicep har varje resursdefinition ett symboliskt namn. Det symboliska namnet används för att hänvisa till resursen från andra delar av Bicep-filen. Om du vill ha stöd för symboliskt namn i ARM JSON-mallar lägger du till languageVersion med versionen 2.0och ändrar resursdefinitionen från en matris till ett objekt. När languageVersion anges för en mall måste symboliskt namn anges för rotnivåresurser. Till exempel:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.ContainerService/managedClusters",
...
}
]
}
Föregående JSON kan skrivas till följande JSON:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"languageVersion": "2.0",
"contentVersion": "1.0.0.0",
"resources": {
"aks": {
"type": "Microsoft.ContainerService/managedClusters",
...
}
}
}
Symboliska namn är skiftlägeskänsliga. De tillåtna tecknen för symboliska namn är bokstäver, siffror och _. Symboliska namn måste vara unika i en mall, men kan överlappa med variabelnamn, parameternamn och utdatanamn i en mall. I följande exempel har det symboliska namnet på lagringskontoresursen samma namn som utdata.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"languageVersion": "2.0",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName": {
"type": "string",
"defaultValue": "[format('storage{0}', uniqueString(resourceGroup().id))]"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": {
"myStorage": {
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2022-09-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"properties": {}
}
},
"outputs": {
"myStorage":{
"type": "object",
"value": "[reference('myStorage')]"
}
}
}
Referensfunktionen kan använda en resurss symboliska namn, som du ser i föregående exempel. Referensfunktionen kan inte längre använda en resursens namn, till exempel reference(parameters('storageAccountName')).
Om Distributionsresursen används i en symbolisk namndistribution använder du apiVersion 2020-09-01 eller senare.
Deklarera befintliga resurser
Med languageVersion 2.0 och med ett symboliskt namn för resursdeklarationen kan du deklarera befintliga resurser. En översta nivåns resursegenskap av "existing": true orsakar att ARM läser snarare än distribuerar en resurs, vilket illustreras i följande exempel:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"languageVersion": "2.0",
"resources": {
"storageAccount": {
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2022-09-01",
"name": "storageacct",
"existing": true
}
},
"outputs": {
"saBlocksPlaintext": {
"type": "bool",
"value": "[ reference('storageAccount').supportsHttpsTrafficOnly]"
}
}
}
Befintliga resurser behöver inte definiera några andra egenskaper än type, apiVersionoch name.
Nästa steg
- Om du vill distribuera en resurs villkorligt läser du Villkorsstyrd distribution i ARM-mallar.
- Information om hur du anger resursberoenden finns i Definiera ordningen för att distribuera resurser i ARM-mallar.