Vanliga frågor och svar om ARM-mallar

Den här artikeln besvarar vanliga frågor om Azure Resource Manager-mallar (ARM-mallar).

Komma igång

Vad är ARM-mallar och varför ska jag använda dem?

ARM-mallar är JSON-filer där du definierar vad du vill distribuera till Azure. Mallar hjälper dig att implementera en infrastruktur som kod-lösning för Azure. Din organisation kan upprepade gånger och tillförlitligt distribuera den infrastruktur som krävs till olika miljöer.

Mer information om hur ARM-mallar hjälper dig att hantera din Azure-infrastruktur finns i Vad är ARM-mallar?

Hur gör jag för att komma igång med mallar?

För att förenkla redigeringen av ARM-mallar behöver du rätt verktyg. Vi rekommenderar att du installerar Visual Studio Code och Azure Resource Manager-verktygstillägget. En snabb introduktion till dessa verktyg finns i Snabbstart: Skapa ARM-mallar med Visual Studio Code.

När du är redo att lära dig mer om att skapa ARM-mallar startar du självstudieserien för nybörjare på ARM-mallar. De här självstudierna tar dig steg för steg genom processen att skapa en ARM-mall. Du lär dig mer om de olika avsnitten i mallen och hur de fungerar tillsammans. Det här innehållet är också tillgängligt som en Learn-modul.

Ska jag använda ARM-mallar eller Terraform för att distribuera till Azure?

Använd det alternativ som du gillar bäst. Båda tjänsterna hjälper dig att automatisera distributioner till Azure.

Vi tror att det finns fördelar med att använda ARM-mallar jämfört med andra infrastruktur-som-kod-tjänster. Mer information om dessa fördelar finns i Varför välja ARM-mallar?

Build 2020

Jag missade presentationen på Microsoft Build 2020. Är presentationen tillgänglig för visning?

Var kan jag få mer information om de nya funktioner som du tillkännagav i Build?

Allmän information om funktioner som vi arbetar med finns i vår Azure Advisors Deployments Yammer-grupp.

Om du vill veta mer om det nya mallspråket registrerar du dig för meddelanden.

Mer information om mallspecifikationer finns i Azure Resource Manager-mallspecifikationer.

Skapa och testa mallar

Var kan jag lära mig mer om metodtips för ARM-mallar?

Rekommendationer om hur du implementerar dina mallar finns i metodtips för ARM-mallar. När du har skapat en mall kör du ARM-testverktyget. Den kontrollerar om mallen matchar rekommenderade metoder.

Jag har konfigurerat min miljö via portalen. Finns det något sätt att hämta mallen från en befintlig resursgrupp?

Ja, du kan exportera mallen från en resursgrupp. Den exporterade mallen är en bra utgångspunkt för att lära dig om mallar, men du vill förmodligen ändra den innan du använder den i en produktionsmiljö.

När du exporterar mallen kan du välja vilka resurser du vill inkludera i mallen.

Kan jag skapa en resursgrupp i en ARM-mall och distribuera resurser till den?

Ja, du kan skapa en resursgrupp i en mall när du distribuerar mallen på nivån för din Azure-prenumeration. Ett exempel på hur du skapar en resursgrupp och distribuerar resurser finns i Resursgrupp och resurser.

Kan jag skapa en prenumeration i en ARM-mall?

Hur kan jag testa min mall innan jag distribuerar den?

Vi rekommenderar att du kör ARM-testverktyget och konsekvensåtgärden på dina mallar innan du distribuerar dem. Testverktyget kontrollerar om mallen använder metodtips. Den innehåller varningar när den identifierar ändringar som kan förbättra hur du har implementerat mallen.

Konsekvensåtgärden visar de ändringar som mallen gör i din miljö. Du kan se oavsiktliga ändringar innan de distribueras. What-if returnerar även eventuella fel som kan identifieras under förflygningsvalidering. Om mallen till exempel innehåller ett syntaktiskt fel returneras felet. Den returnerar även eventuella fel som den kan avgöra om det slutliga tillståndet för de distribuerade resurserna. Om mallen till exempel distribuerar ett lagringskonto med ett namn som redan används, returnerar what-if det felet.

Var hittar jag information om de egenskaper som är tillgängliga för varje resurstyp?

VS Code tillhandahåller intellisense för att arbeta med resursegenskaperna. Du kan också visa mallreferensen för egenskaper och beskrivningar.

Jag måste skapa flera instanser av en resurstyp. Hur gör jag för att skapa en iterator i min mall?

Använd kopieringselementet för att ange mer än en instans. Du kan använda kopiera på resurser, egenskaper, variabler och utdata.

Mallspråk

Jag har hört att du jobbar på ett nytt mallspråk. Var kan jag ta reda på mer om det?

Mer information om det nya språket finns i Vad är Bicep (förhandsversion)?.

Finns det någon plan för att skapa mallar i YAML?

För närvarande finns det ingen plan för att stödja YAML. Vi tror att det nya mallspråket erbjuder en lösning som är enklare att använda än YAML eller JSON.

Kan jag fortfarande skriva mallar i JSON när det nya mallspråket har släppts?

Ja, du kan fortsätta använda JSON-mallar.

Kommer du att erbjuda ett verktyg för att konvertera mina JSON-mallar till det nya mallspråket?

Mallspecifikationer

Hur är mallspecifikationer och Azure Blueprints relaterade?

Azure Blueprints använder mallspecifikationer i implementeringen genom att ersätta resursen blueprint definition med en template spec resurs. Vi tillhandahåller en migreringssökväg för att konvertera skissdefinitionen till en mallspecifikation, men API:erna för skissdefinition stöds fortfarande. Det finns inga ändringar i resursen blueprint assignment . Skisser är fortfarande en användarupplevelse för att skapa en styrd miljö i Azure.

Ersätter mallspecifikationer länkade mallar?

Nej, men mallspecifikationer är utformade för att fungera bra med länkade mallar. Du behöver inte flytta den länkade mallen till en offentligt tillgänglig slutpunkt innan du distribuerar den överordnade mallen. I stället paketera du den överordnade mallen och dess artefakter tillsammans när du skapar mallspecifikationen.

Kan mallspecifikationer delas mellan prenumerationer?

Ja, de kan användas mellan prenumerationer så länge användaren har läsbehörighet till mallspecifikationen. Mallspecifikationer kan inte användas mellan klientorganisationer.

Skript i mallar

Kan jag inkludera ett skript i min mall för att utföra uppgifter som inte är möjliga i en mall?

Ja, använd distributionsskript. Du kan inkludera Azure PowerShell- eller Azure CLI-skript i dina mallar.

Kan jag fortfarande använda anpassade skripttillägg och önskad tillståndskonfiguration (DSC)?

Dessa alternativ är fortfarande tillgängliga och har inte ändrats. Distributionsskript är utformade för att utföra åtgärder som inte är relaterade till VM-gästen. Om du behöver köra ett skript på ett värdoperativsystem på en virtuell dator är det anpassade skripttillägget och/eller DSC ett bättre val. Distributionsskript har dock fördelar, till exempel att ange tidsgränsens varaktighet.

Stöds distributionsskript i Azure Government?

Ja, du kan använda distributionsskript i US Gov Arizona och US Gov Virginia.

Förhandsgranska ändringar före distribution

Kan jag förhandsgranska de ändringar som sker innan jag distribuerar en mall?

Ja, använd konsekvensfunktionen. Den utvärderar det aktuella tillståndet för din miljö och jämför den med tillståndet som ska finnas efter distributionen. Du kan undersöka de sammanfattade ändringarna för att se till att mallen inte har några oväntade resultat.

Kan jag använda what-if med både inkrementella och fullständiga lägen?

Ja, båda distributionslägena stöds. Ett exempel på hur du använder inkrementellt läge finns i Kör konsekvensåtgärd. Ett exempel på hur du använder fullständigt läge finns i Bekräfta borttagning.

Fungerar what-if med länkade mallar?

Ja, konsekvensen utvärderar tillståndet för den överordnade mallen och dess länkade mallar.

Kan jag använda vad händer om i en Azure Pipeline?

Ja, du kan använda konsekvens för att kontrollera att pipelinen ska fortsätta.

När jag använder what-if ser jag ändringar i egenskaper som inte finns i min mall. Förväntas det här "bruset"?

Vi arbetar med att minska bruset. Du hjälper oss att förbättra genom att skicka in problem i vår GitHub-lagringsplats här: https://aka.ms/WhatIfIssues

Mallvisualiserare

Finns det något sätt för mig att visualisera min ARM-mall och dess resurser?

Vi har ett VS Code-tillägg som bidrar till communityn och som gör ett bra jobb med att visualisera ARM-mallen. Den visar de resurser som du distribuerar och relationerna mellan dem.

Kan jag använda mallvisualiseraren utanför VS Code?

Mallvisualiseraren förhandsgranskas i portalen. Mer information finns i den här korta sessionen från Build.

Distributionsbegränsningar

Hur många resursgrupper kan jag distribuera till i en enda distributionsåtgärd?

Tidigare var den här gränsen fem resursgrupper. Den har nyligen utökats till 800 resursgrupper. Mer information finns i Skapa resursgrupper och resurser på prenumerationsnivå.

Jag fick ett felmeddelande om att vara begränsad till 800 distributioner i distributionshistoriken. Vad ska jag göra?

Vi ändrar hur distributionshistoriken för en resursgrupp underhålls. Tidigare var du tvungen att manuellt ta bort distributioner från den här historiken för att undvika det här felet. Från och med juni 2020 tar vi automatiskt bort distributioner från historiken när du närmar dig gränsen. Mer information finns i Automatiska borttagningar från distributionshistoriken.

Att ta bort en distribution från historiken påverkar inte de distribuerade resurserna.

Mallar och DevOps

Kan jag integrera ARM-mallar i Azure Pipelines?

Ja. En förklaring av hur du använder mallar och pipelines finns i Självstudie: Kontinuerlig integrering av ARM-mallar med Azure Pipelines och Integrera ARM-mallar med Azure Pipelines.

Kan jag använda GitHub Actions för att distribuera en mall?

Nästa steg

En introduktion till ARM-mallar finns i Vad är ARM-mallar?.