Skapa dynamiska skisser via parametrar

Viktigt

Den 11 juli 2026 kommer skisser (förhandsversion) att bli inaktuella. Migrera dina befintliga skissdefinitioner och tilldelningar till mallspecifikationer och distributionsstackar. Skissartefakter ska konverteras till ARM JSON-mallar eller Bicep-filer som används för att definiera distributionsstackar. Information om hur du skapar en artefakt som en ARM-resurs finns i:

En fullständigt definierad skiss med olika artefakter, till exempel resursgrupper, Azure Resource Manager-mallar (ARM-mallar), principer eller rolltilldelningar, ger snabb 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 har Azure Blueprints stöd för parametrar. Parametern skapar flexibilitet, både under definition och tilldelning, för att ändra egenskaper för de artefakter som distribueras av skissen.

Ett enkelt exempel är resursgruppens artefakt. När en resursgrupp skapas har den två obligatoriska värden som måste anges: namn och plats. Om parametrarna inte fanns när du lade till en resursgrupp i skissen skulle du definiera namnet och platsen för varje användning av skissen. Den här upprepningen gör att varje användning av skissen skapar artefakter i samma resursgrupp. Resurser i resursgruppen dupliceras och orsakar 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 den 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. Med 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 enda prenumeration utan konflikter.

Skissparametrar

Via REST-API:et kan parametrar skapas i själva skissen. Dessa parametrar skiljer sig från parametrarna för var och en av de artefakter som stöds. När en parameter skapas i 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 – skissnivåparameter.

Använda parametrarna secureString och secureObject

Även om en ARM-mallartefakt stöder parametrar för secureString- och secureObject-typerna, kräver Azure Blueprints att var och en är ansluten till en Azure-Key Vault. Den här säkerhetsåtgärden förhindrar att hemligheter lagras tillsammans med skissen och uppmuntrar till anställning av säkra mönster. Azure Blueprints stöder den här säkerhetsåtgärden och identifierar inkluderingen av antingen en säker parameter i en ARM-mallartefakt. Tjänsten frågar sedan under tilldelningen om följande Key Vault egenskaper per identifierad säker parameter:

  • Key Vault resurs-ID
  • Key Vault hemligt namn
  • Key Vault hemliga versionen

Om skisstilldelningen använder en systemtilldelad hanterad identitetmåste den refererade Key Vault finnas i samma prenumeration som skissdefinitionen tilldelas till.

Om skisstilldelningen använder en användartilldelad hanterad identitetkan den refererade Key Vault finnas i en centraliserad prenumeration. Den hanterade identiteten måste beviljas lämpliga rättigheter för Key Vault innan skisstilldelningen.

Viktigt

I båda fallen måste Key Vault ha Aktivera åtkomst till Azure Resource Manager för malldistribution som konfigurerats 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 resursgruppsexemplet, även om det inte är meningsfullt för namnet på resursgruppen, kan det vara bra för platsen. Varje tilldelning av skissen skulle sedan skapa resursgruppen, oavsett vad den kallas under tilldelningen, på samma plats. Med den här flexibiliteten kan du vara selektiv i vad du definierar som obligatoriskt jämfört med vad som kan ändras under tilldelningen.

Ange statiska parametrar i portalen

  1. Välj Alla tjänster i den vänstra rutan. Sök efter och välj Skisser.

  2. Välj Skissdefinitioner till vänster på sidan.

  3. Välj en befintlig skiss och välj sedan Redigera skiss ELLER välj + Skapa skiss och fyll i informationen på fliken Grunder .

  4. Välj Nästa: Artefakter ELLER välj fliken Artefakter .

  5. Artefakter som har lagts till i skissen med parameteralternativ visar X av Y-parametrar i kolumnen Parametrar . Välj artefaktraden för att redigera artefaktparametrarna.

    Skärmbild av en skissdefinition och X av Y-parametrarna ifyllda markerade.

  6. Sidan Redigera artefakt visar de värdealternativ som är lämpliga för den valda artefakten. Varje parameter i artefakten har en rubrik, en värderuta och en kryssruta. Ange kryssrutan till 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 resursgruppens namn är markerat.

    Skärmbild av statiska parametrar för en skissartefakt.

Ställa in 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 för skissnivå

När du skapar en skiss via REST API 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-preview
    
  • Begä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 skissnivåparameter har skapats kan den användas på artefakter som läggs till i skissen. I följande REST API-exempel skapas en rolltilldelningsartefakt på skissen och parametern på skissnivå används.

  • 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-preview
    
  • Begä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 owners blueprint level med värdet [parameters('owners')]. Att ange en parameter för en artefakt med hjälp av en parameter på skissnivå är fortfarande ett exempel på en statisk parameter. Parametern för skissnivå kan inte anges under skisstilldelningen och kommer att vara samma värde för varje tilldelning.

Parameter för artefaktnivå

Att skapa statiska parametrar för en artefakt är liknande, men tar ett rakt värde i stället för att parameters() använda funktionen . I följande exempel skapas två statiska parametrar, tagName och tagValue. Värdet på var och en tillhandahålls 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-preview
    
  • Begä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 resursgruppsexemplet är användningen av en dynamisk parameter lämplig 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

  1. Välj Alla tjänster i den vänstra rutan. Sök efter och välj Skisser.

  2. Välj Skissdefinitioner till vänster på sidan.

  3. Högerklicka på skissen som du vill tilldela. Välj Tilldela skiss ELLER välj den skiss som du vill tilldela och använd sedan knappen Tilldela skiss .

  4. På sidan Tilldela skiss letar du upp avsnittet Artefaktparametrar . Varje artefakt med minst en dynamisk parameter visar artefakten och konfigurationsalternativen. Ange nödvändiga 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.

    Skärmbild av att ange dynamiska parametrar under skisstilldelningen.

Ställa in dynamiska parametrar från REST API

Du ställer in 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 <namn> - och värdenyckelpar . 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-preview
    
  • Begä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