Förstå mallspecifikationer

Slutförd

Nu är du van vid att distribuera Azure Resource Manager-mallar (ARM-mallar) till Azure med hjälp av Bicep eller JSON. Du skapar en mallfil och skickar den sedan till Azure genom att skapa en distribution. Azure Resource Manager samordnar skapandet eller omkonfigurationen av dina resurser.

När du arbetar med mallspecifikationer skickar du fortfarande mallen till Azure. Men i stället för att distribuera den sparar Azure den så att du kan använda den i framtiden. Sedan kan du gå tillbaka senare och be Azure att distribuera mallspecifikationen. Du kan till och med använda samma mallspecifikation upprepade gånger för att distribuera fler miljöer.

Varför ska du använda mallspecifikationer?

På ditt leksaksföretag har du skapat många återanvändbara mallar, bland annat:

Mallnamn Beskrivning
Lagringskonto Distribuerar ett lagringskonto och tillämpar Microsoft Entra-autentisering.
Cosmos DB-konto Distribuerar ett Azure Cosmos DB-konto med kontinuerlig säkerhetskopiering aktiverat.
Virtuellt nätverk Distribuerar ett virtuellt nätverk som har rätt konfiguration för peer-anslutning till huvudhubbens nätverk.
Produktlanseringswebbplats Distribuerar ett Azure App Service-abonnemang, en app och ett lagringskonto för webbplatser som innehåller produktlanseringar av nya leksaker.

Mallspecifikationer är ett bra sätt att skapa ett bibliotek med återanvändbara ARM-mallar för vanliga scenarier i din organisation. En expert kan skapa en mall med en förkonfigurerad resurs eller uppsättning resurser. Den experten kan sedan publicera den som en mallspecifikation, vilket gör det möjligt för andra personer i organisationen att distribuera den.

Du kan använda mallspecifikationer för att se till att de resurser som ditt team skapar har konfigurerats enligt dina krav. Du kan till exempel publicera en mallspecifikation som lagringskontomallen som vi beskrev tidigare. När någon i organisationen sedan distribuerar mallspecifikationen kan du vara säker på att de skapar ett lagringskonto med rätt autentiseringsinställningar.

Mallspecifikationer lagras i Azure, så du behöver inte underhålla delade mallfiler själv. Du hanterar vem som kan använda och ändra mallspecifikationerna med rollbaserade åtkomstkontroller i Azure. Utan mallspecifikationer måste du välja en lagringsplats, till exempel Azure Storage, för att behålla dina mallfiler. Du måste också styra åtkomsten själv.

Hur jämförs mallspecifikationer med Bicep-moduler?

När du arbetar med Bicep kan du skapa återanvändbara moduler för att definiera uppsättningar med resurser i en enda fil. Mallspecifikationer och Bicep-moduler är båda sätten att lägga till återanvändbarhet i dina mallar, men de är optimerade för olika saker:

  • Mallspecifikationer är utformade för att kunna distribueras som en fullständig mall. Du kan distribuera mallspecifikationer med hjälp av Azure-portalen och verktyg som Azure CLI och Azure PowerShell. Bicep-moduler är avsedda att kombineras till en större implementering. Men om du skapar en mallspecifikation kan du med Bicep även använda den som en modul om du vill.
  • Mallspecifikationer tillhandahåller funktioner för versionshantering och åtkomstkontroll. Du måste hantera versionerna och säkerheten för din Bicep-kod själv.
  • Mallspecifikationer lagras i Azure som en resurs. Du måste lagra Bicep-moduler någonstans där du styr, till exempel ett versionskontrollsystem som Git eller filsystemet.
  • Bicep-moduler behåller all ursprunglig Bicep-kod, inklusive kommentarer, symboliska namn och blankrader. När du skapar en mallspecifikation med hjälp av Bicep konverteras din Bicep-kod till JSON och en del av den här informationen går förlorad. Därför måste du behålla Bicep-källfilen någon annanstans också.

När du väljer mellan mallspecifikationer och Bicep-moduler är en bra tumregel: om mallen ska användas oförändrad i hela organisationen passar mallspecifikationer förmodligen bra. Men om du sannolikt kommer att återanvända den här mallen i flera överordnade mallar kan Bicep-moduler tjäna dina behov bättre.

Så här fungerar mallspecifikationer

En mallspecifikation är en Azure-resurs, precis som ett lagringskonto eller en virtuell dator. Den måste skapas i en resursgrupp, även om själva mallen kan distribuera resurser till en prenumeration, hantering eller klientorganisation.

När du arbetar med mallspecifikationer skapar du två resurser:

  • Den mallspecifikationen är containerresursen. Den innehåller en eller flera versioner.
  • mallspecifikationsversioner innehåller de faktiska mallar som ska distribueras.

Du arbetar med mallspecifikationer och -versioner med hjälp av deras resurs-ID:n. Här är ett exempel på resurs-ID för en mallspecifikation:

/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS

En version är en underordnad resurs i mallspecifikationen. Den har ett resurs-ID som det här exemplet:

/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS/versions/1.0

När du distribuerar en mallspecifikation måste du ange resurs-ID för mallspecifikationsversionen.

Här är en bild av arbetsflödet som du följer när du använder mallspecifikationer:

diagram som visar arbetsflödet för att använda mallspecifikationer.

Du skapar en mall som du är van vid. Det är inget speciellt med en mall som du skapar för en mallspecifikation. Du deklarerar resurser, skapar parametrar och variabler, använder funktioner och så vidare.

När mallen är klar skapar du en mallspecifikationsresurs. Sedan publicerar du mallen i mallspecifikationen som en version. Med de verktyg som du använder för att skapa mallspecifikationer kan du utföra de här stegen i en enda åtgärd. Mallspecifikationen lagras i Azure som en resurs när du har publicerat den. Du kan visa den, redigera den och styra åtkomsten till den precis som alla andra Azure-resurser. Du kan publicera mallspecifikationen från den lokala datorn eller från en distributionspipeline.

När du vill distribuera mallspecifikationen hänvisar du till mallspecifikationsversionens resurs-ID från distributionen. Du kan distribuera den till valfri resursgrupp eller till och med till en annan prenumeration eller omfattning. Azure läser mallspecifikationen och använder den som mall för distributionen.