Wat zijn ARM-sjablonen?
Met de overstap naar de cloud hebben veel teams flexibele ontwikkelmethoden gebruikt. Deze teams kunnen snel werken. Ze moeten hun oplossingen herhaaldelijk implementeren in de cloud en weten dat hun infrastructuur een betrouwbare status heeft. Naarmate de infrastructuur deel uitmaakt van het iteratieve proces, is de deling tussen bewerkingen en ontwikkeling verdwenen. Teams moet infrastructuur- en toepassingscode beheren via een uniform proces.
Om deze uitdagingen aan te pakken, kunt u implementaties automatiseren en de methode Infrastructuur als code (IaC) gebruiken. In code definieert u de infrastructuur die moet worden geïmplementeerd. De infrastructuurcode wordt onderdeel van uw project. Net als bij toepassingscode kunt u de infrastructuurcode opslaan in een bronopslagplaats en versie ervan gebruiken. Iedereen in uw team kan de code uitvoeren en vergelijkbare omgevingen implementeren.
Als u infrastructuur als code wilt implementeren voor uw Azure-oplossingen, gebruikt u Azure Resource Manager -sjablonen (ARM-sjablonen). De sjabloon is een JavaScript Object Notation (JSON)-bestand dat de infrastructuur en configuratie voor uw project definieert. De sjabloon gebruikt een declaratieve syntaxis. Dit is een syntaxis waarmee u kunt aangeven wat u wilt implementeren zonder hiervoor de nodige reeks programmeeropdrachten te hoeven maken. In de sjabloon geeft u de resources op die u wilt implementeren en de eigenschappen voor deze resources.
We hebben een nieuwe taal met de naam Bicep geïntroduceerd die wordt gebruikt voor het ontwikkelen van ARM-sjabloon-JSON. Bicep-bestanden en JSON-sjablonen bieden dezelfde mogelijkheden. U kunt sjablonen tussen de twee talen converteren. Bicep biedt een syntaxis die eenvoudiger te gebruiken is voor het maken van sjablonen. Zie Wat is Bicep? voor meer informatie.
Zie de volgende video voor meer informatie over hoe u aan de slag kunt met ARM-sjablonen.
Waarom kiezen voor ARM-sjablonen?
Als u wilt kiezen tussen het gebruik van ARM-sjablonen en een van de andere infrastructuur als codeservices, moet u rekening houden met de volgende voordelen van het gebruik van sjablonen:
Declaratieve syntaxis: met ARM-sjablonen kunt u declaratief een volledige Azure-infrastructuur maken en implementeren. U kunt bijvoorbeeld niet alleen virtuele machines implementeren, maar ook de netwerkinfrastructuur, opslagsystemen en andere resources die u nodig hebt.
Herhaalbare resultaten: implementeer uw infrastructuur herhaaldelijk gedurende de ontwikkelingslevenscyclus en heb er vertrouwen in dat uw resources op een consistente manier worden geïmplementeerd. Sjablonen zijn idempotent, wat betekent dat u dezelfde sjabloon meerdere keren kunt implementeren en dezelfde resourcetypen in dezelfde status kunt krijgen. U kunt één sjabloon ontwikkelen die de gewenste status vertegenwoordigt, in plaats van veel afzonderlijke sjablonen te ontwikkelen om updates weer te geven.
Orchestration: u hoeft zich geen zorgen te maken over de complexiteit van het orden van bewerkingen. Resource Manager de implementatie van onderling afhankelijke resources, zodat ze in de juiste volgorde worden gemaakt. Indien mogelijk implementeert Resource Manager parallel, zodat uw implementaties sneller worden uitgevoerd dan seriële implementaties. U implementeert de sjabloon met één opdracht in plaats van meerdere imperatieve opdrachten.

Modulaire bestanden: u kunt uw sjablonen opdelen in kleinere, herbruikbare onderdelen en deze tijdens de implementatie aan elkaar koppelen. U kunt ook één sjabloon in een andere sjabloon nesten.
Een Azure-resource maken: u kunt onmiddellijk nieuwe Azure-services en -functies in sjablonen gebruiken. Zodra een resourceprovider nieuwe resources introduceert, kunt u deze resources implementeren via sjablonen. U hoeft niet te wachten tot hulpprogramma's of modules zijn bijgewerkt voordat u de nieuwe services gebruikt.
Extensibility: met implementatiescriptskunt u PowerShell- of Bash-scripts toevoegen aan uw sjablonen. De implementatiescripts breiden uw mogelijkheid uit om resources in te stellen tijdens de implementatie. Een script kan worden opgenomen in de sjabloon of worden opgeslagen in een externe bron en waarnaar wordt verwezen in de sjabloon. Implementatiescripts bieden u de mogelijkheid om uw end-to-end-omgevingsinstallatie in één ARM-sjabloon te voltooien.
Testen: u kunt ervoor zorgen dat uw sjabloon de aanbevolen richtlijnen volgt door deze te testen met de ARM-sjabloontoolkit (arm-ttk). Deze testkit is een PowerShell-script dat u kunt downloaden van GitHub. Met de toolkit kunt u gemakkelijker expertise ontwikkelen met behulp van de sjabloontaal.
Voorbeeld van wijzigingen: u kunt de what-if-bewerking gebruiken om een voorbeeld van wijzigingen op te halen voordat u de sjabloon implementeert. Met what-if ziet u welke resources worden gemaakt, bijgewerkt of verwijderd, en welke resource-eigenschappen worden gewijzigd. De what-if-bewerking controleert de huidige status van uw omgeving en elimineert de noodzaak om de status te beheren.
Ingebouwde validatie: uw sjabloon wordt pas geïmplementeerd nadat de validatie is uitgevoerd. Resource Manager controleert de sjabloon voordat de implementatie wordt uitgevoerd om te controleren of de implementatie slaagt. De kans is kleiner dat uw implementatie wordt gestopt met de status Half voltooid.
Bijgespoorde implementaties: in Azure Portal kunt u de implementatiegeschiedenis bekijken en informatie over de sjabloonimplementatie verkrijgen. U ziet de sjabloon die is geïmplementeerd, de parameterwaarden die zijn doorgegeven en eventuele uitvoerwaarden. Andere infrastructuur als codeservices worden niet bij te houden via de portal.

Beleid als code: Azure Policy is een beleid als codekader om governance te automatiseren. Als u Azure-beleid gebruikt, wordt beleids herstellen uitgevoerd op niet-compatibele resources wanneer deze worden geïmplementeerd via sjablonen.
Implementatieblauwdrukken: u kunt profiteren van blauwdrukken van Microsoft om te voldoen aan regelgevings- en nalevingsstandaarden. Deze blauwdrukken bevatten vooraf gebouwde sjablonen voor verschillende architecturen.
CI/CD-integratie: u kunt sjablonen integreren in uw CI/CD-hulpprogramma's (continue integratie en continue implementatie), waarmee u uw release-pijplijnen kunt automatiseren voor snelle en betrouwbare toepassings- en infrastructuurupdates. Met behulp van Azure DevOps en Resource Manager sjabloontaak kunt u Azure Pipelines gebruiken om continu ARM-sjabloonprojecten te bouwen en te implementeren. Zie VS-project met pijplijnen en Zelfstudie: Continue integratie van Azure Resource Manager-sjablonen met Azure Pipelines voor meer informatie.
Exporteerbare code: u kunt een sjabloon voor een bestaande resourcegroep krijgen door de huidige status van de resourcegroep te exporteren of door de sjabloon weer te geven die wordt gebruikt voor een bepaalde implementatie. Raadplegen van de geëxporteerde sjabloon is een handige manier om de syntaxis van de sjabloon te leren kennen.
Ontwerphulpprogramma's: u kunt sjablonen maken met Visual Studio Code en de extensie voor het sjabloonhulpprogramma. U krijgt intellisense, syntaxis markeren, in-line help en veel andere taalfuncties. Naast Visual Studio Code kunt u ook Visual Studio.
Sjabloonbestand
In uw sjabloon kunt u sjabloonexpressies schrijven die de mogelijkheden van JSON uitbreiden. Deze expressies maken gebruik van de functies van Resource Manager.
De sjabloon bevat de volgende secties:
Parameters: geef waarden op tijdens de implementatie, zodat dezelfde sjabloon kan worden gebruikt met verschillende omgevingen.
Variabelen: definieer waarden die opnieuw worden gebruikt in uw sjablonen. Ze kunnen worden samengesteld op basis van parameterwaarden.
Door de gebruiker gedefinieerde functies: maak aangepaste functies die uw sjabloon vereenvoudigen.
Resources: geef de resources op die moeten worden geïmplementeerd.
Outputs: retourneert waarden van de geïmplementeerde resources.
Sjabloonimlementatie proces
Wanneer u een sjabloon implementeert, Resource Manager de sjabloon omgezet in REST API bewerkingen. Bijvoorbeeld wanneer Resource Manager een sjabloon ontvangt met de volgende resourcedefinitie:
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-04-01",
"name": "mystorageaccount",
"location": "westus",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {}
}
]
De definitie wordt geconverteerd naar de volgende REST API-bewerking, die wordt verzonden naar de Microsoft.Storage-resourceprovider:
PUT
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/mystorageaccount?api-version=2019-04-01
REQUEST BODY
{
"location": "westus",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"properties": {}
}
U ziet dat de apiVersion die u in de sjabloon voor de resource hebt ingesteld, wordt gebruikt als de API-versie voor de REST-bewerking. U kunt de sjabloon herhaaldelijk implementeren en vertrouwen dat deze blijft werken. Als u dezelfde API-versie gebruikt, hoeft u zich geen zorgen te maken over belangrijke wijzigingen die in latere versies kunnen worden geïntroduceerd.
Gebruik een van de volgende opties om een sjabloon te implementeren:
Sjabloonontwerp
U kunt helemaal zelf bepalen hoe u sjablonen en resourcegroepen definieert en hoe u de oplossing beheert. U kunt de toepassing met drie lagen bijvoorbeeld met een enkele sjabloon implementeren in een enkele resourcegroep.

Maar u hoeft uw volledige infrastructuur niet te definiëren in één sjabloon. Vaak is het handiger om uw implementatievereisten te verdelen over een aantal gerichte sjablonen met een specifiek doel. U kunt deze sjablonen eenvoudig opnieuw gebruiken voor verschillende oplossingen. Als u een bepaalde oplossing wilt implementeren, maakt u een hoofdsjabloon die alle vereiste sjablonen koppelt. In de volgende afbeelding ziet u hoe u een oplossing met drie lagen kunt implementeren via een bovenliggende sjabloon die drie geneste sjablonen bevat.

De lagen hebben afzonderlijke levenscycli, zodat u ze kunt toepassen op verschillende resourcegroepen. Opmerking: de resources kunnen nog steeds worden gekoppeld aan resources in andere resourcegroepen.

Zie Using linked templates with Azure Resource Manager (Gekoppelde sjablonen gebruiken met Azure Resource Manager) voor meer informatie over geneste sjablonen.
Sjablonen delen
Nadat u de sjabloon hebt gemaakt, wilt u deze mogelijk delen met andere gebruikers in uw organisatie. Met sjabloonspecificaties kunt u een sjabloon opslaan als een resourcetype. U gebruikt op rollen gebaseerd toegangsbeheer om de toegang tot de sjabloonspecificatie te beheren. Gebruikers met leestoegang tot de sjabloonspecificatie kunnen deze implementeren, maar de sjabloon niet wijzigen.
Deze aanpak betekent dat u veilig sjablonen kunt delen die voldoen aan de normen van uw organisatie.
Volgende stappen
- Zie Zelfstudie: Uw eerste ARM-sjabloon maken en implementeren voor een stapsgewijs zelfstudie die u door het proces van het maken van een sjabloon leidt.
- Raadpleeg Resources implementeren en beheren in Azure met behulp van ARM-sjablonen voor meer informatie over ARM-sjablonen via een begeleide set modules.
- Zie Inzicht in de structuur en syntaxis van ARM-sjablonen voor meer informatie over de eigenschappen in sjabloonbestanden.
- Zie Voor meer informatie over het exporteren van sjablonen Quickstart:ARM-sjablonen maken en implementeren met behulp van de Azure Portal .
- Zie Veelgestelde vragen over ARM-sjablonen voor antwoorden op veelgestelde vragen.