Dela via


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 stöder Azure Blueprints 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 skulle orsaka varje användning av skissen för att skapa artefakter i samma resursgrupp. Resurser i resursgruppen dupliceras och orsakar en konflikt.

Kommentar

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. 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 att ha konflikter.

Skissparametrar

Via REST-API:et kan parametrar skapas på 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 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 namngivningsreglerna. Anvisningar finns i ange statiska parametrar – skissnivåparameter.

Använda parametrarna secureString och secureObject

En ARM-mallartefakt stöder parametrar för secureString- och secureObject-typerna, men Azure Blueprints kräver att var och en är ansluten till ett Azure Key Vault. Den här säkerhetsåtgärden förhindrar den osäkra metoden att lagra hemligheter tillsammans med skissen och uppmuntrar till att använda säkra mönster. Azure Blueprints stöder det här säkerhetsmåttet och identifierar inkluderingen av någon av de säkra parametrarna 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
  • Hemligt namn på Key Vault
  • Hemlig Key Vault-version

Om skisstilldelningen använder en systemtilldelad hanterad identitet måste det refererade Nyckelvalvet finnas i samma prenumeration som skissdefinitionen tilldelas till.

Om skisstilldelningen använder en användartilldelad hanterad identitet kan det refererade Nyckelvalvet 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 Översikt över Key Vault.

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. Sedan skulle varje tilldelning av skissen skapa resursgruppen, vad den än 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 Grundläggande .

  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 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 på en skissartefakt.

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 via REST API kan du skapa skissparametrar. Om du vill göra det använder du 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 i 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 hjälp av [parameters('owners')]värdet . 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 på skissnivå kan inte anges under skisstilldelningen och kommer att vara samma värde för varje tilldelning.

Parameter på artefaktnivå

Att skapa statiska parametrar på 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 det bra 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

  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 reda på 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 hur du ställer in dynamiska parametrar under skisstilldelningen.

Ange 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 tillhandahålls 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