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:

A modul telepítése

A PowerShellHez készült Azure Blueprints modul az Az.Blueprint.

  1. 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 .

  2. 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ő)

  • 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ő)

  • 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