Rychlý start: Definování a přiřazení podrobného plánu Azure pomocí rozhraní REST API
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.
- Zaregistrujte
Microsoft.Blueprint
poskytovatele prostředků. Pokyny najdete v tématu Poskytovatelé a typy prostředků.
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.
Začínáme s rozhraním REST API
Pokud rozhraní REST API neznáte, začněte tím, že si prohlédnete referenční informace k rozhraní Azure REST API, konkrétně části týkající se identifikátoru URI požadavku a textu požadavku. V tomto rychlém startu se tyto koncepty používají k poskytování pokynů pro práci s Azure Blueprints a předpokládá jejich pracovní znalosti. Nástroje, jako je ARMClient , můžou automaticky zpracovávat autorizaci a doporučuje se pro začátečníky.
Specifikace služby Azure Blueprints najdete v rozhraní REST API služby Azure Blueprints.
REST API a PowerShell
Pokud nemáte nástroj na volání REST API, můžete k zadání těchto pokynů použít PowerShell. Následuje ukázková hlavička pro ověřování v Azure. Vygenerujte ověřovací hlavičku, někdy označovanou jako nosný token, a zadejte identifikátor URI rozhraní REST API pro připojení s libovolnými parametry nebo parametrem Request Body
:
# Log in first with Connect-AzAccount if not using Cloud Shell
$azContext = Get-AzContext
$azProfile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile
$profileClient = New-Object -TypeName Microsoft.Azure.Commands.ResourceManager.Common.RMProfileClient -ArgumentList ($azProfile)
$token = $profileClient.AcquireAccessToken($azContext.Subscription.TenantId)
$authHeader = @{
'Content-Type'='application/json'
'Authorization'='Bearer ' + $token.AccessToken
}
# Invoke the REST API
$restUri = 'https://management.azure.com/subscriptions/{subscriptionId}?api-version=2020-01-01'
$response = Invoke-RestMethod -Uri $restUri -Method Get -Headers $authHeader
Nahraďte {subscriptionId}
předchozí $restUri
proměnnou, abyste získali informace o vašem předplatném. Proměnná $response
obsahuje výsledek Invoke-RestMethod
rutiny, kterou můžete parsovat s rutinami, jako je ConvertFrom-Json. Pokud koncový bod služby REST API očekává Request Body
, zadejte proměnnou ve formátu JSON parametru -Body
Invoke-RestMethod
.
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í rozhraní REST API 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.
V každém identifikátoru URI rozhraní REST API nahraďte následující proměnné vlastními hodnotami:
{YourMG}
– Nahraďte ID vaší skupiny pro správu.{subscriptionId}
– Nahraďte ID předplatného.
Poznámka:
Podrobné plány můžete vytvářet také na úrovni předplatného. Další informace najdete v tématu Vytvoření podrobného plánu v příkladu předplatného.
Vytvořte počáteční objekt blueprint. Obsahuje
Request Body
vlastnosti podrobného plánu, všechny skupiny prostředků, které se mají vytvořit, a 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.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 sets tag policy and role assignment on the subscription, creates a ResourceGroup, and deploys a resource template and role assignment to that ResourceGroup.", "targetScope": "subscription", "parameters": { "storageAccountType": { "type": "string", "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" } }, "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." } } } }
Přidejte přiřazení role v předplatném. Definuje
Request Body
druh artefaktu, vlastnosti odpovídají identifikátoru definice role a hlavní identity se předávají jako pole hodnot. 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říkladuContributor
se používá předdefinovaná role s identifikátorem GUIDb24988ac-6180-42a0-ab88-20f7382dd24c
.Identifikátor URI v REST API
PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/artifacts/roleContributor?api-version=2018-11-01-preview
Text požadavku
{ "kind": "roleAssignment", "properties": { "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c", "principalIds": "[parameters('contributors')]" } }
Přidejte přiřazení zásad v předplatném. Definuje
Request Body
druh artefaktu, vlastnosti odpovídají definici zásady nebo iniciativy a přiřazení zásady je nakonfigurováno tak, aby používalo definované parametry podrobného plánu během přiřazení podrobného plánu. 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
.Identifikátor URI v REST API
PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/artifacts/policyTags?api-version=2018-11-01-preview
Text požadavku
{ "kind": "policyAssignment", "properties": { "description": "Apply tag and its default value to resource groups", "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/49c88fc8-6fd1-46fd-a676-f12d1d3a4c71", "parameters": { "tagName": { "value": "[parameters('tagName')]" }, "tagValue": { "value": "[parameters('tagValue')]" } } } }
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
.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": "[parameters('storageAccountType')]" } } } }
Přidejte šablonu do skupiny prostředků. Šablona
Request Body
ARM obsahuje normální komponentu JSON šablony a definuje cílovou skupinu prostředků pomocíproperties.resourceGroup
. Š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ě definovánímproperties.parameters
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é, ale liší se zde, aby bylo možné znázornit, jak jednotlivé předávají z podrobného plánu do artefaktu šablony.Identifikátor URI v REST API
PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/artifacts/templateStorage?api-version=2018-11-01-preview
Text požadavku
{ "kind": "template", "properties": { "template": { "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "storageAccountTypeFromBP": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_ZRS", "Premium_LRS" ], "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": "[resourceGroups('storageRG').location]", "sku": { "name": "[parameters('storageAccountTypeFromBP')]" }, "kind": "Storage", "properties": {} }], "outputs": { "storageAccountSku": { "type": "string", "value": "[variables('storageAccountName')]" } } }, "resourceGroup": "storageRG", "parameters": { "storageAccountTypeFromBP": { "value": "[parameters('storageAccountType')]" }, "tagNameFromBP": { "value": "[parameters('tagName')]" }, "tagValueFromBP": { "value": "[parameters('tagValue')]" } } } }
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
.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')]" } }
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.
Identifikátor URI v REST API
PUT https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint/versions/{BlueprintVersion}?api-version=2018-11-01-preview
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 v20180622-135541
.
Přiřazení podrobného plánu
Po publikování podrobného plánu pomocí rozhraní REST API 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. Určuje Request Body
podrobný plán, který se má přiřadit, a poskytne název a umístění pro všechny skupiny prostředků v definici podrobného plánu. Request Body
poskytuje také všechny parametry definované v podrobném plánu a používané jedním nebo více připojenými artefakty.
V každém identifikátoru URI rozhraní REST API nahraďte následující proměnné vlastními hodnotami:
{tenantId}
– Nahraďte ID tenanta.{YourMG}
– Nahraďte ID vaší skupiny pro správu.{subscriptionId}
– Nahraďte ID předplatného.
Zadejte instanční objekt Azure Blueprints roli
Owner
v cílovém předplatném. Jedná se oAppId
statickou (f71766dc-90d9-4b7d-bd9d-4499c4331c3f
), ale ID instančního objektu se liší podle tenanta. K vyžádání podrobností pro vašeho tenanta použijte následující rozhraní REST API. Používá rozhraní Graph API služby Azure Active Directory, které má jinou autorizaci.Identifikátor URI v REST API
GET https://graph.windows.net/{tenantId}/servicePrincipals?api-version=1.6&$filter=appId eq 'f71766dc-90d9-4b7d-bd9d-4499c4331c3f'
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í veRequest Body
vašich vlastních uživatelích, skupinách nebo instančních objektech.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" }
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ě se
identity
část textu požadavku změní následujícím způsobem. Nahraďte{yourRG}
název{userIdentity}
vaší skupiny prostředků a názvem spravované identity přiřazené uživatelem."identity": { "type": "userAssigned", "tenantId": "{tenantId}", "userAssignedIdentities": { "/subscriptions/{subscriptionId}/resourceGroups/{yourRG}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{userIdentity}": {} } },
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ů
Zrušení přiřazení podrobného plánu
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í. K odebrání přiřazeného podrobného plánu použijte následující operaci REST API:
Identifikátor URI v REST API
DELETE https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Blueprint/blueprintAssignments/assignMyBlueprint?api-version=2018-11-01-preview
Odstranění podrobného plánu
K odebrání samotného podrobného plánu použijte následující operaci REST API:
Identifikátor URI v REST API
DELETE https://management.azure.com/providers/Microsoft.Management/managementGroups/{YourMG}/providers/Microsoft.Blueprint/blueprints/MyBlueprint?api-version=2018-11-01-preview
Další kroky
V tomto rychlém startu jste vytvořili, přiřadili a odebrali podrobný plán pomocí rozhraní REST API. Další informace o Azure Blueprints najdete v článku o životním cyklu podrobného plánu.