Hozzárendelések kezelése a PowerShell-lel
Fontos
2026. július 11-én a tervek (előzetes verzió) elavultak lesznek. Migrálja a meglévő tervdefiníciókat és -hozzárendeléseket sablonspecifikációkba és üzembehelyezési vermekbe. A tervösszetevőket ARM JSON-sablonokká vagy Bicep-fájlokká kell konvertálni az üzembehelyezési veremek definiálásához. Az összetevők ARM-erőforrásként való létrehozásának módjáról az alábbiakban olvashat:
A terv-hozzárendelések az Az.Blueprint Azure PowerShell modullal kezelhetők. A modul támogatja a hozzárendelések lekérését, létrehozását, frissítését és eltávolítását. A modul a meglévő tervdefiníciók részleteit is lekérheti. Ez a cikk bemutatja, hogyan telepítheti a modult, és hogyan kezdheti el használni.
Az Az.Blueprint modul hozzáadása
Ahhoz, hogy Azure PowerShell kezelhesse a tervhozzárendeléseket, hozzá kell adnia a modult. Ez a modul a helyileg telepített PowerShell-lel, az Azure Cloud Shell vagy a Azure PowerShell Docker-rendszerképpel használható.
Alapszintű követelmények
Az Azure Blueprints modulhoz a következő szoftver szükséges:
- Azure PowerShell 1.5.0-s vagy újabb. Ha még nincs telepítve, kövesse ezeket az utasításokat.
- PowerShellGet 2.0.1-es vagy újabb verzió. Ha nincs telepítve vagy frissítve, kövesse ezeket az utasításokat.
A modul telepítése
A PowerShellHez készült Azure Blueprints modul az Az.Blueprint.
Futtassa a következő parancsot egy rendszergazdai PowerShell-parancssorból:
# Install the Azure Blueprints module from PowerShell Gallery Install-Module -Name Az.Blueprint
Megjegyzés
Ha az Az.Accounts már telepítve van, előfordulhat, hogy a telepítés kényszerítéséhez szükséges
-AllowClobber
.Győződjön meg arról, hogy a modul importálása megtörtént, és a megfelelő verzió (0.2.6):
# Get a list of commands for the imported Az.Blueprint module Get-Command -Module 'Az.Blueprint' -CommandType 'Cmdlet'
Tervdefiníciók lekérése
A hozzárendelések használatának első lépése gyakran egy tervdefinícióra mutató hivatkozás.
A Get-AzBlueprint
parancsmag egy vagy több tervdefiníciót kap. A parancsmag lekérheti a tervdefiníciókat egy olyan felügyeleti csoporttól vagy előfizetésből, amely a -ManagementGroupId {mgId}
következővel rendelkezik -SubscriptionId {subId}
: . A Név paraméter kap egy tervdefiníciót, de a ManagementGroupId vagy az SubscriptionId azonosítóval kell használni.
A verzió a Name ( Név ) használatával pontosabban meghatározható, hogy a rendszer melyik tervdefiníciót adja vissza.
A Verzió helyett a kapcsoló -LatestPublished
a legutóbb közzétett verziót fogja.
Az alábbi példa a Get-AzBlueprint
"101-blueprints-definition-subscription" nevű tervdefiníció összes verzióját lekéri egy adott előfizetésből, amely a következő néven {subId}
jelenik meg:
# 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
A több verziót tartalmazó tervdefiníciók példakimenete a következőképpen néz ki:
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
A tervdefiníció tervparaméterei bővíthetők további információk biztosításához.
$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
Terv-hozzárendelések lekérése
Ha a terv hozzárendelése már létezik, a parancsmaggal Get-AzBlueprintAssignment
hivatkozhat rá. A parancsmag opcionális paraméterként veszi fel az SubscriptionId és a Name azonosítót. Ha nincs megadva subscriptionId , a rendszer az aktuális előfizetési környezetet használja.
Az alábbi példa egy "Assignment-lock-resource-groups" nevű terv-hozzárendelés lekérésére szolgál Get-AzBlueprintAssignment
egy adott előfizetésből, amely a következő néven {subId}
jelenik meg:
# 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
A terv-hozzárendelések példakimenete a következőképpen néz ki:
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
Terv-hozzárendelések létrehozása
Ha a terv hozzárendelése még nem létezik, létrehozhatja a New-AzBlueprintAssignment
parancsmaggal. Ez a parancsmag a következő paramétereket használja:
Név [kötelező]
- Megadja a terv-hozzárendelés nevét
- Egyedinek kell lennie, és még nem létezik az SubscriptionId-ben
Terv [kötelező]
- Meghatározza a hozzárendelni kívánt tervdefiníciót
- A
Get-AzBlueprint
hivatkozási objektum lekérése
Hely [kötelező]
- A rendszer által hozzárendelt felügyelt identitás és előfizetés üzembe helyezési objektumának régióját adja meg a következő helyen:
Előfizetés (nem kötelező)
- Meghatározza azt az előfizetést, amelybe a hozzárendelés telepítve van
- Ha nincs megadva, az alapértelmezett érték az aktuális előfizetési környezethez
Zárolás (nem kötelező)
- Meghatározza az üzembe helyezett erőforrásokhoz használandó terverőforrás-zárolást
- Támogatott beállítások: Nincs, AllResourcesReadOnly, AllResourcesDoNotDelete
- Ha nincs megadva, az alapértelmezett érték a Nincs
SystemAssignedIdentity (nem kötelező)
- Válassza ki, hogy létrehoz-e egy rendszer által hozzárendelt felügyelt identitást a hozzárendeléshez, és üzembe szeretné helyezni az erőforrásokat
- Az "identity" paraméterkészlet alapértelmezett értéke
- A UserAssignedIdentity nem használható
UserAssignedIdentity (nem kötelező)
- Megadja a hozzárendeléshez és az erőforrások üzembe helyezéséhez használandó, felhasználó által hozzárendelt felügyelt identitást
- Az "identity" paraméterkészlet része
- A SystemAssignedIdentity nem használható
Paraméter (nem kötelező)
Kulcs-/értékpárok kivonattáblájaa terv-hozzárendelés dinamikus paramétereinek beállításához
A dinamikus paraméterek alapértelmezett értéke a definícióban szereplő defaultValue
Ha egy paraméter nincs megadva, és nem rendelkezik defaultValue értékkel, a paraméter nem választható
Megjegyzés
A paraméter nem támogatja a secureStrings használatát.
ResourceGroupParameter (nem kötelező)
- Erőforráscsoport-összetevők kivonattáblája
- Minden erőforráscsoport-összetevő helyőrzője kulcs-érték párokkal rendelkezik a Név és hely dinamikus beállításához az adott erőforráscsoport-összetevőn
- Ha egy erőforráscsoport-paraméter nincs megadva, és nem rendelkezik defaultValue értékkel, az erőforráscsoport paramétere nem választható
AssignmentFile (nem kötelező)
- Terv-hozzárendelés JSON-fájlképének elérési útja
- Ez a paraméter egy Olyan PowerShell-paraméterkészlet része, amely csak a Név, a Terv és az Előfizetési azonosító, valamint a gyakori paramétereket tartalmazza.
1. példa: Paraméterek megadása
Az alábbi példa létrehoz egy új hozzárendelést a "my-blueprint" tervdefiníció "1.1"-es verziójához a következővel Get-AzBlueprint
: , a felügyelt identitás és a hozzárendelési objektum helyét "westus2" értékre állítja, zárolja az erőforrásokat az AllResourcesReadOnly paranccsal, és beállítja a Paraméter és a ResourceGroupParameter kivonattábláit az adott előfizetésben a következő módon {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
A terv-hozzárendelés létrehozására szolgáló példakimenet a következőképpen néz ki:
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
2. példa: JSON-hozzárendelés-definíciós fájl használata
Az alábbi példa majdnem ugyanazt a hozzárendelést hozza létre, mint az 1. példa. Ahelyett, hogy paramétereket ad a parancsmagnak, a példa egy JSON-hozzárendelésdefiníciós fájl és a AssignmentFile paraméter használatát mutatja be. Emellett a kizártPrincipals tulajdonság a zárolások részeként van konfigurálva. A kizártPrincipalshoz nincs PowerShell-paraméter, és a tulajdonság csak a JSON-hozzárendelés definíciós fájljának beállításával konfigurálható.
{
"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'
Ha egy felhasználó által hozzárendelt felügyelt identitás JSON-hozzárendelés-definíciós fájljára kíváncsi, tekintse meg a kérelem törzsét a Példa: Hozzárendelés felhasználó által hozzárendelt felügyelt identitással a REST API-hoz című témakörben .
Terv-hozzárendelések frissítése
Néha szükség van egy már létrehozott terv-hozzárendelés frissítésére. A Set-AzBlueprintAssignment
parancsmag kezeli ezt a műveletet. A parancsmag ugyanazokat a paramétereket használja, mint a New-AzBlueprintAssignment
parancsmag, így a hozzárendelésen beállított összes paraméter frissíthető. A kivételek a Név, a Terv és az Előfizetési azonosító. Csak a megadott értékek frissülnek.
Ha tudni szeretné, hogy mi történik egy terv-hozzárendelés frissítésekor, tekintse meg a hozzárendelések frissítésére vonatkozó szabályokat.
Név [kötelező]
- Megadja a frissíteni kívánt terv-hozzárendelés nevét
- A frissítéshez használt hozzárendelés megkeresésére szolgál, nem pedig a hozzárendelés módosítására
Terv [kötelező]
- Meghatározza a terv-hozzárendelés tervdefinícióját
- A
Get-AzBlueprint
hivatkozási objektum lekérése - A frissítéshez használt hozzárendelés megkeresésére szolgál, nem pedig a hozzárendelés módosítására
Hely (nem kötelező)
- A rendszer által hozzárendelt felügyelt identitás és előfizetés üzembe helyezési objektumának régióját adja meg a következő helyen:
Előfizetés (nem kötelező)
- Meghatározza azt az előfizetést, amelybe a hozzárendelés telepítve van
- Ha nincs megadva, az alapértelmezett érték az aktuális előfizetési környezethez
- A frissítéshez használt hozzárendelés megkeresésére szolgál, nem pedig a hozzárendelés módosítására
Zárolás (nem kötelező)
- Meghatározza az üzembe helyezett erőforrásokhoz használandó terverőforrás-zárolást
- Támogatott beállítások: Nincs, AllResourcesReadOnly, AllResourcesDoNotDelete
SystemAssignedIdentity (nem kötelező)
- Válassza ki, hogy létrehoz-e egy rendszer által hozzárendelt felügyelt identitást a hozzárendeléshez, és üzembe szeretné helyezni az erőforrásokat
- Az "identity" paraméterkészlet alapértelmezett értéke
- A UserAssignedIdentity nem használható
UserAssignedIdentity (nem kötelező)
- Megadja a hozzárendeléshez és az erőforrások üzembe helyezéséhez használandó, felhasználó által hozzárendelt felügyelt identitást
- Az "identity" paraméterkészlet része
- A SystemAssignedIdentity nem használható
Paraméter (nem kötelező)
Kulcs-/értékpárok kivonattáblájaa terv-hozzárendelés dinamikus paramétereinek beállításához
A dinamikus paraméterek alapértelmezett értéke a definícióban szereplő defaultValue
Ha egy paraméter nincs megadva, és nem rendelkezik defaultValue értékkel, a paraméter nem választható
Megjegyzés
A paraméter nem támogatja a secureStrings használatát.
ResourceGroupParameter (nem kötelező)
- Erőforráscsoport-összetevők kivonattáblája
- Minden erőforráscsoport-összetevő helyőrzője kulcs-érték párokkal rendelkezik a Név és hely dinamikus beállításához az adott erőforráscsoport-összetevőn
- Ha egy erőforráscsoport-paraméter nincs megadva, és nem rendelkezik defaultValue értékkel, az erőforráscsoport paramétere nem választható
Az alábbi példa frissíti a "my-blueprint" tervdefiníció "1.1" verziójának hozzárendelését a zárolási mód módosításával Get-AzBlueprint
:
# 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
A terv-hozzárendelés létrehozására szolgáló példakimenet a következőképpen néz ki:
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
Terv-hozzárendelések eltávolítása
Amikor el kell távolítani egy terv-hozzárendelést, a parancsmag kezeli ezt a Remove-AzBlueprintAssignment
műveletet. A parancsmag a Név vagy az InputObject parancsmaggal adja meg, hogy melyik terv-hozzárendelést szeretné eltávolítani.
A SubscriptionIdmegadása kötelező , és minden esetben meg kell adni.
Az alábbi példa lekéri egy meglévő terv-hozzárendelést a következővel Get-AzBlueprintAssignment
, majd eltávolítja azt a megadott {subId}
előfizetésből:
# 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}'
Mintakód
Az összes lépést összehozva az alábbi példa lekéri a tervdefiníciót, majd létrehoz, frissít és eltávolít egy terv-hozzárendelést az adott előfizetésben, amely a következőként {subId}
jelenik meg:
# 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
További lépések
- Tudnivalók a tervek életciklusáról.
- A statikus és dinamikus paraméterek használatának elsajátítása.
- A tervekkel kapcsolatos műveleti sorrend testreszabásának elsajátítása.
- A tervek erőforrás-zárolásának alkalmazásával kapcsolatos részletek.
- A tervek hozzárendelése során felmerülő problémák megoldása általános hibaelhárítással.