Vytváření dynamických podrobných plánů prostřednictvím parametrů

Důležité

Služba Azure Blueprints (Preview) bude vyřazena z provozu 31. ledna 2027, přičemž její postupné vyřazování začne 31. července 2026. Migrujte své stávající definice a přiřazení Blueprintů do Deployment Stacks (doporučeno) a Template Specs. Artefakty Blueprintu se převádějí na šablony ARM JSON nebo soubory Bicep používané k definování zásobníků nasazení. Kompletní harmonogram jednotlivých fází, dopad a nejčastější dotazy viz Vyřazení Azure Blueprints nebo https://aka.ms/AzureBlueprintsRetirement. Informace o vytváření artefaktu jako prostředku ARM najdete tady:

Plně definovaný podrobný plán s různými artefakty, jako jsou skupiny prostředků, šablony Azure Resource Manageru (šablony ARM), zásady nebo přiřazení rolí, nabízí rychlé vytváření a konzistentní vytváření objektů v Azure. Azure Blueprints podporuje parametry, které umožňují flexibilní použití těchto opakovaně použitelných vzorů návrhu a kontejnerů. Parametr vytváří flexibilitu, a to jak během definice, tak při přiřazování, aby se změnily vlastnosti artefaktů nasazených podrobným plánem.

Jednoduchým příkladem je artefakt skupiny zdrojů. Při vytvoření skupiny prostředků má dvě požadované hodnoty, které musí být zadané: název a umístění. Pokud parametry neexistují, při přidávání skupiny prostředků do podrobného plánu byste definovali tento název a umístění pro každé použití podrobného plánu. Toto opakování by způsobilo, že každé použití šablony vytvoří artefakty ve stejné skupině prostředků. Prostředky uvnitř této skupiny prostředků by se zduplikovaly a způsobily konflikt.

Poznámka:

Nejedná se o problém, kdy dva různé podrobné plány obsahují skupinu prostředků se stejným názvem. Pokud skupina prostředků obsažená v podrobném plánu již existuje, podrobný plán bude dál vytvářet související artefakty v této skupině prostředků. To může způsobit konflikt, protože dva prostředky se stejným názvem a typem prostředku v rámci předplatného neexistují.

Řešením tohoto problému jsou parametry. Azure Blueprints umožňuje definovat hodnotu pro každou vlastnost artefaktu během přiřazení k předplatnému. Parametr umožňuje znovu použít podrobný plán, který v rámci jednoho předplatného vytvoří skupinu prostředků a další prostředky, aniž by došlo ke konfliktu.

Parametry podrobného plánu

Prostřednictvím rozhraní REST API je možné parametry vytvořit v samotném podrobném plánu. Tyto parametry se liší od parametrů u jednotlivých podporovaných artefaktů. Když je v podrobném plánu vytvořen parametr, může ho použít artefakty v daném podrobném plánu. Příkladem může být předpona pro pojmenování skupiny prostředků. Artefakt může použít parametr podrobného plánu k vytvoření "převážně dynamického" parametru. Vzhledem k tomu, že parametr lze také definovat během přiřazení, tento model umožňuje konzistenci, která může dodržovat pravidla pojmenování. Postup najdete v tématu Nastavení statických parametrů – parametr na úrovni podrobného plánu.

Použití parametrů secureString a secureObject

Ačkoli artefakt šablony ARM podporuje parametry typů secureString a secureObject, Azure Blueprints vyžaduje, aby každý byl připojen k Azure Key Vault. Toto bezpečnostní opatření zabraňuje riskantní praxi ukládání tajemství společně s Blueprintem a podporuje použití bezpečných vzorů. Azure Blueprints podporuje toto bezpečnostní opatření a zjišťuje zahrnutí buď jednoho ze zabezpečených parametrů do ARM artefaktu šablony. Služba pak během přiřazování vyzve k zadání následujících vlastností Key Vault pro každý zjištěný zabezpečený parametr:

  • ID prostředku služby Key Vault
  • Název tajného kódu služby Key Vault
  • Verze tajného kódu služby Key Vault

Pokud přiřazení blueprintu používá systémem přiřazenou spravovanou identitu, musí zmíněný Key Vault existovat ve stejném předplatném, ke kterému je definice blueprintu přiřazena.

Pokud přiřazení podrobného plánu používá spravovanou identitu přiřazenou uživatelem, může odkazovaná služba Key Vault existovat v centralizovaném předplatném. Spravovaná identita musí mít před přiřazením blueprintu příslušná práva na Key Vault.

Důležité

V obou případech musí být ve službě Key Vault na stránce Zásady přístupu nakonfigurováno „Povolit přístup k Azure Resource Manageru pro nasazení šablon“. Pokyny k aktivaci této funkce najdete v tématu Key Vault – Aktivace nasazení šablony.

Další informace o službě Azure Key Vault najdete v tématu Přehled služby Key Vault.

Důležité

Neukládejte tajné hodnoty přímo do definice podrobného plánu, včetně v parametru defaultValue. Definice Blueprintu jsou čitelné pro jakoukoli ověřenou identitu v tenantovi – definice s rozsahem skupiny pro správu ke čtení ani nevyžadují přiřazení role ve skupině pro správu – takže jakákoli hodnota uložená v definici může být zpřístupněna. Tajné klíče zadávejte pouze při přiřazení pomocí odkazů na Azure Key Vault popsaných zde. Další informace o tom, kdo může číst definice podrobného plánu, najdete v tématu Oprávnění v Azure Blueprints.

Typy parametrů

Statické parametry

Hodnota parametru definovaná v definici podrobného plánu se nazývá statický parametr, protože každé použití podrobného plánu nasadí artefakt pomocí této statické hodnoty. V příkladu skupiny prostředků sice nemá smysl pro název skupiny prostředků, ale může to dávat smysl pro dané umístění. Každé přiřazení plánu pak vytvoří skupinu prostředků, bez ohledu na to, jak se nazývá během přiřazení, ve stejném umístění. Díky této flexibilitě můžete být selektivní v tom, co definujete jako povinné a co se dá během přiřazení změnit.

Nastavení statických parametrů na portálu

  1. V levém podokně vyberte Všechny služby. Vyhledejte a vyberte Blueprinty.

  2. Na levé straně vyberte definice podrobného plánu.

  3. Vyberte existující podrobný plán a pak vyberte Upravit podrobný plán NEBO vyberte + Vytvořit podrobný plán a vyplňte informace na kartě Základy .

  4. Vyberte Další: Artefakty NEBO vyberte kartu Artefakty .

  5. Artefakty přidané do podrobného plánu s možnostmi parametrů zobrazují X parametrů Y vyplněných ve sloupci Parametry . Vyberte řádek artefaktů a upravte parametry artefaktu.

    Snímek obrazovky s definicí plánu a zvýrazněným textem 'X z Y parametrů vyplněno'.

  6. Na stránce Upravit artefakt se zobrazí možnosti hodnoty odpovídající vybranému artefaktu. Každý parametr artefaktu má název, pole s hodnotou a zaškrtávací políčko. Pokud chcete nastavit statický parametr, nastavte políčko na nezaškrtnuté. V následujícím příkladu je pouze Umístěnístatickým parametrem, protože není zaškrtnuté, zatímco Název skupiny prostředků je zaškrtnutý.

    Snímek obrazovky se statickými parametry artefaktu výkresu

Nastavení statických parametrů z rozhraní REST API

Každý identifikátor URI v REST API používá proměnné, které je potřeba nahradit vašimi vlastními hodnotami:

  • Proměnnou {YourMG} nahraďte názvem skupiny pro správu.
  • Nahraďte {subscriptionId} vaším ID předplatného.
Parametr úrovně podrobného plánu

Při vytváření podrobného plánu prostřednictvím rozhraní REST API je možné vytvořit parametry podrobného plánu. K tomu použijte následující identifikátor URI rozhraní REST API a základní formát:

  • Identifikátor URI v REST API

    PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint?api-version=2018-11-01-preview
    
  • Tělo požadavku

    {
        "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."
                }
            }
        }
    }
    

Jakmile se vytvoří parametr na úrovni podrobného plánu, můžete ho použít u artefaktů přidaných do daného podrobného plánu. Následující příklad rozhraní REST API vytvoří artefakt přiřazení role v podrobném plánu a použije parametr úrovně podrobného plánu.

  • Identifikátor URI v REST API

    PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/artifacts/roleOwner?api-version=2018-11-01-preview
    
  • Tělo požadavku

    {
        "kind": "roleAssignment",
        "properties": {
            "resourceGroup": "storageRG",
            "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635",
            "principalIds": "[parameters('owners')]"
        }
    }
    

V tomto příkladu vlastnost principalIds používá parametr na úrovni šablony owners za použití hodnoty [parameters('owners')]. Nastavení parametru na artefaktu pomocí parametru na úrovni podrobného plánu je stále příkladem statického parametru. Parametr úrovně podrobného plánu nelze nastavit během přiřazení podrobného plánu a bude mít stejnou hodnotu pro každé přiřazení.

Parametr úrovně artefaktů

Vytvoření statických parametrů na artefaktu je podobné, ale místo použití funkce přebírá přímou parameters() hodnotu. Následující příklad vytvoří dva statické parametry, tagName a tagValue. Hodnota každého z nich je přímo zadaná a nepoužívá volání funkce.

  • Identifikátor URI v REST API

    PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/artifacts/policyStorageTags?api-version=2018-11-01-preview
    
  • Tělo požadavku

    {
        "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"
                }
            }
        }
    }
    

Dynamické parametry

Opakem statického parametru je dynamický parametr. Tento parametr není definován v podrobném plánu, ale je definován během každého přiřazení podrobného plánu. V příkladu skupiny prostředků dává použití dynamického parametru smysl pro název skupiny prostředků. Poskytuje jiný název pro každé přiřazení šablony. Seznam funkcí podrobného plánu najdete v referenčních informacích k funkcím podrobného plánu.

Nastavení dynamických parametrů na portálu

  1. V levém podokně vyberte Všechny služby. Vyhledejte a vyberte Blueprinty.

  2. Na levé straně vyberte definice podrobného plánu.

  3. Klikněte pravým tlačítkem myši na výkres, který chcete přiřadit. Vyberte Přiřadit podrobný plán NEBO vyberte podrobný plán, který chcete přiřadit, a pak použijte tlačítko Přiřadit podrobný plán .

  4. Na stránce Přiřadit podrobný plán vyhledejte oddíl Parametry artefaktu. Každý artefakt s alespoň jedním dynamickým parametrem zobrazí artefakt a možnosti konfigurace. Před přiřazením podrobného plánu zadejte požadované hodnoty parametrům. V následujícím příkladu je Name dynamický parametr, který musí být definován pro dokončení přiřazení podrobného plánu.

    Snímek obrazovky s nastavením dynamických parametrů během přiřazení podrobného plánu

Nastavení dynamických parametrů z rozhraní REST API

Nastavení dynamických parametrů během přiřazení provedete zadáním hodnoty přímo. Místo použití funkce, například parameters(), je zadaná hodnota vhodným řetězcem. Artefakty skupiny prostředků jsou definovány pomocí vlastností "název šablony", název a umístění. Všechny ostatní parametry zahrnutého artefaktu jsou definovány v parametrech s párem< klíče názvu> a hodnoty. Pokud je podrobný plán nakonfigurovaný pro dynamický parametr, který není zadaný během přiřazení, přiřazení selže.

  • Identifikátor URI v REST API

    PUT https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Blueprint/blueprintAssignments/assignMyBlueprint?api-version=2018-11-01-preview
    
  • Tělo požadavku

    {
        "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"
    }
    

Další kroky