Zelfstudie: ARM-sjablonen met afhankelijke resources maken
Leer hoe u een ARM-sjabloon (Azure Resource Manager) maakt voor het implementeren van meerdere resources en de implementatievolgorde configureert. Nadat u de sjabloon hebt gemaakt, implementeert u de sjabloon met behulp van Azure Cloud Shell vanuit de Azure Portal.
In deze zelfstudie hebt u een opslagaccount, een virtuele machine, een virtueel netwerk en enkele andere afhankelijke resources gemaakt. Sommige resources kunnen niet worden geïmplementeerd totdat er een andere resource bestaat. U kunt bijvoorbeeld niet een virtuele machine maken totdat het bijbehorende opslagaccount en de bijbehorende netwerkinterface bestaan. U definieert deze relatie door een resource afhankelijk van de andere resources te maken. Resource Manager evalueert de afhankelijkheden tussen resources en implementeert ze in de volgorde van afhankelijkheid. Als resources niet van elkaar afhankelijk zijn, worden deze door Resource Manager parallel geïmplementeerd. Zie Define the order for deploying resources in ARM templates (De volgorde voor het implementeren van resources definiëren in ARM-sjablonen) voor meer informatie.
Deze zelfstudie bestaat uit de volgende taken:
- Een snelstartsjabloon openen
- De sjabloon verkennen
- 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 resourceafhankelijkheden 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.
Gebruik een gegenereerd wachtwoord voor het beheerdersaccount van de virtuele machine om de beveiliging te verhogen. U kunt Azure Cloud Shell gebruiken om de volgende opdracht uit te voeren in PowerShell of Bash:
openssl rand -base64 32
Voer uit
man openssl rand
om de handmatige pagina te openen voor meer informatie.Azure Key Vault is ontworpen om cryptografische sleutels en andere geheimen te beveiligen. Zie Zelfstudie: Azure Key Vault integreren in ARM-sjabloonimplementatie. We raden u ook aan om uw wachtwoord elke drie maanden te wijzigen.
Een snelstartsjabloon openen
Snelstartsjablonen voor Azure 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 sjabloon die in deze zelfstudie wordt gebruikt, heet Deploy a simple Windows VM (Een eenvoudige Windows-VM implementeren).
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.compute/vm-simple-windows/azuredeploy.json
Selecteer Openen om het bestand te openen.
Selecteer Bestand>Opslaan als om het bestand op uw lokale computer op te slaan als azuredeploy.json.
De sjabloon verkennen
Wanneer u de sjabloon in deze sectie verkent, probeert u om deze vragen te beantwoorden:
- Hoeveel Azure-resources zijn er in deze sjabloon gedefinieerd?
- Een van de resources is een Azure-opslagaccount. Ziet de definitie eruit zoals de definitie die is gebruikt in de laatste zelfstudie?
- Kunt u de sjabloonverwijzingen vinden voor de resources die zijn gedefinieerd in deze sjabloon?
- Kunt u de afhankelijkheden van de resources vinden?
Vouw in Visual Studio Code de elementen samen totdat u alleen de elementen op het eerste niveau en tweede niveau binnen
resources
ziet:Er worden zes resources gedefinieerd met de sjabloon:
Microsoft.Compute/virtualMachines.
Het is een goed idee om de sjabloonreferentie door te nemen voordat u een sjabloon aanpast.
Vouw de eerste resource uit. Dit is een opslagaccount. Vergelijk de resourcedefinitie met de sjabloonverwijzing.
Vouw de tweede resource uit. Het resourcetype is
Microsoft.Network/publicIPAddresses
. Vergelijk de resourcedefinitie met de sjabloonverwijzing.Vouw de derde resource uit. Het resourcetype is
Microsoft.Network/networkSecurityGroups
. Vergelijk de resourcedefinitie met de sjabloonverwijzing.Vouw de vierde resource uit. Het resourcetype is
Microsoft.Network/virtualNetworks
:Met het element
dependsOn
kunt u één resource definiëren als afhankelijk van een of meer resources. Deze resource is afhankelijk van één andere resource:Microsoft.Network/networkSecurityGroups
Vouw de vijfde resource uit. Het resourcetype is
Microsoft.Network/networkInterfaces
. De resource is afhankelijk van twee andere resources:Microsoft.Network/publicIPAddresses
Microsoft.Network/virtualNetworks
Vouw de zesde resource uit. Deze resource is een virtuele machine. Deze is afhankelijk van twee andere resources:
Microsoft.Storage/storageAccounts
Microsoft.Network/networkInterfaces
Het volgende diagram illustreert de resources en de afhankelijkheidsgegevens voor deze sjabloon:
Door de afhankelijkheden op te geven, kan Resource Manager de oplossing efficiënt implementeren. Het implementeert tegelijk het opslagaccount, een openbaar IP-adres en een virtueel netwerk omdat ze geen afhankelijkheden hebben. Nadat het openbare IP-adres en het virtuele netwerk zijn geïmplementeerd, wordt de netwerkinterface gemaakt. Wanneer alle andere resources zijn geïmplementeerd, implementeert Resource Manager de virtuele machine.
De sjabloon implementeren
Meld u aan bij 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 eerder 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.Gebruik het volgende PowerShell-script om de sjabloon te implementeren.
echo "Enter a project name that is used to generate resource group name:" && read projectName && echo "Enter the location (i.e. centralus):" && read location && echo "Enter the virtual machine admin username:" && read adminUsername && echo "Enter the DNS label prefix:" && read dnsLabelPrefix && resourceGroupName="${projectName}rg" && az group create --name $resourceGroupName --location $location && az deployment group create --resource-group $resourceGroupName --template-file "$HOME/azuredeploy.json" --parameters adminUsername=$adminUsername dnsLabelPrefix=$dnsLabelPrefix
RDP voor de virtuele machine om te controleren of de virtuele machine is gemaakt.
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 zes resources in de resourcegroep.
- Selecteer Resourcegroep verwijderen in het bovenste menu.
Volgende stappen
In deze zelfstudie hebt u een sjabloon ontwikkeld en geïmplementeerd voor het maken van een virtuele machine, een virtueel netwerk en de afhankelijke resources. Zie voor meer informatie over het gebruik van implementatiescripts voor het uitvoeren van pre-/postimplementatiebewerkingen: