Udforsk skabelonstrukturen i Azure Resource Manager

Fuldført

I dette undermodul får du mere at vide om, hvordan du bruger Azure Resource Manager-skabeloner (ARM-skabeloner) til at implementere infrastruktur som kode. Du undersøger afsnittene i en ARM-skabelon, får mere at vide om, hvordan du udruller din ARM-skabelon på Azure, og du kan gå i detaljer om ressourcer afsnit i ARM-skabelonen.

Hvad er infrastruktur som kode?

Infrastruktur som kode giver dig mulighed for via kode at beskrive den infrastruktur, du har brug for til dit program.

Med infrastruktur som kode kan du vedligeholde både programkoden og alt, hvad du skal bruge for at udrulle dit program i et centralt kodelager. Fordelene ved infrastruktur som kode er:

  • Konsistente konfigurationer
  • Forbedret skalerbarhed
  • Hurtigere udrulninger
  • Bedre sporing

I denne video forklares infrastruktur som kode:

Hvad er en ARM-skabelon?

ARM-skabeloner er JSON-filer (JavaScript Object Notation), der definerer infrastrukturen og konfigurationen for din installation. Skabelonen bruger en deklarativ syntaks. Den deklarative syntaks er en metode til at opbygge den struktur og de elementer, der beskriver, hvordan ressourcer ser ud, uden at beskrive kontrolelementflowet. Deklarativ syntaks er forskellig fra essentiel syntaks, som bruger kommandoer, som computeren skal udføre. Essentiel scripting fokuserer på at angive hvert trin i udrulningen af ressourcerne.

ARM-skabeloner giver dig mulighed for at deklarere, hvad du vil installere, uden at skulle skrive sekvensen af programmeringskommandoer for at oprette den. I en ARM-skabelon skal du angive ressourcerne og egenskaberne for disse ressourcer. Azure Resource Manager- bruger derefter disse oplysninger til at udrulle ressourcerne på en organiseret og ensartet måde.

Fordele ved at bruge ARM-skabeloner

ARM-skabeloner giver dig mulighed for at automatisere udrulninger og bruge praksis for infrastruktur som kode (IaC). Skabelonkoden bliver en del af infrastruktur- og udviklingsprojekterne. På samme måde som programkoden kan du gemme IaC-filerne i et kildelager og versionere dem.

ARM-skabeloner er idempotent, hvilket betyder, at du kan installere den samme skabelon mange gange og få de samme ressourcetyper i samme tilstand.

Resource Manager orkestrerer udrulningen af ressourcerne, så de oprettes i den korrekte rækkefølge. Når det er muligt, oprettes ressourcer parallelt, så ARM-skabeloninstallationer afsluttes hurtigere end scriptinstallationer.

diagram, der viser en tilknytning af skabelonbehandlingsproceduren. Der er kun ét kald til at behandle en skabelon i modsætning til flere kald til behandling af scripts.

Resource Manager har også indbygget validering. Den kontrollerer skabelonen, før installationen startes, for at sikre, at installationen lykkes.

Hvis dine udrulninger bliver mere komplekse, kan du opdele DINE ARM-skabeloner i mindre komponenter, der kan genbruges. Du kan knytte disse mindre skabeloner sammen på udrulningstidspunktet. Du kan også indlejre skabeloner i andre skabeloner.

På Azure Portal kan du gennemse din installationshistorik og få oplysninger om udrulningens tilstand. Portalen viser værdier for alle parametre og output.

Du kan også integrere dine ARM-skabeloner i værktøjer til kontinuerlig integration og kontinuerlig udrulning (CI/CD), f.eks. Azure Pipelines, som kan automatisere dine udgivelsespipelines for at få hurtige og pålidelige program- og infrastrukturopdateringer. Ved hjælp af Azure DevOps- og ARM-skabelonopgaver kan du løbende bygge og udrulle dine projekter.

ARM-skabelonfilstruktur

Når du skriver en ARM-skabelon, skal du forstå alle de dele, der udgør skabelonen, og hvad de gør. ARM-skabelonfiler består af følgende elementer:

Element Beskrivelse
skema Et obligatorisk afsnit, der definerer placeringen af JSON-skemafilen, der beskriver strukturen af JSON-data. Det versionsnummer, du bruger, afhænger af omfanget af installationen og JSON-editoren.
contentVersion Et obligatorisk afsnit, der definerer versionen af skabelonen (f.eks. 1.0.0.0). Du kan bruge denne værdi til at dokumentere betydelige ændringer i skabelonen for at sikre, at du udruller den rigtige skabelon.
apiProfil En valgfri sektion, der definerer en samling AF API-versioner til ressourcetyper. Du kan bruge denne værdi til at undgå at skulle angive API-versioner for hver ressource i skabelonen.
parametre En valgfri sektion, hvor du definerer værdier, der angives under udrulningen. Du kan angive disse værdier i en parameterfil, ved hjælp af kommandolinjeparametre eller på Azure Portal.
variabler En valgfri sektion, hvor du definerer værdier, der bruges til at forenkle udtryk for skabelonsprog.
funktioner En valgfri sektion, hvor du kan definere brugerdefinerede funktioner, der er tilgængelige i skabelonen. Brugerdefinerede funktioner kan forenkle skabelonen, når komplicerede udtryk bruges gentagne gange i skabelonen.
ressourcer En påkrævet sektion, der definerer de faktiske elementer, du vil udrulle eller opdatere i en ressourcegruppe eller et abonnement.
output En valgfri sektion, hvor du angiver de værdier, der returneres i slutningen af installationen.

Udrul en ARM-skabelon på Azure

Du kan udrulle en ARM-skabelon til Azure på en af følgende måder:

  • Udrul en lokal skabelon
  • Udrul en sammenkædet skabelon
  • Udrul i en kontinuerlig udrulningspipeline

I dette modul fokuseres der på installation af en lokal ARM-skabelon. I fremtidige Learn-moduler lærer du, hvordan du udruller mere kompliceret infrastruktur, og hvordan du integrerer med Azure Pipelines.

Hvis du vil udrulle en lokal skabelon, skal du enten have Azure PowerShell- eller Azure CLI- installeret lokalt.

Log først på Azure ved hjælp af Kommandolinjegrænsefladen i Azure eller Azure PowerShell.

az login

Derefter skal du definere din ressourcegruppe. Du kan bruge en allerede defineret ressourcegruppe eller oprette en ny med følgende kommando. Du kan hente tilgængelige placeringsværdier fra: az account list-locations (CLI) eller Get-AzLocation (PowerShell). Du kan konfigurere standardplaceringen ved hjælp af az configure --defaults location=<location>.

az group create \
  --name {name of your resource group} \
  --location "{location}"

Hvis du vil starte en udrulning af en skabelon i ressourcegruppen, skal du enten bruge Azure CLI-kommandoen az deployment group create eller Azure PowerShell-kommandoen New-AzResourceGroupDeployment.

Drikkepenge

Forskellen mellem az deployment group create og az group deployment create er, at az group deployment create er en gammel kommando, der frarådes og erstattes af az deployment group create. Derfor anbefaler vi, at du bruger az deployment group create til at udrulle ressourcer under ressourcegruppeområdet.

Begge kommandoer kræver ressourcegruppen, området og navnet på installationen, så du nemt kan identificere den i installationsoversigten. Øvelserne opretter en variabel, der gemmer stien til skabelonfilen. Denne variabel gør det nemmere for dig at køre installationskommandoer, fordi du ikke behøver at skrive stien igen, hver gang du installerer. Her er et eksempel:

Hvis du vil køre denne installationskommando, skal du have den nyeste version af Kommandolinjegrænsefladen i Azure.

templateFile="{provide-the-path-to-the-template-file}"
az deployment group create \
  --name blanktemplate \
  --resource-group myResourceGroup \
  --template-file $templateFile

Brug sammenkædede skabeloner til at installere komplekse løsninger. Du kan opdele en skabelon i mange skabeloner og installere disse skabeloner via en hovedskabelon. Når du installerer hovedskabelonen, udløses udrulningen af den sammenkædede skabelon. Du kan gemme og sikre den sammenkædede skabelon ved hjælp af et SAS-token.

En CI/CD-pipeline automatiserer oprettelse og udrulning af udviklingsprojekter, som omfatter ARM-skabelonprojekter. De to mest almindelige pipelines, der bruges til udrulning af skabeloner, er Azure Pipelines eller GitHub Actions.

Du kan få flere oplysninger om disse to udrulningstyper i andre moduler.

Føj ressourcer til skabelonen

Hvis du vil føje en ressource til skabelonen, skal du kende ressourceudbyderen og dens typer ressourcer. Syntaksen for denne kombination er i form af {resource-provider}/{resource-type}. Hvis du f.eks. vil føje en lagerkontoressource til skabelonen, skal du bruge den Microsoft.Storage ressourceudbyder. En af typerne for denne provider er storageAccount. Ressourcetypen vises derfor som Microsoft.Storage/storageAccounts. Du kan bruge en liste over ressourceudbydere til Azure-tjenester til at finde de udbydere, du har brug for.

Når du har defineret provideren og ressourcetypen, skal du forstå egenskaberne for hver ressourcetype, du vil bruge. Du kan finde flere oplysninger i Definer ressourcer i Azure Resource Manager-skabeloner. Hvis du vil finde ressourcen, skal du få vist listen i venstre kolonne. Bemærk, at egenskaberne er sorteret efter API-version.

Skærmbillede af en microsoft-dokumentationsside, hvor dokumentationen til lagerkontoen er valgt.

Her er et eksempel på nogle af de viste egenskaber fra siden Lagerkonti:

Skærmbillede af en microsoft-dokumentationsside, der viser nogle af egenskaberne for lagerkontoen.

I vores lagereksempel kan skabelonen se sådan ud:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.1",
  "apiProfile": "",
  "parameters": {},
  "variables": {},
  "functions": [],
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2023-05-01",
      "name": "learntemplatestorage123",
      "location": "westus",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ],
  "outputs": {}
}