Rychlý start: Definování a přiřazení podrobného plánu Azure pomocí Azure CLI

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:

V tomto kurzu se naučíte používat Azure Blueprints k provádění některých běžných úloh souvisejících s vytvářením, publikováním a přiřazením podrobného plánu v rámci vaší organizace. Tato dovednost vám pomůže definovat běžné vzory pro vývoj opakovaně použitelných a rychle nasaditelných konfigurací na základě šablon, zásad a zabezpečení Azure Resource Manageru (ARM).

Požadavky

  • Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
  • Pokud jste azure Blueprints ještě nepoužívali, zaregistrujte poskytovatele prostředků prostřednictvím Azure CLI.az provider register --namespace Microsoft.Blueprint

Azure Cloud Shell

Azure hostí interaktivní prostředí Azure Cloud Shell, které můžete používat v prohlížeči. Pro práci se službami Azure můžete v prostředí Cloud Shell použít buď Bash, nebo PowerShell. Předinstalované příkazy Cloud Shellu můžete použít ke spuštění kódu v tomto článku, aniž byste museli instalovat cokoli do místního prostředí.

Spuštění služby Azure Cloud Shell:

Možnost Příklad nebo odkaz
Vyberte Vyzkoušet v pravém horním rohu bloku kódu nebo příkazu. Výběrem možnosti Vyzkoušet se kód ani příkaz automaticky nekopíruje do Cloud Shellu. Screenshot that shows an example of Try It for Azure Cloud Shell.
Přejděte na adresu https://shell.azure.com nebo výběrem tlačítka Spustit Cloud Shell otevřete Cloud Shell v prohlížeči. Button to launch Azure Cloud Shell.
Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. Screenshot that shows the Cloud Shell button in the Azure portal

Použití Azure Cloud Shellu:

  1. Spusťte Cloud Shell.

  2. Výběrem tlačítka Kopírovat v bloku kódu (nebo bloku příkazů) zkopírujte kód nebo příkaz.

  3. Vložte kód nebo příkaz do relace Cloud Shellu tak, že ve Windows a Linuxu vyberete ctrl+Shift+V nebo vyberete Cmd+Shift+V v macOS.

  4. Stisknutím klávesy Enter spusťte kód nebo příkaz.

Přidání rozšíření podrobného plánu

Pokud chcete povolit Azure CLI pro správu definic a přiřazení podrobného plánu, musíte přidat rozšíření. Toto rozšíření funguje všude, kde můžete použít Azure CLI. To zahrnuje Bash ve Windows 10, Cloud Shellu (samostatnou verzi i verzi na portálu), image Dockeru v Azure CLI nebo rozšíření, které je místně nainstalované.

  1. Zkontrolujte, jestli je nainstalované nejnovější rozhraní příkazového řádku Azure (minimálně 2.0.76). Pokud ještě není nainstalovaný, postupujte podle těchto pokynů.

  2. Ve zvoleném prostředí Azure CLI naimportujte rozšíření pomocí následujícího příkazu:

    # Add the Blueprint extension to the Azure CLI environment
    az extension add --name blueprint
    
  3. Ověřte, že je rozšíření nainstalované a jestli je očekávané verze (alespoň 0.1.0):

    # Check the extension list (note that you might have other extensions installed)
    az extension list
    
    # Run help for extension options
    az blueprint -h
    

Vytvoření podrobného plánu

Jako první krok při definování standardního vzoru pro dodržování předpisů je sestavení podrobného plánu z dostupných prostředků. Pojďme vytvořit podrobný plán s názvem MyBlueprint pro konfiguraci přiřazení rolí a zásad pro předplatné. Potom do skupiny prostředků přidáte skupinu prostředků, šablonu ARM a přiřazení role.

Poznámka:

Při použití Azure CLI se nejprve vytvoří objekt podrobného plánu . Pro každý artefakt , který má parametry, definujete parametry předem v počátečním podrobném plánu.

  1. Vytvořte počáteční objekt blueprint. Parametr parameters přebírá soubor JSON, který obsahuje všechny parametry na úrovni podrobného plánu. Parametry nastavíte během přiřazení a artefakty, které přidáte v dalších krocích.

    • Soubor JSON – blueprintparms.json

      {
         "storageAccountType": {
             "type": "string",
             "defaultValue": "Standard_LRS",
             "allowedValues": [
                 "Standard_LRS",
                 "Standard_GRS",
                 "Standard_ZRS",
                 "Premium_LRS"
             ],
             "metadata": {
                 "displayName": "storage account type.",
                 "description": null
             }
         },
         "tagName": {
             "type": "string",
             "metadata": {
                 "displayName": "The name of the tag to provide the policy assignment.",
                 "description": null
             }
         },
         "tagValue": {
             "type": "string",
             "metadata": {
                 "displayName": "The value of the tag to provide the policy assignment.",
                 "description": null
             }
         },
         "contributors": {
             "type": "array",
             "metadata": {
                 "description": "List of AAD object IDs that is assigned Contributor role at the subscription",
                 "strongType": "PrincipalId"
             }
         },
         "owners": {
             "type": "array",
             "metadata": {
                 "description": "List of AAD object IDs that is assigned Owner role at the resource group",
                 "strongType": "PrincipalId"
             }
         }
      }
      
    • Příkaz Azure CLI

      # Login first with az login if not using Cloud Shell
      
      # Create the blueprint object
      az blueprint create \
         --name 'MyBlueprint' \
         --description 'This blueprint sets tag policy and role assignment on the subscription, creates a ResourceGroup, and deploys a resource template and role assignment to that ResourceGroup.' \
         --parameters blueprintparms.json
      

      Poznámka:

      Při importu definic podrobného plánu použijte název souboru blueprint.json . Tento název souboru se používá při volání příkazu az blueprint import.

      Objekt podrobného plánu se ve výchozím nastavení vytvoří ve výchozím předplatném. Chcete-li zadat skupinu pro správu, použijte parametr managementgroup. Pokud chcete zadat předplatné, použijte parametr subscription.

  2. Přidejte do definice skupinu prostředků artefaktů úložiště.

    az blueprint resource-group add \
       --blueprint-name 'MyBlueprint' \
       --artifact-name 'storageRG' \
       --description 'Contains the resource template deployment and a role assignment.'
    
  3. Přidejte přiřazení role v předplatném. V následujícím příkladu jsou hlavní identity udělené zadanou rolí nakonfigurovány na parametr, který je nastaven během přiřazení podrobného plánu. V tomto příkladu Contributor se používá předdefinovaná role s identifikátorem GUID b24988ac-6180-42a0-ab88-20f7382dd24c.

    az blueprint artifact role create \
       --blueprint-name 'MyBlueprint' \
       --artifact-name 'roleContributor' \
       --role-definition-id '/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c' \
       --principal-ids "[parameters('contributors')]"
    
  4. Přidejte přiřazení zásad v předplatném. Tento příklad používá Apply tag and its default value to resource groups předdefinované zásady s identifikátorem GUID 49c88fc8-6fd1-46fd-a676-f12d1d3a4c71.

    • Soubor JSON – artifacts\policyTags.json

      {
         "tagName": {
            "value": "[parameters('tagName')]"
         },
         "tagValue": {
            "value": "[parameters('tagValue')]"
         }
      }
      
    • Příkaz Azure CLI

      az blueprint artifact policy create \
         --blueprint-name 'MyBlueprint' \
         --artifact-name 'policyTags' \
         --policy-definition-id '/providers/Microsoft.Authorization/policyDefinitions/49c88fc8-6fd1-46fd-a676-f12d1d3a4c71' \
         --display-name 'Apply tag and its default value to resource groups' \
         --description 'Apply tag and its default value to resource groups' \
         --parameters artifacts\policyTags.json
      

      Poznámka:

      Při použití az blueprint na Macu nahraďte \/ hodnotami parametrů, které obsahují cestu. V tomto případě se hodnota pro parameters hodnotu stane artifacts/policyTags.json.

  5. Přidejte další přiřazení zásad pro značku úložiště (opětovným použitím storageAccountType_ parameter) v předplatném. Tento další artefakt přiřazené zásady ukazuje, že parametr definovaný v podrobném plánu může používat více artefaktů. V tomto příkladu storageAccountType použijete k nastavení značky ve skupině prostředků. Tato hodnota poskytuje informace o účtu úložiště, který vytvoříte v dalším kroku. Tento příklad používá Apply tag and its default value to resource groups předdefinované zásady s identifikátorem GUID 49c88fc8-6fd1-46fd-a676-f12d1d3a4c71.

    • Soubor JSON – artifacts\policyStorageTags.json

      {
         "tagName": {
            "value": "StorageType"
         },
         "tagValue": {
            "value": "[parameters('storageAccountType')]"
         }
      }
      
    • Příkaz Azure CLI

      az blueprint artifact policy create \
         --blueprint-name 'MyBlueprint' \
         --artifact-name 'policyStorageTags' \
         --policy-definition-id '/providers/Microsoft.Authorization/policyDefinitions/49c88fc8-6fd1-46fd-a676-f12d1d3a4c71' \
         --display-name 'Apply storage tag to resource group' \
         --description 'Apply storage tag and the parameter also used by the template to resource groups' \
         --parameters artifacts\policyStorageTags.json
      

      Poznámka:

      Při použití az blueprint na Macu nahraďte \/ hodnotami parametrů, které obsahují cestu. V tomto případě se hodnota pro parameters hodnotu stane artifacts/policyStorageTags.json.

  6. Přidejte šablonu do skupiny prostředků. Parametr template šablony ARM obsahuje normální komponenty JSON šablony. Šablona také znovu použije storageAccountTypeparametry , tagNamea tagValue podrobného plánu předáním každé šablony. Parametry podrobného plánu jsou k dispozici šabloně pomocí parametru parametersa uvnitř souboru JSON šablony, který pár klíč-hodnota použije k vložení hodnoty. Názvy parametrů podrobného plánu a šablony můžou být stejné.

    • Soubor šablony JSON ARM – artifacts\templateStorage.json

      {
          "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
          "contentVersion": "1.0.0.0",
          "parameters": {
              "storageAccountTypeFromBP": {
                  "type": "string",
                  "metadata": {
                      "description": "Storage Account type"
                  }
              },
              "tagNameFromBP": {
                  "type": "string",
                  "defaultValue": "NotSet",
                  "metadata": {
                      "description": "Tag name from blueprint"
                  }
              },
              "tagValueFromBP": {
                  "type": "string",
                  "defaultValue": "NotSet",
                  "metadata": {
                      "description": "Tag value from blueprint"
                  }
              }
          },
          "variables": {
              "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'standardsa')]"
          },
          "resources": [{
              "type": "Microsoft.Storage/storageAccounts",
              "name": "[variables('storageAccountName')]",
              "apiVersion": "2016-01-01",
              "tags": {
                  "[parameters('tagNameFromBP')]": "[parameters('tagValueFromBP')]"
              },
              "location": "[resourceGroup().location]",
              "sku": {
                  "name": "[parameters('storageAccountTypeFromBP')]"
              },
              "kind": "Storage",
              "properties": {}
          }],
          "outputs": {
              "storageAccountSku": {
                  "type": "string",
                  "value": "[variables('storageAccountName')]"
              }
          }
      }
      
    • Soubor parametrů šablony JSON ARM – artifacts\templateStorageParams.json

      {
         "storageAccountTypeFromBP": {
            "value": "[parameters('storageAccountType')]"
         },
         "tagNameFromBP": {
            "value": "[parameters('tagName')]"
         },
         "tagValueFromBP": {
            "value": "[parameters('tagValue')]"
         }
      }
      
    • Příkaz Azure CLI

      az blueprint artifact template create \
         --blueprint-name 'MyBlueprint' \
         --artifact-name 'templateStorage' \
         --template artifacts\templateStorage.json \
         --parameters artifacts\templateStorageParams.json \
         --resource-group-art 'storageRG'
      

      Poznámka:

      Při použití az blueprint na Macu nahraďte \/ hodnotami parametrů, které obsahují cestu. V tomto případě se hodnota pro template hodnotu stane artifacts/templateStorage.jsona parameters stane artifacts/templateStorageParams.jsonse .

  7. Přidejte přiřazení role do skupiny prostředků. Podobně jako u předchozí položky přiřazení role používá následující příklad identifikátor definice pro Owner roli a poskytuje jiný parametr než podrobný plán. V tomto příkladu Owner se používá předdefinovaná role s identifikátorem GUID 8e3af657-a8ff-443c-a75c-2fe8c4bcb635.

    az blueprint artifact role create \
       --blueprint-name 'MyBlueprint' \
       --artifact-name 'roleOwner' \
       --role-definition-id '/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635' \
       --principal-ids "[parameters('owners')]" \
       --resource-group-art 'storageRG'
    

Publikování podrobného plánu

Teď, když jste do podrobného plánu přidali artefakty, je čas ho publikovat. Publikování zpřístupní podrobný plán pro přiřazení k předplatnému.

az blueprint publish --blueprint-name 'MyBlueprint' --version '{BlueprintVersion}'

Hodnota {BlueprintVersion} je řetězec písmen, číslic a pomlček (bez mezer nebo jiných speciálních znaků). Maximální délka je 20 znaků. Použijte něco jedinečného a informativního, například v20200605-135541.

Přiřazení podrobného plánu

Po publikování podrobného plánu pomocí Azure CLI je možné ho přiřadit předplatnému. Přiřaďte podrobný plán, který jste vytvořili, k jednomu z předplatných v hierarchii skupin pro správu. Pokud se podrobný plán uloží do předplatného, můžete ho přiřadit jenom k ho. Parametr blueprint-name určuje podrobný plán, který se má přiřadit. Pokud chcete zadat nameparametry , , location, identitylocka blueprint parametry, použijte v az blueprint assignment create příkazu odpovídající parametry Azure CLI nebo je zadejte do souboru JSON parametrů.

  1. Spusťte nasazení podrobného plánu tím, že ho přiřadíte k předplatnému. Vzhledem k tomu, že parametry contributorsowners vyžadují udělení přiřazení role pole objectIds objektů zabezpečení, použijte rozhraní Azure Active Directory Graph API ke shromažďování objectIds informací o použití ve parameters vašich vlastních uživatelích, skupinách nebo instančních objektech.

    • Soubor JSON – blueprintAssignment.json

      {
         "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"
             ]
         }
      }
      
    • Příkaz Azure CLI

      az blueprint assignment create \
         --name 'assignMyBlueprint' \
         --location 'westus' \
         --resource-group-value artifact_name=storageRG name=StorageAccount location=eastus \
         --parameters blueprintAssignment.json
      
    • Spravovaná identita přiřazená uživatelem

      Přiřazení podrobného plánu může také použít spravovanou identitu přiřazenou uživatelem. V tomto případě identity-type je parametr nastaven na UserAssigneda user-assigned-identities parametr určuje identitu. Nahraďte {userIdentity} názvem spravované identity přiřazené uživatelem.

      az blueprint assignment create \
         --name 'assignMyBlueprint' \
         --location 'westus' \
         --identity-type UserAssigned \
         --user-assigned-identities {userIdentity} \
         --resource-group-value artifact_name=storageRG name=StorageAccount location=eastus \
         --parameters blueprintAssignment.json
      

      Spravovaná identita přiřazená uživatelem může být v libovolném předplatném a skupině prostředků, ke které má uživatel přiřazení podrobného plánu oprávnění.

      Důležité

      Azure Blueprints nespravuje spravovanou identitu přiřazenou uživatelem. Uživatelé zodpovídají za přiřazení dostatečných rolí a oprávnění nebo přiřazení podrobného plánu selže.

Vyčištění prostředků

Podrobný plán můžete odebrat z předplatného. Odebrání se často provádí v případě, že už nepotřebujete prostředky artefaktů. Po odebrání podrobného plánu zůstanou přiřazené artefakty, které byly jeho součástí. Přiřazení podrobného plánu odeberete pomocí az blueprint assignment delete příkazu:

az blueprint assignment delete --name 'assignMyBlueprint'

Další kroky

V tomto rychlém startu jste vytvořili, přiřadili a odebrali podrobný plán pomocí Azure CLI. Další informace o Azure Blueprints najdete v článku o životním cyklu podrobného plánu.