Zelfstudie: Meerdere resource-instanties maken met ARM-sjablonen
Leer hoe u een ARM-sjabloon (Azure Resource Manager) herhaaldelijk gebruikt om meerdere instanties van een Azure-resource te maken. In deze zelfstudie wijzigt u een sjabloon om drie instanties van het opslagaccount te maken.
Deze zelfstudie bestaat uit de volgende taken:
- Een snelstartsjabloon openen
- De sjabloon bewerken
- De sjabloon implementeren
Als u geen abonnement op Azure hebt, maakt u een gratis account voordat u begint.
Zie Complexe cloudimplementaties beheren met behulp van geavanceerde ARM-sjabloonfuncties voor een Learn-module die het kopiëren van resources behandelt.
Vereisten
Als u dit artikel wilt voltooien, hebt u het volgende nodig:
- Visual Studio Code met de extensie Resource Manager Tools. Zie Quickstart: ARM-sjablonen maken met Visual Studio Code.
Een snelstartsjabloon openen
Azure-quickstart-sjablonen is een opslagplaats voor ARM-sjablonen. In plaats van een sjabloon helemaal vanaf de basis te maken, kunt u een voorbeeldsjabloon zoeken en aanpassen. De in deze snelstart gebruikte sjabloon wordt Create a standard storage account (Standaardopslagaccount maken) genoemd. De sjabloon definieert een Azure Storage-accountresource.
Selecteer in Visual Studio Code Bestand>Bestand openen.
Plak de volgende URL in Bestandsnaam:
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.storage/storage-account-create/azuredeploy.json
Selecteer Openen om het bestand te openen.
Er is een
Microsoft.Storage/storageAccounts
resource gedefinieerd in de sjabloon. Vergelijk de sjabloon met de sjabloonverwijzing. Het is handig om enige basiskennis te hebben van de sjabloon voordat u deze gaat aanpassen.Selecteer Bestand>Opslaan als om het bestand op uw lokale computer op te slaan als azuredeploy.json.
De sjabloon bewerken
Met de bestaande sjabloon wordt één opslagaccount gemaakt. U past de sjabloon aan om drie opslagaccounts te maken.
Breng vanuit Visual Studio Code de volgende vier wijzigingen aan:
Voeg een
copy
-element toe aan de resourcedefinitie van het opslagaccount. In hetcopy
-element geeft u het aantal iteraties en een variabele voor deze lus op. Het aantal iteraties moet een positief geheel getal zijn en mag niet hoger zijn dan 800."copy": { "name": "storageCopy", "count": 3 },
De functie
copyIndex()
retourneert de huidige iteratie in de lus. U gebruikt de index als het voorvoegsel van de naam.copyIndex()
is gebaseerd op nul. Als u de indexwaarde wilt verschuiven, kunt u een waarde doorgeven in de functiecopyIndex()
. BijvoorbeeldcopyIndex(1)
."name": "[format('{0}storage{1}', copyIndex(), uniqueString(resourceGroup().id))]",
Verwijder de
storageAccountName
parameterdefinitie, omdat deze niet meer wordt gebruikt.Verwijder het element
outputs
. Dit wordt niet meer gebruikt.Verwijder het element
metadata
.
De voltooide sjabloon ziet er als volgt uit:
{
"$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": {}
}
]
}
Sla de wijzigingen op.
Raadpleeg Resourceherhaling in ARM-sjablonen voor meer informatie over het maken van meerdere exemplaren
De sjabloon implementeren
Meld u aan bij Azure Cloud Shell
Kies uw favoriete omgeving door in de linkerbovenhoek PowerShell of Bash (voor CLI) te selecteren. U moet de shell opnieuw starten wanneer u overschakelt.
Selecteer Upload/download files en selecteer Uploaden. Zie de vorige schermafbeelding. Selecteer het bestand dat u in de vorige sectie hebt opgeslagen. Nadat het bestand is geüpload, kunt u de opdracht
ls
en de opdrachtcat
gebruiken om te controleren of het bestand is geüpload.Voer vanuit Cloud Shell de volgende opdrachten uit. Selecteer het tabblad om de PowerShell-code of de CLI-code weer te geven.
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"
Na een geslaagde sjabloonimplementatie kunt u de drie opslagaccounts weergeven die in de opgegeven resourcegroep zijn gemaakt. Vergelijk de namen van de opslagaccounts met de naamdefinitie in de sjabloon.
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 ..."
Resources opschonen
Schoon de geïmplementeerd Azure-resources, wanneer u deze niet meer nodig hebt, op door de resourcegroep te verwijderen.
- Selecteer Resourcegroep in het linkermenu van Azure Portal.
- Voer de naam van de resourcegroep in het veld Filter by name in.
- Selecteer de naam van de resourcegroep. U ziet in totaal drie resources in de resourcegroep.
- Selecteer Resourcegroep verwijderen in het bovenste menu.
Volgende stappen
In deze zelfstudie hebt u geleerd hoe u meerdere instanties van opslagaccounts maakt. In de volgende zelfstudie ontwikkelt u een sjabloon met meerdere resources en meerdere resourcetypen. Sommige resources hebben afhankelijke resources.