Správa přiřazení pomocí PowerShellu
Důležité
11. července 2026 budou podrobné plány (Preview) zastaralé. Migrujte existující definice a přiřazení podrobných plánů do specifikací šablon a zásobníků nasazení. Artefakty podrobného plánu se mají převést na šablony JSON ARM nebo soubory Bicep, které se používají k definování zásobníků nasazení. Informace o tom, jak vytvořit artefakt jako prostředek ARM, najdete tady:
Přiřazení podrobného plánu je možné spravovat pomocí modulu Az.Blueprint Azure PowerShell. Modul podporuje načítání, vytváření, aktualizaci a odebírání přiřazení. Modul může také načíst podrobnosti o existujících definicích podrobných plánů. Tento článek popisuje, jak modul nainstalovat a začít ho používat.
Pokud chcete Azure PowerShell povolit správu přiřazení podrobných plánů, je nutné přidat modul. Tento modul je možné použít s místně nainstalovaným Prostředím PowerShell, s Azure Cloud Shell nebo s imagí Azure PowerShell Dockeru.
Modul Azure Blueprints vyžaduje následující software:
- Azure PowerShell 1.5.0 nebo vyšší. Pokud ještě není nainstalovaný, postupujte podle těchto pokynů.
- PowerShellGet 2.0.1 nebo novější. Pokud není nainstalovaný nebo aktualizovaný, postupujte podle těchto pokynů.
Modul Azure Blueprints pro PowerShell je Az.Blueprint.
Na příkazovém řádku PowerShellu pro správu spusťte následující příkaz:
# Install the Azure Blueprints module from PowerShell Gallery Install-Module -Name Az.Blueprint
Poznámka
Pokud je az.Accounts už nainstalovaný, může být nutné použít
-AllowClobber
k vynucení instalace.Ověřte, že se modul naimportoval a má správnou verzi (0.2.6):
# Get a list of commands for the imported Az.Blueprint module Get-Command -Module 'Az.Blueprint' -CommandType 'Cmdlet'
Prvním krokem při práci s přiřazením je často získání odkazu na definici podrobného plánu.
Rutina Get-AzBlueprint
získá jednu nebo více definic podrobného plánu. Rutina může získat definice podrobného plánu ze skupiny pro správu nebo -ManagementGroupId {mgId}
předplatného pomocí -SubscriptionId {subId}
. Parametr Name získá definici podrobného plánu, ale musí se použít s ManagementGroupId nebo SubscriptionId.
Verzi je možné použít s názvem , aby byla explicitnější o tom, která definice podrobného plánu se vrátí. Místo verze přepínač -LatestPublished
uchopí naposledy publikovanou verzi.
Následující příklad používá Get-AzBlueprint
k získání všech verzí definice podrobného plánu s názvem "101-blueprints-definition-subscription" z konkrétního předplatného reprezentované jako {subId}
:
# Login first with Connect-AzAccount if not using Cloud Shell
# Get all versions of the blueprint definition in the specified subscription
$blueprints = Get-AzBlueprint -SubscriptionId '{subId}' -Name '101-blueprints-definition-subscription'
# Display the blueprint definition object
$blueprints
Příklad výstupu definice podrobného plánu s více verzemi vypadá takto:
Name : 101-blueprints-definition-subscription
Id : /subscriptions/{subId}/providers/Microsoft.Blueprint/blueprints/101
-blueprints-definition-subscription
DefinitionLocationId : {subId}
Versions : {1.0, 1.1}
TimeCreated : 2019-02-25
TargetScope : Subscription
Parameters : {storageAccount_storageAccountType, storageAccount_location,
allowedlocations_listOfAllowedLocations, [Usergrouporapplicationname]:Reader_RoleAssignmentName}
ResourceGroups : ResourceGroup
Parametry podrobného plánu v definici podrobného plánu je možné rozbalit a poskytnout tak další informace.
$blueprints.Parameters
Key Value
--- -----
storageAccount_storageAccountType Microsoft.Azure.Commands.Blueprint.Models.PSParameterDefinition
storageAccount_location Microsoft.Azure.Commands.Blueprint.Models.PSParameterDefinition
allowedlocations_listOfAllowedLocations Microsoft.Azure.Commands.Blueprint.Models.PSParameterDefinition
[Usergrouporapplicationname]:Reader_RoleAssignmentName Microsoft.Azure.Commands.Blueprint.Models.PSParameterDefinition
Pokud přiřazení podrobného plánu již existuje, můžete na něj získat odkaz pomocí rutiny Get-AzBlueprintAssignment
. Rutina přebírá id předplatného a název jako volitelné parametry. Pokud id předplatného není zadané, použije se aktuální kontext předplatného.
Následující příklad používá Get-AzBlueprintAssignment
k získání jednoho přiřazení podrobného plánu s názvem Assignment-lock-resource-groups z konkrétního předplatného reprezentované jako {subId}
:
# Login first with Connect-AzAccount if not using Cloud Shell
# Get the blueprint assignment in the specified subscription
$blueprintAssignment = Get-AzBlueprintAssignment -SubscriptionId '{subId}' -Name 'Assignment-lock-resource-groups'
# Display the blueprint assignment object
$blueprintAssignment
Příklad výstupu přiřazení podrobného plánu vypadá takto:
Name : Assignment-lock-resource-groups
Id : /subscriptions/{subId}/providers/Microsoft.Blueprint/blueprintAssignme
nts/Assignment-lock-resource-groups
Scope : /subscriptions/{subId}
LastModified : 2019-02-19
LockMode : AllResourcesReadOnly
ProvisioningState : Succeeded
Parameters :
ResourceGroups : ResourceGroup
Pokud přiřazení podrobného plánu ještě neexistuje, můžete ho vytvořit pomocí rutiny New-AzBlueprintAssignment
. Tato rutina používá následující parametry:
Název [povinné]
- Určuje název přiřazení podrobného plánu.
- Musí být jedinečný a v Id předplatného ještě neexistuje.
Podrobný plán [povinný]
- Určuje definici podrobného plánu, která se má přiřadit.
- Slouží k získání referenčního objektu.
Get-AzBlueprint
Umístění [povinné]
- Určuje oblast pro spravovanou identitu přiřazenou systémem a objekt nasazení předplatného, ve které se má vytvořit.
Předplatné (volitelné)
- Určuje předplatné, do které se přiřazení nasadí.
- Pokud není zadaný, ve výchozím nastavení se nastaví kontext aktuálního předplatného.
Zámek (volitelné)
- Definuje uzamčení prostředků podrobného plánu , které se má použít pro nasazené prostředky.
- Podporované možnosti: None, AllResourcesReadOnly, AllResourcesDoNotDelete
- Pokud není k dispozici, výchozí hodnota je Žádná.
SystemAssignedIdentity (volitelné)
- Výběrem vytvoříte spravovanou identitu přiřazenou systémem pro přiřazení a nasadíte prostředky.
- Výchozí pro sadu parametrů identity
- Nejde použít s userAssignedIdentity
UserAssignedIdentity (volitelné)
- Určuje spravovanou identitu přiřazenou uživatelem, která se má použít pro přiřazení a nasazení prostředků.
- Část sady parametrů identity
- Nejde použít s SystemAssignedIdentity
Parametr (volitelné)
Tabulka hodnot hash párů klíč/hodnota pro nastavení dynamických parametrů pro přiřazení podrobného plánu
Výchozí hodnota dynamického parametru je defaultValue v definici.
Pokud parametr není zadaný a nemá žádnou hodnotu defaultValue, parametr není volitelný.
Poznámka
Parametr nepodporuje secureStrings.
ResourceGroupParameter (volitelné)
- Tabulka hodnot hash artefaktů skupin prostředků
- Každý zástupný symbol artefaktu skupiny prostředků obsahuje páry klíč/hodnota pro dynamické nastavení názvu a umístění v artefaktu dané skupiny prostředků.
- Pokud parametr skupiny prostředků není zadaný a nemá žádnou hodnotu defaultValue, parametr skupiny prostředků není volitelný.
AssignmentFile (volitelné)
- Cesta k souboru JSON reprezentace přiřazení podrobného plánu
- Tento parametr je součástí sady parametrů PowerShellu, která obsahuje jenom name, blueprint a SubscriptionId a společné parametry.
Následující příklad vytvoří nové přiřazení verze 1.1 definice podrobného plánu my-blueprint načtené pomocí Get-AzBlueprint
, nastaví spravovanou identitu a umístění objektu přiřazení na westus2, uzamkne prostředky pomocí AllResourcesReadOnly a nastaví tabulky hash pro Parametr i ResourceGroupParameter u konkrétního předplatného reprezentovaného jako {subId}
:
# Login first with Connect-AzAccount if not using Cloud Shell
# Get version '1.1' of the blueprint definition in the specified subscription
$bpDefinition = Get-AzBlueprint -SubscriptionId '{subId}' -Name 'my-blueprint' -Version '1.1'
# Create the hash table for Parameters
$bpParameters = @{storageAccount_storageAccountType='Standard_GRS'}
# Create the hash table for ResourceGroupParameters
# ResourceGroup is the resource group artifact placeholder name
$bpRGParameters = @{ResourceGroup=@{name='storage_rg';location='westus2'}}
# Create the new blueprint assignment
$bpAssignment = New-AzBlueprintAssignment -Name 'my-blueprint-assignment' -Blueprint $bpDefinition `
-SubscriptionId '{subId}' -Location 'westus2' -Lock AllResourcesReadOnly `
-Parameter $bpParameters -ResourceGroupParameter $bpRGParameters
Ukázkový výstup pro vytvoření přiřazení podrobného plánu vypadá takto:
Name : my-blueprint-assignment
Id : /subscriptions/{subId}/providers/Microsoft.Blueprint/blueprintAssi
gnments/my-blueprint-assignment
Scope : /subscriptions/{subId}
LastModified : 2019-03-13
LockMode : AllResourcesReadOnly
ProvisioningState : Creating
Parameters : {storageAccount_storageAccountType}
ResourceGroups : ResourceGroup
Následující příklad vytvoří téměř stejné přiřazení jako příklad 1. Místo předání parametrů rutině ukazuje příklad použití souboru definice přiřazení JSON a parametru AssignmentFile . Vlastnost excludedPrincipals je navíc nakonfigurována jako součást zámků. Pro excludedPrincipals neexistuje parametr PowerShellu a vlastnost se dá nakonfigurovat pouze nastavením prostřednictvím souboru definice přiřazení JSON.
{
"identity": {
"type": "SystemAssigned"
},
"location": "westus2",
"properties": {
"description": "Assignment of the 101-blueprint-definition-subscription",
"blueprintId": "/subscriptions/{subId}/providers/Microsoft.Blueprint/blueprints/101-blueprints-definition-subscription",
"locks": {
"mode": "AllResourcesReadOnly",
"excludedPrincipals": [
"7be2f100-3af5-4c15-bcb7-27ee43784a1f",
"38833b56-194d-420b-90ce-cff578296714"
]
},
"parameters": {
"storageAccount_storageAccountType": {
"value": "Standard_GRS"
}
},
"resourceGroups": {
"ResourceGroup": {
"name": "storage_rg",
"location": "westus2"
}
}
}
}
# Login first with Connect-AzAccount if not using Cloud Shell
# Create the new blueprint assignment
$bpAssignment = New-AzBlueprintAssignment -Name 'my-blueprint-assignment' -SubscriptionId '{subId}' `
-AssignmentFile '.\assignment.json'
Příklad souboru definice přiřazení JSON pro spravovanou identitu přiřazenou uživatelem najdete v textu požadavku v tématu Příklad: Přiřazení spravované identity přiřazené uživatelem pro rozhraní REST API.
Někdy je potřeba aktualizovat přiřazení podrobného plánu, které už bylo vytvořeno. Rutina Set-AzBlueprintAssignment
tuto akci zpracuje. Rutina přijímá většinu stejných parametrů jako rutina New-AzBlueprintAssignment
a umožňuje aktualizaci všeho, co bylo u přiřazení nastaveno. Mezi výjimky patří Název, Podrobný plán a Id předplatného. Aktualizují se jenom zadané hodnoty.
Pokud chcete zjistit, co se stane při aktualizaci přiřazení podrobného plánu, přečtěte si pravidla pro aktualizaci přiřazení.
Název [povinné]
- Určuje název přiřazení podrobného plánu, který se má aktualizovat.
- Slouží k vyhledání přiřazení, které se má aktualizovat, nikoli ke změně přiřazení.
Podrobný plán [povinný]
- Určuje definici podrobného plánu přiřazení podrobného plánu.
- Slouží k získání referenčního objektu.
Get-AzBlueprint
- Slouží k vyhledání přiřazení, které se má aktualizovat, nikoli ke změně přiřazení.
Umístění (volitelné)
- Určuje oblast pro spravovanou identitu přiřazenou systémem a objekt nasazení předplatného, ve které se má vytvořit.
Předplatné (volitelné)
- Určuje předplatné, do které se přiřazení nasadí.
- Pokud není zadaný, ve výchozím nastavení se nastaví kontext aktuálního předplatného.
- Slouží k vyhledání přiřazení, které se má aktualizovat, nikoli ke změně přiřazení.
Zámek (volitelné)
- Definuje uzamčení prostředků podrobného plánu , které se má použít pro nasazené prostředky.
- Podporované možnosti: None, AllResourcesReadOnly, AllResourcesDoNotDelete
SystemAssignedIdentity (volitelné)
- Výběrem vytvoříte spravovanou identitu přiřazenou systémem pro přiřazení a nasadíte prostředky.
- Výchozí pro sadu parametrů identity
- Nejde použít s userAssignedIdentity
UserAssignedIdentity (volitelné)
- Určuje spravovanou identitu přiřazenou uživatelem, která se má použít pro přiřazení a nasazení prostředků.
- Část sady parametrů identity
- Nejde použít s SystemAssignedIdentity
Parametr (volitelné)
Tabulka hodnot hash párů klíč/hodnota pro nastavení dynamických parametrů pro přiřazení podrobného plánu
Výchozí hodnota dynamického parametru je defaultValue v definici.
Pokud parametr není zadaný a nemá žádnou hodnotu defaultValue, parametr není volitelný.
Poznámka
Parametr nepodporuje secureStrings.
ResourceGroupParameter (volitelné)
- Tabulka hodnot hash artefaktů skupin prostředků
- Každý zástupný symbol artefaktu skupiny prostředků obsahuje páry klíč/hodnota pro dynamické nastavení názvu a umístění v artefaktu dané skupiny prostředků.
- Pokud parametr skupiny prostředků není zadaný a nemá žádnou hodnotu defaultValue, parametr skupiny prostředků není volitelný.
Následující příklad aktualizuje přiřazení verze 1.1 definice podrobného plánu my-blueprint načtené Get-AzBlueprint
změnou režimu uzamčení:
# Login first with Connect-AzAccount if not using Cloud Shell
# Get version '1.1' of the blueprint definition in the specified subscription
$bpDefinition = Get-AzBlueprint -SubscriptionId '{subId}' -Name 'my-blueprint' -Version '1.1'
# Update the existing blueprint assignment
$bpAssignment = Set-AzBlueprintAssignment -Name 'my-blueprint-assignment' -Blueprint $bpDefinition `
-SubscriptionId '{subId}' -Lock AllResourcesDoNotDelete
Ukázkový výstup pro vytvoření přiřazení podrobného plánu vypadá takto:
Name : my-blueprint-assignment
Id : /subscriptions/{subId}/providers/Microsoft.Blueprint/blueprintAssi
gnments/my-blueprint-assignment
Scope : /subscriptions/{subId}
LastModified : 2019-03-13
LockMode : AllResourcesDoNotDelete
ProvisioningState : Updating
Parameters : {storageAccount_storageAccountType}
ResourceGroups : ResourceGroup
Když nastane čas na odebrání přiřazení podrobného plánu, rutina Remove-AzBlueprintAssignment
tuto akci zpracuje. Rutina přijme název nebo InputObject a určí, které přiřazení podrobného plánu se má odebrat.
Id předplatného je povinné a musí být zadané ve všech případech.
Následující příklad načte existující přiřazení podrobného plánu pomocí Get-AzBlueprintAssignment
a pak ho odebere z konkrétního předplatného reprezentované jako {subId}
:
# Login first with Connect-AzAccount if not using Cloud Shell
# Get the blueprint assignment in the specified subscription
$blueprintAssignment = Get-AzBlueprintAssignment -Name 'Assignment-lock-resource-groups'
# Remove the existing blueprint assignment
Remove-AzBlueprintAssignment -InputObject $blueprintAssignment -SubscriptionId '{subId}'
Když všechny kroky spojíte dohromady, následující příklad získá definici podrobného plánu, pak vytvoří, aktualizuje a odebere přiřazení podrobného plánu v konkrétním předplatném reprezentované jako {subId}
:
# Login first with Connect-AzAccount if not using Cloud Shell
#region GetBlueprint
# Get version '1.1' of the blueprint definition in the specified subscription
$bpDefinition = Get-AzBlueprint -SubscriptionId '{subId}' -Name 'my-blueprint' -Version '1.1'
#endregion
#region CreateAssignment
# Create the hash table for Parameters
$bpParameters = @{storageAccount_storageAccountType='Standard_GRS'}
# Create the hash table for ResourceGroupParameters
# ResourceGroup is the resource group artifact placeholder name
$bpRGParameters = @{ResourceGroup=@{name='storage_rg';location='westus2'}}
# Create the new blueprint assignment
$bpAssignment = New-AzBlueprintAssignment -Name 'my-blueprint-assignment' -Blueprint $bpDefinition `
-SubscriptionId '{subId}' -Location 'westus2' -Lock AllResourcesReadOnly `
-Parameter $bpParameters -ResourceGroupParameter $bpRGParameters
#endregion CreateAssignment
# Wait for the blueprint assignment to finish deployment prior to the next steps
#region UpdateAssignment
# Update the existing blueprint assignment
$bpAssignment = Set-AzBlueprintAssignment -Name 'my-blueprint-assignment' -Blueprint $bpDefinition `
-SubscriptionId '{subId}' -Lock AllResourcesDoNotDelete
#endregion UpdateAssignment
# Wait for the blueprint assignment to finish deployment prior to the next steps
#region RemoveAssignment
# Remove the existing blueprint assignment
Remove-AzBlueprintAssignment -InputObject $bpAssignment -SubscriptionId '{subId}'
#endregion
- Další informace o životním cyklu podrobného plánu
- Principy použití statických a dynamických parametrů
- Další informace o přizpůsobení pořadí podrobných plánů
- Použití zamykání prostředků podrobného plánu
- Řešení potíží při přiřazení podrobného plánu – obecné řešení potíží