Skapa dynamiska skisser via parametrar
En fullständigt definierad skiss med olika artefakter, till exempel resursgrupper, Azure Resource Manager-mallar (ARM-mallar), principer eller rolltilldelningar, ger ett snabbt skapande och konsekvent skapande av objekt i Azure. För att möjliggöra flexibel användning av dessa återanvändbara designmönster och containrar Azure Blueprints stöder parametrar. Parametern skapar flexibilitet, både under definition och tilldelning, för att ändra egenskaper på artefakterna som distribueras av skissen.
Ett enkelt exempel är resursgruppsartefakten. När en resursgrupp skapas har den två obligatoriska värden som måste anges: namn och plats. När du lägger till en resursgrupp i skissen skulle du, om parametrarna inte fanns, definiera namnet och platsen för varje användning av skissen. Den här upprepningen gör att skissen används till att skapa artefakter i samma resursgrupp. Resurser i resursgruppen skulle dupliceras och orsaka en konflikt.
Anteckning
Det är inte ett problem för två olika skisser att inkludera en resursgrupp med samma namn. Om det redan finns en resursgrupp som ingår i en skiss fortsätter skissen att skapa relaterade artefakter i resursgruppen. Detta kan orsaka en konflikt eftersom två resurser med samma namn och resurstyp inte kan finnas i en prenumeration.
Lösningen på det här problemet är parametrar. Azure Blueprints kan du definiera värdet för varje egenskap för artefakten under tilldelningen till en prenumeration. Parametern gör det möjligt att återanvända en skiss som skapar en resursgrupp och andra resurser i en enskild prenumeration utan konflikter.
Skissparametrar
Via REST API kan parametrar skapas på själva skissen. Dessa parametrar skiljer sig från parametrarna på var och en av de artefakter som stöds. När en parameter skapas på skissen kan den användas av artefakterna i skissen. Ett exempel kan vara prefixet för namngivning av resursgruppen. Artefakten kan använda skissparametern för att skapa en "mestadels dynamisk" parameter. Eftersom parametern också kan definieras under tilldelningen möjliggör det här mönstret en konsekvens som kan följa namngivningsregler. Anvisningar finns i Ange statiska parametrar – parameter på skissnivå.
Använda secureString- och secureObject-parametrar
Även om en ARM-mallartefakt stöder parametrar för typerna secureString och secureObject Azure Blueprints kräver att var och en är ansluten med en Azure Key Vault. Den här säkerhetsåtgärden förhindrar osäker praxis att lagra hemligheter tillsammans med skissen och uppmuntrar till anställning av säkra mönster. Azure Blueprints stöder det här säkerhetsmåttet och identifierar inkludering av en säker parameter i en ARM-mallartefakt . Tjänsten frågar sedan under tilldelningen efter följande egenskaper Key Vault identifierade säkra parametern:
- Key Vault resurs-ID
- Key Vault hemligt namn
- Key Vault hemlig version
Om skisstilldelningen använder en system tilldelad hanterad identitet måste den refererade identiteten Key Vault finnas i samma prenumeration som skissdefinitionen är tilldelad till.
Om skisstilldelningen använder en användar tilldelad hanterad identitet kan den refererade Key Vault finnas i en centraliserad prenumeration. Den hanterade identiteten måste beviljas lämpliga rättigheter på Key Vault före skisstilldelningen.
Viktigt
I båda fallen måste Key Vault ha Aktivera åtkomst till Azure Resource Manager för malldistribution konfigurerad på sidan Åtkomstprinciper. Anvisningar om hur du aktiverar den här funktionen finns i Key Vault – Aktivera malldistribution.
Mer information om Azure Key Vault finns i Key Vault Översikt.
Parametertyper
Statiska parametrar
Ett parametervärde som definieras i definitionen av en skiss kallas för en statisk parameter, eftersom varje användning av skissen distribuerar artefakten med det statiska värdet. I resursgruppsexempel kan det, även om det inte är meningsfullt för namnet på resursgruppen, vara meningsfullt för platsen. Sedan skulle varje tilldelning av skissen skapa resursgruppen, oavsett vad den anropas under tilldelningen, på samma plats. Med den här flexibiliteten kan du vara selektiv i det du definierar som obligatoriskt jämfört med vad som kan ändras under tilldelningen.
Ange statiska parametrar i portalen
Välj Alla tjänster i den vänstra rutan. Sök efter och välj Skisser.
Välj Skissdefinitioner till vänster på sidan.
Välj en befintlig skiss och välj sedan Redigera skiss ELLER välj + Skapa skiss och fyll i informationen på fliken Grundläggande.
Välj Nästa: Artefakter ELLER välj fliken Artefakter.
Artefakter som har lagts till i skissen och som har parameteralternativ visar X av Y-parametrar som fyllts i i kolumnen Parametrar. Välj artefaktraden för att redigera artefaktparametrarna.
Sidan Redigera artefakt visar de värdealternativ som är lämpliga för den valda artefakten. Varje parameter på artefakten har en rubrik, en värderuta och en kryssruta. Ställ in rutan på avmarkerad för att göra den till en statisk parameter. I följande exempel är endast Plats en statisk parameter eftersom den är avmarkerad och Resursgruppsnamn är markerat.
Ange statiska parametrar från REST API
I varje REST API-URI finns det variabler som används och som du måste ersätta med egna värden:
{YourMG}– Ersätt med namnet på din hanteringsgrupp{subscriptionId}– Ersätt med ditt prenumerations-ID
Parameter på skissnivå
När du skapar en skiss REST API en skiss kan du skapa skissparametrar. Det gör du genom att använda följande REST API URI och brödtextformat:
REST API-URI
PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint?api-version=2018-11-01-previewBegärandetext
{ "properties": { "description": "This blueprint has blueprint level parameters.", "targetScope": "subscription", "parameters": { "owners": { "type": "array", "metadata": { "description": "List of AAD object IDs that is assigned Owner role at the resource group" } } }, "resourceGroups": { "storageRG": { "description": "Contains the resource template deployment and a role assignment." } } } }
När en parameter på skissnivå har skapats kan den användas på artefakter som läggs till i skissen. Följande exempel REST API skapar en rolltilldelningsartefakt på skissen och använder parametern på skissnivå.
REST API-URI
PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/artifacts/roleOwner?api-version=2018-11-01-previewBegärandetext
{ "kind": "roleAssignment", "properties": { "resourceGroup": "storageRG", "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635", "principalIds": "[parameters('owners')]" } }
I det här exemplet använder egenskapen principalIds parametern på skissnivå för ägare med hjälp av värdet [parameters('owners')] . Att ställa in en parameter på en artefakt med hjälp av en parameter på skissnivå är fortfarande ett exempel på en statisk parameter. Parametern på skissnivå kan inte anges under skisstilldelningen och kommer att ha samma värde för varje tilldelning.
Parameter på artefaktnivå
Att skapa statiska parametrar på en artefakt är liknande, men tar ett steg för steg i stället för att använda parameters() funktionen . I följande exempel skapas två statiska parametrar, tagName och tagValue. Värdet för varje anges direkt och använder inte ett funktionsanrop.
REST API-URI
PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/artifacts/policyStorageTags?api-version=2018-11-01-previewBegärandetext
{ "kind": "policyAssignment", "properties": { "description": "Apply storage tag and the parameter also used by the template to resource groups", "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/49c88fc8-6fd1-46fd-a676-f12d1d3a4c71", "parameters": { "tagName": { "value": "StorageType" }, "tagValue": { "value": "Premium_LRS" } } } }
Dynamiska parametrar
Motsatsen till en statisk parameter är en dynamisk parameter. Den här parametern definieras inte i skissen, utan definieras i stället under varje tilldelning av skissen. I resursgruppsexempel är det klokt att använda en dynamisk parameter för resursgruppens namn. Det ger ett annat namn för varje tilldelning av skissen. En lista över skissfunktioner finns i referensen för skissfunktioner.
Ange dynamiska parametrar i portalen
Välj Alla tjänster i den vänstra rutan. Sök efter och välj Skisser.
Välj Skissdefinitioner till vänster på sidan.
Högerklicka på den skiss som du vill tilldela. Välj Tilldela skiss ELLER välj den skiss som du vill tilldela och använd sedan knappen Tilldela skiss.
På sidan Tilldela skiss hittar du avsnittet Artefaktparametrar. Varje artefakt med minst en dynamisk parameter visar artefakten och konfigurationsalternativen. Ange obligatoriska värden för parametrarna innan du tilldelar skissen. I följande exempel är Name en dynamisk parameter som måste definieras för att slutföra skisstilldelningen.
Ange dynamiska parametrar från REST API
Du anger dynamiska parametrar under tilldelningen genom att ange värdet direkt. I stället för att använda en funktion, till exempel parameters()är det angivna värdet en lämplig sträng. Artefakter för en resursgrupp definieras med egenskaperna "mallnamn", namn och plats. Alla andra parametrar för den inkluderade artefakten definieras under parametrar med ett <name> värdenyckelpar och . Om skissen har konfigurerats för en dynamisk parameter som inte anges under tilldelningen misslyckas tilldelningen.
REST API-URI
PUT https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Blueprint/blueprintAssignments/assignMyBlueprint?api-version=2018-11-01-previewBegärandetext
{ "properties": { "blueprintId": "/providers/Microsoft.Management/managementGroups/{YourMG} /providers/Microsoft.Blueprint/blueprints/MyBlueprint", "resourceGroups": { "storageRG": { "name": "StorageAccount", "location": "eastus2" } }, "parameters": { "storageAccountType": { "value": "Standard_GRS" }, "tagName": { "value": "CostCenter" }, "tagValue": { "value": "ContosoIT" }, "contributors": { "value": [ "7be2f100-3af5-4c15-bcb7-27ee43784a1f", "38833b56-194d-420b-90ce-cff578296714" ] }, "owners": { "value": [ "44254d2b-a0c7-405f-959c-f829ee31c2e7", "316deb5f-7187-4512-9dd4-21e7798b0ef9" ] } } }, "identity": { "type": "systemAssigned" }, "location": "westus" }
Nästa steg
- Se listan över skissfunktioner.
- Mer information om livscykeln för en skiss.
- Lär dig hur du anpassar sekvensordningen för en skiss.
- Lär dig hur du använder resurslåsning för en skiss.
- Lär dig hur du uppdaterar befintliga tilldelningar.
- Lös problem som kan uppstå vid tilldelningen av en skiss med allmän felsökning.