Självstudie: Skapa flera resursinstanser med ARM-mallar
Lär dig hur du itererar i din Azure Resource Manager-mall (ARM-mall) för att skapa flera instanser av en Azure-resurs. I den här självstudien ändrar du en mall för att skapa tre lagringskontoinstanser.
Den här självstudien omfattar följande uppgifter:
- Öppna en snabbstartsmall
- Redigera mallen
- Distribuera mallen
Om du inte har en Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
En Learn-modul som omfattar resurskopiering finns i Hantera komplexa molndistributioner med hjälp av avancerade ARM-mallfunktioner.
Förutsättningar
För att kunna följa stegen i den här artikeln behöver du:
- Visual Studio Code med Resource Manager Tools-tillägget. Se Snabbstart: Skapa ARM-mallar med Visual Studio Code.
Öppna en snabbstartsmall
Azure Snabbstartsmallar är en lagringsplats för ARM-mallar. I stället för att skapa en mall från början får du en exempelmall som du anpassar. Den mall som används i den här snabbstarten kallas Create a standard storage account (Skapa ett standardlagringskonto). Mallen definierar en Azure Storage-kontoresurs.
I Visual Studio Code väljer du Öppna fil>.
I Filnamn klistrar du in följande URL:
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json
Välj Öppna för att öppna filen.
Det finns en
Microsoft.Storage/storageAccounts
resurs som definierats i mallen. Jämför mallen med mallreferensen. Det är bra att få grundläggande förståelse för mallen innan du anpassar den.VäljSpara somfil> för att spara filen som azuredeploy.json på den lokala datorn.
Redigera mallen
Den befintliga mallen skapar ett lagringskonto. Du kan anpassa mallen för att skapa tre lagringskonton.
Från Visual Studio Code gör du följande fyra ändringar:
Lägg till elementet
copy
i resursdefinitionen för lagringskontot. I -elementetcopy
anger du antalet iterationer och en variabel för den här loopen. Värdet för antal måste vara ett positivt heltal och får inte överskrida 800."copy": { "name": "storageCopy", "count": 3 },
Funktionen
copyIndex()
returnerar den aktuella iterationen i loopen. Du kan använda indexet som namnprefix.copyIndex()
är nollbaserat. Om du vill förskjuta indexvärdet kan du skicka ett värde icopyIndex()
funktionen. Till exempelcopyIndex(1)
."name": "[format('{0}storage{1}', copyIndex(), uniqueString(resourceGroup().id))]",
Ta bort parameterdefinitionen
storageAccountName
eftersom den inte används längre.Ta bort elementet
outputs
. Det behövs inte längre.Ta bort elementet
metadata
.
Den färdiga mallen ser ut så här:
{
"$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": [
"Premium_LRS",
"Premium_ZRS",
"Standard_GRS",
"Standard_GZRS",
"Standard_LRS",
"Standard_RAGRS",
"Standard_RAGZRS",
"Standard_ZRS"
],
"metadata": {
"description": "Storage Account type"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for the storage account."
}
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-06-01",
"name": "[format('{0}storage{1}', copyIndex(), uniqueString(resourceGroup().id))]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageAccountType')]"
},
"kind": "StorageV2",
"copy": {
"name": "storageCopy",
"count": 3
},
"properties": {}
}
]
}
Spara ändringarna.
Mer information om hur du skapar flera instanser finns i Resurs iteration i ARM-mallar
Distribuera mallen
Logga in på Azure Cloud Shell
Välj önskad miljö genom att välja Antingen PowerShell eller Bash (för CLI) i det övre vänstra hörnet. Du måste starta om gränssnittet när du byter.
Välj Ladda upp/ned filer och välj sedan Ladda upp. Se föregående skärmbild. Välj den fil som du sparade i föregående avsnitt. När du har laddat upp filen kan du använda
ls
kommandot ochcat
kommandot för att kontrollera att filen har laddats upp.Kör följande kommandon från Cloud Shell. Välj fliken så att du ser PowerShell-koden eller CLI-koden.
echo "Enter a project name that is used to generate resource group name:" && read projectName && echo "Enter the location (i.e. centralus):" && read location && resourceGroupName="${projectName}rg" && az group create --name $resourceGroupName --location "$location" && az deployment group create --resource-group $resourceGroupName --template-file "$HOME/azuredeploy.json"
Efter en lyckad malldistribution kan du visa de tre lagringskonton som skapats i den angivna resursgruppen. Jämför lagringskontonamn med namndefinitionen i mallen.
echo "Enter a project name that is used to generate resource group name:" &&
read projectName &&
resourceGroupName="${projectName}rg" &&
az storage account list --resource-group $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Rensa resurser
När Azure-resurserna inte längre behövs rensar du de resurser som du har distribuerat genom att ta bort resursgruppen.
- I Azure Portal väljer du Resursgrupp på den vänstra menyn.
- Ange resursgruppens namn i fältet Filtrera efter namn.
- Välj resursgruppens namn. Du ska se totalt tre resurser i resursgruppen.
- Välj Ta bort resursgrupp på den översta menyn.
Nästa steg
I de här självstudierna lärde du dig att skapa flera instanser av ett lagringskonto. I nästa självstudie utvecklar du en mall med flera resurser och flera resurstyper. Några av resurserna har beroende resurser.