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 någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
En Microsoft Learn-modul som omfattar resurskopiering finns i Hantera komplexa molndistributioner med hjälp av avancerade ARM-mallfunktioner.
Förutsättningar
För att slutföra den här artikeln behöver du:
- Visual Studio Code med verktygstillägget för Resource Manager. Mer information finns i 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.
Från Visual Studio Code väljer du Arkiv>Ö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å lite grundläggande förståelse för mallen innan du anpassar den.Spara filen genom att välja Spara som-fil>. 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. Använd indexet som namnprefix.copyIndex()
är nollbaserat. Om du vill förskjuta indexvärdet kan du skicka ett värde icopyIndex()
funktionen. Exempel:copyIndex(1)
"name": "[format('{0}storage{1}', copyIndex(), uniqueString(resourceGroup().id))]",
Ta bort parameterdefinitionen
storageAccountName
eftersom den inte längre används.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.
- Från Azure-portalen väljer du Resursgrupp från den vänstra menyn.
- Ange resursgruppens namn i fältet Filtrera efter namn.
- Välj resursgruppens namn. Du kommer att se totalt tre resurser i resursgruppen.
- Välj Ta bort resursgrupp från menyn längst upp.
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.