Tworzenie strategii dynamicznych za pomocą parametrów

Ważne

11 lipca 2026 r. usługa Blueprints (wersja zapoznawcza) zostanie wycofana. Migrowanie istniejących definicji strategii i przypisań do specyfikacji szablonu i stosów wdrażania. Artefakty strategii mają być konwertowane na szablony JSON usługi ARM lub pliki Bicep używane do definiowania stosów wdrażania. Aby dowiedzieć się, jak utworzyć artefakt jako zasób usługi ARM, zobacz:

W pełni zdefiniowana strategia z różnymi artefaktami, takimi jak grupy zasobów, szablony usługi Azure Resource Manager (szablony usługi ARM), zasady lub przypisania ról, oferuje szybkie tworzenie i spójne tworzenie obiektów na platformie Azure. Aby umożliwić elastyczne korzystanie z tych wzorców projektowych i kontenerów wielokrotnego użytku, usługa Azure Blueprints obsługuje parametry. Parametr tworzy elastyczność, zarówno podczas definicji, jak i przypisania, w celu zmiany właściwości artefaktów wdrożonych przez strategię.

Prostym przykładem jest artefakt grupy zasobów. Po utworzeniu grupy zasobów ma ona dwie wymagane wartości, które muszą zostać podane: nazwa i lokalizacja. Jeśli parametry nie istnieją, podczas dodawania grupy zasobów do strategii należy zdefiniować tę nazwę i lokalizację dla każdego użycia strategii. To powtórzenie spowodowałoby każde użycie strategii do tworzenia artefaktów w tej samej grupie zasobów. Zasoby w tej grupie zasobów zostaną zduplikowane i spowodują konflikt.

Uwaga

Nie jest to problem dotyczący dwóch różnych strategii dołączania grupy zasobów o tej samej nazwie. Jeśli grupa zasobów uwzględniona w strategii już istnieje, strategia kontynuuje tworzenie powiązanych artefaktów w tej grupie zasobów. Może to spowodować konflikt, ponieważ dwa zasoby o tej samej nazwie i typie zasobu nie mogą istnieć w ramach subskrypcji.

Rozwiązaniem tego problemu są parametry. Usługa Azure Blueprints umożliwia zdefiniowanie wartości dla każdej właściwości artefaktu podczas przypisywania do subskrypcji. Parametr umożliwia ponowne użycie strategii, która tworzy grupę zasobów i inne zasoby w ramach jednej subskrypcji bez konfliktu.

Parametry strategii

Za pomocą interfejsu API REST parametry można utworzyć w samej strategii. Te parametry różnią się od parametrów dla każdego z obsługiwanych artefaktów. Po utworzeniu parametru w strategii można go użyć przez artefakty w tej strategii. Przykładem może być prefiks nazewnictwa grupy zasobów. Artefakt może użyć parametru strategii, aby utworzyć parametr "głównie dynamiczny". Ponieważ parametr można również zdefiniować podczas przypisywania, ten wzorzec umożliwia zachowanie spójności, która może być zgodna z regułami nazewnictwa. Aby uzyskać instrukcje, zobacz ustawianie parametrów statycznych — parametr poziomu strategii.

Używanie parametrów secureString i secureObject

Chociaż artefakt szablonu usługi ARM obsługuje parametry typów secureString i secureObject, usługa Azure Blueprints wymaga, aby każdy z nich był połączony z usługą Azure Key Vault. Ten środek bezpieczeństwa zapobiega niebezpiecznej praktyce przechowywania wpisów tajnych wraz z strategią i zachęca do zatrudnienia bezpiecznych wzorców. Usługa Azure Blueprints obsługuje tę miarę zabezpieczeń, wykrywając dołączenie dowolnego z bezpiecznych parametrów do artefaktu szablonu usługi ARM. Następnie usługa monituje podczas przypisywania następujących Key Vault właściwości na wykryty bezpieczny parametr:

  • identyfikator zasobu Key Vault
  • nazwa wpisu tajnego Key Vault
  • Key Vault wersji wpisu tajnego

Jeśli przypisanie strategii używa przypisanej przez system tożsamości zarządzanej, przywołyany Key Vault musi istnieć w tej samej subskrypcji, do której przypisano definicję strategii.

Jeśli przypisanie strategii używa tożsamości zarządzanej przypisanej przez użytkownika, przywoływane Key Vault mogą istnieć w scentralizowanej subskrypcji. Tożsamość zarządzana musi mieć odpowiednie uprawnienia do Key Vault przed przypisaniem strategii.

Ważne

W obu przypadkach Key Vault musi mieć ustawienie Włącz dostęp do usługi Azure Resource Manager dla wdrożenia szablonu skonfigurowanego na stronie Zasady dostępu. Aby uzyskać wskazówki dotyczące włączania tej funkcji, zobacz Key Vault — Włączanie wdrożenia szablonu.

Aby uzyskać więcej informacji na temat usługi Azure Key Vault, zobacz omówienie Key Vault.

Typy parametrów

Parametry statyczne

Wartość parametru zdefiniowana w definicji strategii jest nazywana parametrem statycznym, ponieważ każde użycie strategii spowoduje wdrożenie artefaktu przy użyciu tej wartości statycznej. W przykładzie grupy zasobów, chociaż nie ma sensu dla nazwy grupy zasobów, może to mieć sens dla lokalizacji. Następnie każde przypisanie strategii utworzy grupę zasobów, niezależnie od tego, co jest wywoływane podczas przypisywania, w tej samej lokalizacji. Ta elastyczność umożliwia selektywne określenie, co jest wymagane, a co można zmienić podczas przypisywania.

Ustawianie parametrów statycznych w portalu

  1. W okienku po lewej stronie wybierz pozycję Wszystkie usługi. Wyszukaj i wybierz pozycję Strategie.

  2. Wybierz pozycję Definicje strategii na stronie po lewej stronie.

  3. Wybierz istniejącą strategię, a następnie wybierz pozycję Edytuj strategię LUB wybierz pozycję + Utwórz strategię i wypełnij informacje na karcie Podstawy .

  4. Wybierz pozycję Dalej: Artefakty LUB wybierz kartę Artefakty .

  5. Artefakty dodane do strategii, które mają opcje parametrów wyświetlają X parametrów Y wypełnionych w kolumnie Parametry . Wybierz wiersz artefaktu, aby edytować parametry artefaktu.

    Zrzut ekranu przedstawiający definicję strategii i wyróżnione

  6. Na stronie Edytowanie artefaktu są wyświetlane opcje wartości odpowiednie dla wybranego artefaktu. Każdy parametr artefaktu ma tytuł, pole wartości i pole wyboru. Ustaw pole na niezaznaczone, aby ustawić go jako parametr statyczny. W poniższym przykładzie tylko lokalizacja jest parametrem statycznym , ponieważ jest niezaznaczone, a pole wyboru Nazwa grupy zasobów jest zaznaczone.

    Zrzut ekranu przedstawiający parametry statyczne artefaktu strategii.

Ustawianie parametrów statycznych z interfejsu API REST

Każdy identyfikator URI interfejsu API REST zawiera używane zmienne, które musisz zastąpić własnymi wartościami:

  • {YourMG} — zastąp nazwą swojej grupy zarządzania
  • {subscriptionId} — zastąp swoim identyfikatorem subskrypcji
Parametr poziomu strategii

Podczas tworzenia strategii za pomocą interfejsu API REST można utworzyć parametry strategii. W tym celu użyj następującego identyfikatora URI interfejsu API REST i formatu treści:

  • Identyfikator URI interfejsu API REST

    PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint?api-version=2018-11-01-preview
    
  • Treść żądania

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

Po utworzeniu parametru poziomu strategii można go użyć w artefaktach dodanych do tej strategii. Poniższy przykład interfejsu API REST tworzy artefakt przypisania roli w strategii i używa parametru poziomu strategii.

  • Identyfikator URI interfejsu API REST

    PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/artifacts/roleOwner?api-version=2018-11-01-preview
    
  • Treść żądania

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

W tym przykładzie właściwość principalIds używa parametru poziomu strategii właścicieli przy użyciu wartości [parameters('owners')]. Ustawienie parametru artefaktu przy użyciu parametru poziomu strategii jest nadal przykładem parametru statycznego. Nie można ustawić parametru poziomu strategii podczas przypisywania strategii i będzie to ta sama wartość dla każdego przypisania.

Parametr poziomu artefaktu

Tworzenie parametrów statycznych dla artefaktu jest podobne, ale przyjmuje wartość prostą zamiast używać parameters() funkcji . W poniższym przykładzie są tworzone dwa parametry statyczne: tagName i tagValue. Wartość dla każdego z nich jest podawana bezpośrednio i nie używa wywołania funkcji.

  • Identyfikator URI interfejsu API REST

    PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/artifacts/policyStorageTags?api-version=2018-11-01-preview
    
  • Treść żądania

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

Parametry dynamiczne

Przeciwieństwem parametru statycznego jest parametr dynamiczny. Ten parametr nie jest zdefiniowany w strategii, ale zamiast tego jest definiowany podczas każdego przypisania strategii. W przykładzie grupy zasobów użycie parametru dynamicznego ma sens dla nazwy grupy zasobów. Zawiera inną nazwę dla każdego przypisania strategii. Aby uzyskać listę funkcji strategii, zobacz dokumentację funkcji strategii .

Ustawianie parametrów dynamicznych w portalu

  1. W okienku po lewej stronie wybierz pozycję Wszystkie usługi. Wyszukaj i wybierz pozycję Strategie.

  2. Wybierz pozycję Definicje strategii na stronie po lewej stronie.

  3. Kliknij prawym przyciskiem myszy strategię, którą chcesz przypisać. Wybierz pozycję Przypisz strategię LUB wybierz strategię, którą chcesz przypisać, a następnie użyj przycisku Przypisz strategię .

  4. Na stronie Przypisywanie strategii znajdź sekcję Parametry artefaktu . Każdy artefakt z co najmniej jednym parametrem dynamicznym wyświetla artefakt i opcje konfiguracji. Przed przypisaniem strategii podaj wymagane wartości parametrów. W poniższym przykładzie nazwa jest parametrem dynamicznym , który należy zdefiniować w celu ukończenia przypisywania strategii.

    Zrzut ekranu przedstawiający ustawianie parametrów dynamicznych podczas przypisywania strategii.

Ustawianie parametrów dynamicznych z interfejsu API REST

Ustawianie parametrów dynamicznych podczas przypisywania odbywa się przez bezpośrednie wprowadzenie wartości. Zamiast używać funkcji, takiej jak parameters(), podana wartość jest odpowiednim ciągiem. Artefakty dla grupy zasobów są definiowane za pomocą właściwości "nazwa szablonu", nazwa i lokalizacja . Wszystkie inne parametry dołączonego artefaktu są definiowane w obszarze parametrów z parą <kluczy nazwy> i wartości . Jeśli strategia jest skonfigurowana dla parametru dynamicznego, który nie jest podany podczas przypisywania, przypisanie zakończy się niepowodzeniem.

  • Identyfikator URI interfejsu API REST

    PUT https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Blueprint/blueprintAssignments/assignMyBlueprint?api-version=2018-11-01-preview
    
  • Treść żądania

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

Następne kroki