Wat zijn ARM-sjablonen?What are ARM templates?

Dankzij de overstap naar de Cloud hebben veel teams flexibele ontwikkelings methoden aangenomen.With the move to the cloud, many teams have adopted agile development methods. Deze teams lopen snel uit.These teams iterate quickly. Ze moeten herhaaldelijk hun oplossingen implementeren in de Cloud en weten dat hun infra structuur een betrouw bare status heeft.They need to repeatedly deploy their solutions to the cloud, and know their infrastructure is in a reliable state. Omdat de infra structuur is opgenomen in het iteratieve proces, is de verdeling tussen bewerkingen en ontwikkeling verdwenen.As infrastructure has become part of the iterative process, the division between operations and development has disappeared. Teams moeten de infra structuur en toepassings code beheren via een uniform proces.Teams need to manage infrastructure and application code through a unified process.

Om aan deze uitdagingen te voldoen, kunt u implementaties automatiseren en de infra structuur als code gebruiken.To meet these challenges, you can automate deployments and use the practice of infrastructure as code. In code definieert u de infra structuur die moet worden geïmplementeerd.In code, you define the infrastructure that needs to be deployed. De code van de infra structuur wordt onderdeel van het project.The infrastructure code becomes part of your project. Net als bij de toepassings code slaat u de infrastructuur code op in een bron opslagplaats en maakt u er een versie van.Just like application code, you store the infrastructure code in a source repository and version it. Een van uw team leden kan de code uitvoeren en vergelijk bare omgevingen implementeren.Any one on your team can run the code and deploy similar environments.

Gebruik Azure Resource Manager (ARM)-Sjablonen om de infra structuur te implementeren als code voor uw Azure-oplossingen.To implement infrastructure as code for your Azure solutions, use Azure Resource Manager (ARM) templates. De sjabloon is een JavaScript Object Notation-bestand (JSON) waarmee de infra structuur en configuratie voor uw project worden gedefinieerd.The template is a JavaScript Object Notation (JSON) file that defines the infrastructure and configuration for your project. De sjabloon maakt gebruik van declaratieve syntaxis, waarmee u kunt aangeven wat u wilt implementeren zonder dat u de volg orde van de programmeer opdrachten hoeft te schrijven om deze te maken.The template uses declarative syntax, which lets you state what you intend to deploy without having to write the sequence of programming commands to create it. In de sjabloon geeft u de resources op die u wilt implementeren en de eigenschappen voor deze resources.In the template, you specify the resources to deploy and the properties for those resources.

Waarom kiest u ARM-sjablonen?Why choose ARM templates?

Als u probeert te kiezen tussen het gebruik van ARM-sjablonen en een van de andere infra structuur als code Services, moet u rekening houden met de volgende voor delen van het gebruik van sjablonen:If you're trying to decide between using ARM templates and one of the other infrastructure as code services, consider the following advantages of using templates:

  • Declaratieve syntaxis: arm-sjablonen bieden u de mogelijkheid om een volledige Azure-infra structuur declaratief te maken en te implementeren.Declarative syntax: ARM templates allow you to create and deploy an entire Azure infrastructure declaratively. U kunt bijvoorbeeld niet alleen virtuele machines implementeren, maar ook de netwerk infrastructuur, opslag systemen en andere bronnen die u nodig hebt.For example, you can deploy not only virtual machines, but also the network infrastructure, storage systems and any other resources you may need.

  • Herhaal bare resultaten: implementeer herhaaldelijk uw infra structuur in de ontwikkelings levenscyclus en laat de betrouw baarheid van uw resources op een consistente manier worden geïmplementeerd.Repeatable results: Repeatedly deploy your infrastructure throughout the development lifecycle and have confidence your resources are deployed in a consistent manner. Sjablonen zijn idempotent. Dit betekent dat u dezelfde sjabloon meerdere keren kunt implementeren en dezelfde resource typen in dezelfde status krijgt.Templates are idempotent, which means you can deploy the same template many times and get the same resource types in the same state. U kunt één sjabloon ontwikkelen die de gewenste status aangeeft, in plaats van het ontwikkelen van veel afzonderlijke sjablonen om updates te vertegenwoordigen.You can develop one template that represents the desired state, rather than developing lots of separate templates to represent updates.

  • Indeling : uhoeft zich geen zorgen te maken over de complexiteit van het ordenen van bewerkingen.Orchestration: You don't have to worry about the complexities of ordering operations. Resource Manager coördineert de implementatie van onderling afhankelijke resources, zodat deze in de juiste volg orde worden gemaakt.Resource Manager orchestrates the deployment of interdependent resources so they're created in the correct order. Als dat mogelijk is, implementeert Resource Manager bronnen parallel, zodat uw implementaties sneller worden uitgevoerd dan seriële implementaties.When possible, Resource Manager deploys resources in parallel so your deployments finish faster than serial deployments. U implementeert de sjabloon via één opdracht, in plaats van via meerdere verplichte opdrachten.You deploy the template through one command, rather than through multiple imperative commands.

    Vergelijking Sjabloonimlementatie

  • Modulaire bestanden: u kunt uw sjablonen opdelen in kleinere, herbruikbare onderdelen en deze samen voegen tijdens de implementatie.Modular files: You can break your templates into smaller, reusable components and link them together at deployment time. U kunt ook een sjabloon in andere sjablonen nesten.You can also nest one template inside another templates.

  • Een Azure-resource maken: u kunt direct nieuwe Azure-Services en-functies in sjablonen gebruiken.Create any Azure resource: You can immediately use new Azure services and features in templates. Zodra een resource provider nieuwe resources introduceert, kunt u deze resources implementeren via sjablonen.As soon as a resource provider introduces new resources, you can deploy those resources through templates. U hoeft niet te wachten totdat de hulpprogram ma's of modules zijn bijgewerkt voordat u de nieuwe services gebruikt.You don't have to wait for tools or modules to be updated before using the new services.

  • Uitbreid baarheid: met implementatie scriptskunt u Power shell-of bash-scripts toevoegen aan uw sjablonen.Extensibility: With deployment scripts, you can add PowerShell or Bash scripts to your templates. De implementatie scripts verg Roten de mogelijkheid om resources in te stellen tijdens de implementatie.The deployment scripts extend your ability to set up resources during deployment. Een script kan worden opgenomen in de sjabloon of worden opgeslagen in een externe bron en waarnaar wordt verwezen in de sjabloon.A script can be included in the template, or stored in an external source and referenced in the template. Implementatie scripts bieden u de mogelijkheid om de installatie van uw end-to-end-omgeving in één ARM-sjabloon te volt ooien.Deployment scripts give you the ability to complete your end-to-end environment setup in a single ARM template.

  • Testen: u kunt ervoor zorgen dat uw sjabloon aanbevolen richt lijnen volgt door deze te testen met de arm-sjabloon Tool Kit (arm-ttk).Testing: You can make sure your template follows recommended guidelines by testing it with the ARM template tool kit (arm-ttk). Deze test kit is een Power shell-script dat u kunt downloaden van github.This test kit is a PowerShell script that you can download from GitHub. Met de Tool Kit kunt u gemakkelijker expertise ontwikkelen met de taal van de sjabloon.The tool kit makes it easier for you to develop expertise using the template language.

  • Voor beeld van wijzigingen: u kunt de What-if-bewerking gebruiken om een voor beeld te krijgen van wijzigingen voordat u de sjabloon implementeert.Preview changes: You can use the what-if operation to get a preview of changes before deploying the template. Met What-if kunt u zien welke resources worden gemaakt, bijgewerkt of verwijderd, en welke resource-eigenschappen worden gewijzigd.With what-if, you see which resources will be created, updated, or deleted, and any resource properties that will change. De bewerking What-if controleert de huidige status van uw omgeving en elimineert de nood zaak om de status te beheren.The what-if operation checks the current state of your environment and eliminates the need to manage state.

  • Ingebouwde validatie: uw sjabloon wordt pas geïmplementeerd nadat de validatie is door gegeven.Built-in validation: Your template is deployed only after passing validation. Resource Manager controleert de sjabloon voordat de implementatie wordt gestart om te controleren of de implementatie slaagt.Resource Manager checks the template before starting the deployment to make sure the deployment will succeed. Uw implementatie is minder waarschijnlijk in een halve status.Your deployment is less likely to stop in a half-finished state.

  • Bijgehouden implementaties: In het Azure Portal kunt u de implementatie geschiedenis bekijken en informatie ophalen over de sjabloon implementatie.Tracked deployments: In the Azure portal, you can review the deployment history and get information about the template deployment. U kunt de geïmplementeerde sjabloon zien, de parameter waarden die zijn door gegeven en uitvoer waarden.You can see the template that was deployed, the parameter values passed in, and any output values. Andere infra structuur als code services worden niet bijgehouden via de portal.Other infrastructure as code services aren't tracked through the portal.

    Implementatie geschiedenis

  • Beleid als code: Azure Policy is een beleid als code raamwerk waarmee governance wordt geautomatiseerd.Policy as code: Azure Policy is a policy as code framework to automate governance. Als u Azure-beleid gebruikt, wordt het door voeren van beleid uitgevoerd op niet-compatibele resources wanneer deze via sjablonen worden geïmplementeerd.If you're using Azure policies, policy remediation is done on non-compliant resources when deployed through templates.

  • Implementatie blauw drukken: u kunt gebruikmaken van blauw drukken van micro soft om te voldoen aan de normen van regelgeving en naleving.Deployment Blueprints: You can take advantage of Blueprints provided by Microsoft to meet regulatory and compliance standards. Deze blauw drukken bevatten vooraf gemaakte sjablonen voor verschillende architecturen.These blueprints include pre-built templates for various architectures.

  • CI/cd-integratie: u kunt sjablonen integreren in de hulpprogram ma's voor continue integratie en continue implementatie (CI/cd), waarmee u uw release pijplijnen kunt automatiseren voor snelle en betrouw bare updates van toepassingen en infra structuur.CI/CD integration: You can integrate templates into your continuous integration and continuous deployment (CI/CD) tools, which can automate your release pipelines for fast and reliable application and infrastructure updates. Met Azure DevOps en Resource Manager-sjabloon taak kunt u Azure-pijp lijnen gebruiken om voortdurend ARM-sjabloon projecten te bouwen en implementeren.By using Azure DevOps and Resource Manager template task, you can use Azure Pipelines to continuously build and deploy ARM template projects. Voor meer informatie, Zie VS project met pijp lijnen en zelf studie: doorlopende integratie van Azure Resource Manager sjablonen met Azure-pijp lijnen.To learn more, see VS project with pipelines and Tutorial: Continuous integration of Azure Resource Manager templates with Azure Pipelines.

  • Exporteer bare code: u kunt een sjabloon voor een bestaande resource groep ophalen door de huidige status van de resource groep te exporteren of door de sjabloon die wordt gebruikt voor een bepaalde implementatie weer te geven.Exportable code: You can get a template for an existing resource group by either exporting the current state of the resource group, or viewing the template used for a particular deployment. Raadplegen van de geëxporteerde sjabloon is een handige manier om de syntaxis van de sjabloon te leren kennen.Viewing the exported template is a helpful way to learn about the template syntax.

  • Hulp middelen voor ontwerpen: u kunt sjablonen ontwerpen met Visual Studio code en de extensie van het sjabloon programma.Authoring tools: You can author templates with Visual Studio Code and the template tool extension. U krijgt IntelliSense, syntaxis markering, in line Help en veel andere taal functies.You get intellisense, syntax highlighting, in-line help, and many other language functions. Naast Visual Studio code kunt u ook Visual Studiogebruiken.In addition to Visual Studio code, you can also use Visual Studio.

SjabloonbestandTemplate file

Binnen uw sjabloon kunt u sjabloon expressies schrijven waarmee de mogelijkheden van JSON worden uitgebreid.Within your template, you can write template expressions that extend the capabilities of JSON. Deze expressies maken gebruik van de functies van Resource Manager.These expressions make use of the functions provided by Resource Manager.

De sjabloon heeft de volgende secties:The template has the following sections:

  • Para meters : Geef waarden op tijdens de implementatie waarmee dezelfde sjabloon kan worden gebruikt voor verschillende omgevingen.Parameters - Provide values during deployment that allow the same template to be used with different environments.

  • Variabelen : Definieer waarden die opnieuw worden gebruikt in uw sjablonen.Variables - Define values that are reused in your templates. Ze kunnen worden samengesteld op basis van parameter waarden.They can be constructed from parameter values.

  • Door de gebruiker gedefinieerde functies : Maak aangepaste functies waarmee uw sjabloon wordt vereenvoudigd.User-defined functions - Create customized functions that simplify your template.

  • Resources : Geef de resources op die u wilt implementeren.Resources - Specify the resources to deploy.

  • Outputs : retourneert waarden van de geïmplementeerde resources.Outputs - Return values from the deployed resources.

Sjabloonimlementatie procesTemplate deployment process

Wanneer u een sjabloon implementeert, zet Resource Manager de sjabloon om in REST API bewerkingen.When you deploy a template, Resource Manager converts the template into REST API operations. Bijvoorbeeld wanneer Resource Manager een sjabloon ontvangt met de volgende resourcedefinitie:For example, when Resource Manager receives a template with the following resource definition:

"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "apiVersion": "2016-01-01",
    "name": "mystorageaccount",
    "location": "westus",
    "sku": {
      "name": "Standard_LRS"
    },
    "kind": "Storage",
    "properties": {}
  }
]

De definitie wordt geconverteerd naar de volgende REST API-bewerking, die wordt verzonden naar de Microsoft.Storage-resourceprovider:It converts the definition to the following REST API operation, which is sent to the Microsoft.Storage resource provider:

PUT
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/mystorageaccount?api-version=2016-01-01
REQUEST BODY
{
  "location": "westus",
  "sku": {
    "name": "Standard_LRS"
  },
  "kind": "Storage",
  "properties": {}
}

Sjabloon ontwerpTemplate design

U kunt helemaal zelf bepalen hoe u sjablonen en resourcegroepen definieert en hoe u de oplossing beheert.How you define templates and resource groups is entirely up to you and how you want to manage your solution. U kunt de toepassing met drie lagen bijvoorbeeld met een enkele sjabloon implementeren in een enkele resourcegroep.For example, you can deploy your three tier application through a single template to a single resource group.

sjabloon met drie lagen

Maar u hoeft uw volledige infrastructuur niet te definiëren in één sjabloon.But, you don't have to define your entire infrastructure in a single template. Vaak is het handiger om uw implementatievereisten te verdelen over een aantal gerichte sjablonen met een specifiek doel.Often, it makes sense to divide your deployment requirements into a set of targeted, purpose-specific templates. U kunt deze sjablonen eenvoudig opnieuw gebruiken voor verschillende oplossingen.You can easily reuse these templates for different solutions. Voor het implementeren van een bepaalde oplossing kunt u een basissjabloon gebruiken die is gekoppeld aan alle vereiste sjablonen.To deploy a particular solution, you create a master template that links all the required templates. In de volgende afbeelding ziet u hoe u een oplossing met drie lagen kunt implementeren via een bovenliggende sjabloon die drie geneste sjablonen bevat.The following image shows how to deploy a three tier solution through a parent template that includes three nested templates.

sjabloon met geneste lagen

De lagen hebben afzonderlijke levenscycli, zodat u ze kunt toepassen op verschillende resourcegroepen.If you envision your tiers having separate lifecycles, you can deploy your three tiers to separate resource groups. Opmerking: de resources kunnen nog steeds worden gekoppeld aan resources in andere resourcegroepen.Notice the resources can still be linked to resources in other resource groups.

sjabloon met lagen

Zie Using linked templates with Azure Resource Manager (Gekoppelde sjablonen gebruiken met Azure Resource Manager) voor meer informatie over geneste sjablonen.For information about nested templates, see Using linked templates with Azure Resource Manager.

Volgende stappenNext steps