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. | |
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. | |
Zvolte tlačítko Cloud Shell v pruhu nabídky v pravém horním rohu webu Azure Portal. |
Použití Azure Cloud Shellu:
Spusťte Cloud Shell.
Výběrem tlačítka Kopírovat v bloku kódu (nebo bloku příkazů) zkopírujte kód nebo příkaz.
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.
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é.
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ů.
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
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.
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 parametrsubscription
.
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.'
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 GUIDb24988ac-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')]"
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 GUID49c88fc8-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 proparameters
hodnotu staneartifacts/policyTags.json
.
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říkladustorageAccountType
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 GUID49c88fc8-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 proparameters
hodnotu staneartifacts/policyStorageTags.json
.
Přidejte šablonu do skupiny prostředků. Parametr
template
šablony ARM obsahuje normální komponenty JSON šablony. Šablona také znovu použijestorageAccountType
parametry ,tagName
atagValue
podrobného plánu předáním každé šablony. Parametry podrobného plánu jsou k dispozici šabloně pomocí parametruparameters
a 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 protemplate
hodnotu staneartifacts/templateStorage.json
aparameters
staneartifacts/templateStorageParams.json
se .
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říkladuOwner
se používá předdefinovaná role s identifikátorem GUID8e3af657-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 name
parametry , , location
, identity
lock
a blueprint
parametry, použijte v az blueprint assignment create
příkazu odpovídající parametry Azure CLI nebo je zadejte do souboru JSON parametrů.
Spusťte nasazení podrobného plánu tím, že ho přiřadíte k předplatnému. Vzhledem k tomu, že parametry
contributors
owners
vyžadují udělení přiřazení role poleobjectIds
objektů zabezpečení, použijte rozhraní Azure Active Directory Graph API ke shromažďováníobjectIds
informací o použití veparameters
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 naUserAssigned
auser-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.