Hantera en mallspecifikation
Mallspecifikationer är ett bekvämt sätt att publicera och dela mallar i din organisation. När du använder mallspecifikationer mer blir det viktigt att förstå hur du hanterar dem.
I den här lektionen lär du dig mer om versionshantering, hur du ändrar och tar bort mallspecifikationer och hur du styr åtkomsten till mallspecifikationer.
Notera
Kommandona i den här enheten visas för att illustrera begrepp. Kör inte kommandona än. Du kommer att öva på det du lär dig här snart.
Lägga till versioner
Du har lärt dig att en enda mallspecifikation kan ha flera versioner. En mallspecifikation fungerar som en container för en eller flera versioner och varje version är associerad med en mallfil. När du distribuerar en mallspecifikation måste du ange den version som du vill använda, så att Azure Resource Manager vet vilken mallfil som ska hämtas.
Azure CLI och Azure PowerShell gör det enkelt att arbeta med flera versioner. Du har faktiskt redan arbetat med versioner när du distribuerade mallspecifikationen i föregående övning.
Det är en bra idé att noggrant planera hur du ska version dina mallspecifikationer. Två viktiga beslut att fatta är versionsschema och versionsprincip att använda.
Versionsscheman
Versionsschemat avgör hur du genererar versionsnummer. Vanliga versionsscheman är:
-
Grundläggande heltal kan användas som versionsnummer. Din första version kan till exempel kallas
1
, din andra version2
och så vidare. -
Datum gör också bra versionsnummer. Om du till exempel publicerar den första versionen av mallspecifikationen den 16 januari 2021 kan du namnge versionen
2021-01-16
(med å–mm-dd format). När du publicerar en annan version den 3 mars kan du ge den namnet2021-03-03
. - semantisk versionshantering är ett versionssystem som ofta används i programvara, där ett enskilt versionsnummer innehåller flera delar. Varje del signalerar olika information om förändringens natur.
Även om du kan använda valfritt versionsschema är det en bra idé att välja något som kan sorteras i en meningsfull ordning, till exempel siffror och datum.
Not
Azure lagrar det datum då varje version skapas. Även om du inte använder datumbaserad versionshantering kan du fortfarande se den här informationen.
Versionsprinciper
Mallspecifikationer ger dig flexibiliteten att välja när du vill skapa nya versioner eller uppdatera en befintlig version. Du kan till exempel effektivt välja bort versionshantering genom att skapa och publicera en enda version med namnet latest
. När du behöver ändra mallspecifikationen uppdaterar du bara den versionen. Även om den här principen fungerar är det inte en bra idé.
Om du däremot gör en liten ändring av en befintlig mall som inte påverkar dess användning är det förmodligen inte en bra idé att skapa en ny version. Du skulle behöva kommunicera det nya versionsnumret till alla som använder mallspecifikationen.
Här är en versionsprincip som ofta fungerar bra:
- När du gör betydande ändringar i en mallspecifikation skapar du en ny version. Viktiga ändringar i mallspecifikationen omfattar allt som kan göra skillnad för den användare som distribuerar den. Exempel är att lägga till en annan resurs i mallen eller ändra en resurss egenskaper.
- När du gör små ändringar i en mallspecifikation, som ibland kallas för en snabbkorrigering, uppdaterar du den befintliga mallspecifikationsversionen.
- Ta bort gamla versioner när de inte längre är relevanta eller när du inte vill att någon ska använda dem.
Tips
Överväg användarna av mallspecifikationen och se till att du tänker på vad de förväntar sig kommer att hända. Om en användare distribuerar mallspecifikationen flera gånger och får ett resultat och sedan distribuerar den igen efter en snabbkorrigering och får ett annat resultat, blir de förmodligen förvånade. Försök att minimera sannolikheten för att användarna får ett resultat som de inte förväntar sig.
Versionsbeskrivningar
När du skapar en ny version av en mallspecifikation kan du ge den en versionsbeskrivning. Det är bra att ange en versionsbeskrivning, även om det inte krävs. Versionsbeskrivningen sammanfattar de ändringar som du har gjort för att hjälpa alla som använder mallspecifikationen att välja den version som bäst passar deras behov.
Göra ändringar i en mallspecifikation
Mallspecifikationer är Azure-resurser, så du kan hantera dem som andra resurser. Det innebär att du kan visa information om en mallspecifikation, uppdatera den och ta bort den, precis som normalt.
Om du till exempel vill visa en lista över versioner av en mallspecifikation använder du cmdleten Get-AzTemplateSpec
:
Get-AzTemplateSpec `
-ResourceGroupName MyResourceGroup `
-Name MyTemplateSpec
Samma cmdlet används för att visa en mallspecifikationsversion. Lägg till parametern -Version
för att få information om en version:
Get-AzTemplateSpec `
-ResourceGroupName MyResourceGroup `
-Name MyTemplateSpec `
-Version 1.0
Du kan komma åt JSON-mallen genom att läsa egenskapen MainTemplate
inifrån matrisen Versions
:
(Get-AzTemplateSpec `
-ResourceGroupName MyResourceGroup `
-Name MyTemplateSpec `
-Version 1.0 `
).Versions[0].MainTemplate
Om du till exempel vill visa en lista över versioner av en mallspecifikation använder du kommandot az ts show
:
az ts show \
--resource-group MyResourceGroup \
--name MyTemplateSpec
Samma kommando används för att visa en mallspecifikationsversion. Lägg till argumentet --version
för att hämta information om en version:
az ts show \
--resource-group MyResourceGroup \
--name MyTemplateSpec \
--version 1.0
JSON-mallen ingår i utdata.
Noten
När du publicerar en Bicep-fil till en mallspecifikation konverteras den till JSON. Du kan inte se den ursprungliga Bicep-filen, så det är en bra idé att behålla den någon annanstans.
Om du vill uppdatera en befintlig mallspecifikation använder du cmdleten Set-AzTemplateSpec
. Du kan till exempel använda den här cmdleten för att tillämpa en snabbkorrigering på en version som du redan har publicerat:
Set-AzTemplateSpec `
-ResourceGroupName MyResourceGroup `
-Name MyTemplateSpec `
-Version 1.0 `
-TemplateFile azuredeploy.json
Och du kan ta bort en mallspecifikationsversion med hjälp av cmdleten Remove-AzTemplateSpec
:
Remove-AzTemplateSpec `
-ResourceGroupName MyResourceGroup `
-Name MyTemplateSpec `
-Version 1.0
Om du vill uppdatera en befintlig mallspecifikation använder du kommandot az ts update
. Du kan till exempel använda det här kommandot för att tillämpa en snabbkorrigering på en version som du redan har publicerat:
az ts update \
--resource-group MyResourceGroup \
--name MyTemplateSpec \
--version 1.0 \
--template-file azuredeploy.json
Och du kan ta bort en mallspecifikationsversion med hjälp av kommandot az ts delete
:
az ts delete \
--resource-group MyResourceGroup \
--name MyTemplateSpec \
--version 1.0
Exportera en mallspecifikation
När du har publicerat en mall som en mallspecifikation kan du exportera den. När du exporterar en mallspecifikation hämtas mallfilen till den lokala datorn. Där kan du antingen redigera mallfilen eller bara inspektera den så att du kan förstå vad den gör.
Tips
Om mallspecifikationen innehåller länkade mallar laddar export av en mallspecifikation även ned de länkade mallarna. Den bevarar till och med mappstrukturen.
Viktig
När du publicerar en Bicep-fil som en mallspecifikation konverteras din Bicep-kod till en JSON-mall. Processen med att konvertera Bicep-koden till JSON tar bort en del av informationen i Bicep-filen. Dina kommentarer, symboliska namn för resurser och i vilken ordning du definierar dina resurser kan till exempel saknas eller skilja sig åt i JSON. Det innebär att du inte enkelt kan publicera en Bicep-fil som en mallspecifikation och sedan få tillbaka den ursprungliga Bicep-filen (kallas även avrundning). Det är en bra idé att behålla en kopia av din ursprungliga Bicep-kod på en kodlagringsplats som Git, särskilt när du arbetar med mallspecifikationer.
Om du vill exportera en mallspecifikation använder du cmdleten Export-AzTemplateSpec
. Använd värdet -OutputFolder
för att ange var du vill spara mallfilerna:
Export-AzTemplateSpec `
-ResourceGroupName MyResourceGroup `
-Name MyTemplateSpec `
-Version 1.0 `
-OutputFolder ./mytemplate
Om du vill exportera en mallspecifikation använder du kommandot az ts export
. Använd värdet --output-folder
för att ange var du vill spara mallfilerna:
az ts export \
--resource-group MyResourceGroup \
--name MyTemplateSpec \
--version 1.0 \
--output-folder ./mytemplate
Kontrollera åtkomsten till en mallspecifikation
Eftersom mallspecifikationer är Azure-resurser använder de Azures identitets- och åtkomsthantering (IAM). När en användare distribuerar en mallspecifikation kontrollerar Azure att användaren har åtkomst till att läsa mallspecifikationen först.
Not
För att distribuera en mallspecifikation behöver en användare:
- Åtkomst till att läsa mallspecifikationen.
- Åtkomst för att distribuera till resursgruppen eller annat omfång som de ber om att få distribuera till.
Azure kontrollerar båda villkoren innan distributionen startar.