Sdílet prostřednictvím


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

Důležité

11. července 2026 se podrobné plány (Preview) přestanou používat. Migrujte existující definice a přiřazení podrobného plánu do šablonových specifikací a zásobníků nasazení. Artefakty podrobného plánu se mají převést na šablony JSON ARM nebo soubory Bicep používané k definování zásobníků nasazení. 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 prostředků. 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 každé použití podrobného plánu k vytvoření artefaktů 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

I když artefakt šablony ARM podporuje parametry typů secureString a secureObject, Azure Blueprints vyžaduje, aby byly všechny připojené ke službě Azure Key Vault. Toto bezpečnostní opatření brání nebezpečnému ukládání tajných kódů spolu s podrobným plánem a podporuje zaměstnanost zabezpečených vzorů. Azure Blueprints podporuje toto bezpečnostní opatření a zjišťuje zahrnutí obou zabezpečených parametrů do artefaktu šablony ARM. Služba se pak během přiřazení vyzve k zadání následujících vlastností služby Key Vault na 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í podrobného plánu používá spravovanou identitu přiřazenou systémem, musí odkazovaná služba Key Vault existovat ve stejném předplatném, ke kterému je definice podrobného plánu 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 podrobného plánu příslušná práva ke službě Key Vault.

Důležité

V obou případech musí mít Key Vault pro nasazení šablony nakonfigurovaný na stránce Zásad přístupu přístup k Azure Resource Manageru přístup. Pokyny k povolení této funkce najdete v tématu Key Vault – Povolení nasazení šablony.

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

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í podrobného plánu pak vytvoří skupinu prostředků, ať už je volána 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 Podrobné plány.

  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í podrobného plánu a zvýrazněnou zvýrazněnou možností X parametrů Y

  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 statický parametr pouze umístění, protože není zaškrtnuté a je zaškrtnutý název skupiny prostředků.

    Snímek obrazovky se statickými parametry artefaktu podrobného plánu

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.
  • Proměnnou {subscriptionId} nahraďte 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
    
  • Text 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
    
  • Text požadavku

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

V tomto příkladu používá vlastnost principalIds parametr úrovně podrobného [parameters('owners')]plánu vlastníci pomocí hodnoty . 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
    
  • Text 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í podrobného plánu. 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 Podrobné plány.

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

  3. Klikněte pravým tlačítkem myši na podrobný plán, 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 část 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 pro skupinu prostředků jsou definovány pomocí vlastnosti "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
    
  • Text 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