Aracılığıyla paylaş


PowerShell ile atamaları yönetme

Önemli

11 Temmuz 2026'da Blueprints (Önizleme) kullanım dışı bırakılacaktır. Mevcut şema tanımlarınızı ve atamalarınızı Şablon Belirtimleri ve Dağıtım Yığınlarına geçirin. Şema yapıtları ARM JSON şablonlarına veya dağıtım yığınlarını tanımlamak için kullanılan Bicep dosyalarına dönüştürülecek. Yapıtı ARM kaynağı olarak yazmayı öğrenmek için bkz:

Şema ataması Az.Blueprint Azure PowerShell modülü kullanılarak yönetilebilir. Modül atamaları getirme, oluşturma, güncelleştirme ve kaldırmayı destekler. Modül ayrıca mevcut şema tanımlarıyla ilgili ayrıntıları da getirebilir. Bu makalede modülün nasıl yükleneceği ve kullanmaya nasıl başleneceği açıklanır.

Az.Blueprint modülünü ekleme

Azure PowerShell şema atamalarını yönetmesini etkinleştirmek için modülün eklenmesi gerekir. Bu modül yerel olarak yüklenmiş PowerShell ile, Azure Cloud Shell ile veya Azure PowerShell Docker görüntüsüyle kullanılabilir.

Temel gereksinimler

Azure Blueprints modülü aşağıdaki yazılımları gerektirir:

  • Azure PowerShell 1.5.0 veya üzeri. Henüz yüklenmiş değilse, bu yönergeleri izleyin.
  • PowerShellGet 2.0.1 veya üzeri. Henüz yüklenmiş ve güncellenmiş değilse, bu yönergeleri izleyin.

Modülü yükleme

PowerShell için Azure Blueprints modülü Az.Blueprint modülüdür.

  1. Bir yönetim PowerShell isteminden aşağıdaki komutu çalıştırın:

    # Install the Azure Blueprints module from PowerShell Gallery
    Install-Module -Name Az.Blueprint
    

    Not

    Az.Accounts zaten yüklüyse, yüklemeyi zorlamak için kullanılması -AllowClobber gerekebilir.

  2. Modülün içeri aktarıldığını ve doğru sürüm (0.2.6) olduğunu doğrulayın:

    # Get a list of commands for the imported Az.Blueprint module
    Get-Command -Module 'Az.Blueprint' -CommandType 'Cmdlet'
    

Şema tanımlarını alma

Atamayla çalışmanın ilk adımı genellikle şema tanımına başvuru almaktır. Get-AzBlueprint Cmdlet bir veya daha fazla şema tanımı alır. cmdlet'i ile bir yönetim grubundan veya aboneliğinden -ManagementGroupId {mgId}-SubscriptionId {subId}şema tanımlarını alabilir. Name parametresi bir şema tanımı alır, ancak ManagementGroupId veya SubscriptionId ile kullanılmalıdır. Sürüm , hangi şema tanımının döndürüldiği konusunda daha açık olmak için Ad ile birlikte kullanılabilir. Sürüm yerine, anahtar -LatestPublished en son yayımlanan sürümü alır.

Aşağıdaki örnek, olarak {subId}temsil edilen belirli bir abonelikten '101-blueprints-definition-subscription' adlı şema tanımının tüm sürümlerini almak için kullanırGet-AzBlueprint:

# 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

Birden çok sürümü olan bir şema tanımının örnek çıktısı şöyle görünür:

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

Şema tanımındaki şema parametreleri daha fazla bilgi sağlamak için genişletilebilir.

$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

Şema atamalarını alma

Şema ataması zaten varsa, cmdlet'iyle Get-AzBlueprintAssignment buna bir başvuru alabilirsiniz. Cmdlet, isteğe bağlı parametreler olarak SubscriptionId ve Name değerlerini alır. SubscriptionId belirtilmezse geçerli abonelik bağlamı kullanılır.

Aşağıdaki örnek, olarak {subId}temsil edilen belirli bir abonelikten 'Assignment-lock-resource-groups' adlı tek bir şema ataması almak için kullanırGet-AzBlueprintAssignment:

# 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

Şema ataması için örnek çıktı şöyle görünür:

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

Şema atamaları oluşturma

Şema ataması henüz yoksa, cmdlet'iyle New-AzBlueprintAssignment oluşturabilirsiniz. Bu cmdlet aşağıdaki parametreleri kullanır:

  • Ad [gerekli]

    • Şema atamasının adını belirtir
    • Benzersiz olmalı ve SubscriptionId içinde mevcut olmamalıdır
  • Şema [gerekli]

    • Atanacak şema tanımını belirtir
    • Başvuru nesnesini almak için kullanın Get-AzBlueprint
  • Konum [gerekli]

    • Sistem tarafından atanan yönetilen kimlik ve abonelik dağıtım nesnesinin oluşturulacağı bölgeyi belirtir
  • Abonelik (isteğe bağlı)

    • Atamanın dağıtılacağı aboneliği belirtir
    • Sağlanmadıysa, varsayılan olarak geçerli abonelik bağlamını kullanır
  • Kilitle (isteğe bağlı)

    • Dağıtılan kaynaklar için kullanılacak şema kaynağı kilitlemesini tanımlar
    • Desteklenen seçenekler: None, AllResourcesReadOnly, AllResourcesDoNotDelete
    • Sağlanmadıysa, varsayılan değer Yok olur
  • SystemAssignedIdentity (isteğe bağlı)

    • Atama için sistem tarafından atanan yönetilen kimlik oluşturmak ve kaynakları dağıtmak için seçin
    • "Identity" parametre kümesi için varsayılan
    • UserAssignedIdentity ile kullanılamaz
  • UserAssignedIdentity (isteğe bağlı)

    • Atama için kullanılacak ve kaynakları dağıtmak için kullanıcı tarafından atanan yönetilen kimliği belirtir
    • "Identity" parametre kümesinin bir parçası
    • SystemAssignedIdentity ile kullanılamaz
  • Parametre (isteğe bağlı)

    • Şema ataması üzerinde dinamik parametreler ayarlamak için anahtar/değer çiftlerininkarma tablosu

    • Dinamik parametre için varsayılan değer, tanımdaki defaultValue değeridir

    • Bir parametre sağlanmazsa ve defaultValue değeri yoksa, parametre isteğe bağlı değildir

      Not

      Parametresi secureStrings'i desteklemez.

  • ResourceGroupParameter (isteğe bağlı)

    • Kaynak grubu yapıtlarının karma tablosu
    • Her kaynak grubu yapıt yer tutucusu, bu kaynak grubu yapıtında Ad ve Konum'u dinamik olarak ayarlamak için anahtar/değer çiftlerine sahiptir
    • Kaynak grubu parametresi sağlanmadıysa ve defaultValue değeri yoksa, kaynak grubu parametresi isteğe bağlı değildir
  • AssignmentFile (isteğe bağlı)

    • Şema atamasının JSON dosya gösteriminin yolu
    • Bu parametre yalnızca Name, Blueprint ve SubscriptionId değerlerinin yanı sıra ortak parametreleri içeren bir PowerShell parametre kümesinin parçasıdır.

Örnek 1: Parametreleri sağlama

Aşağıdaki örnek, ile Get-AzBlueprintgetirilen 'my-blueprint' şema tanımının '1.1' sürümünün yeni atamasını oluşturur, yönetilen kimliği ve atama nesnesi konumunu 'westus2' olarak ayarlar, AllResourcesReadOnly ile kaynakları kilitler ve olarak {subId}temsil edilen belirli abonelikte hem Parameter hem de ResourceGroupParameter için karma tablolarını ayarlar:

# 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

Şema ataması oluşturmaya yönelik örnek çıktı şuna benzer:

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

Örnek 2: JSON atama tanım dosyası kullanma

Aşağıdaki örnek, Örnek 1 ile neredeyse aynı atamayı oluşturur. Örnek, cmdlet'ine parametre geçirmek yerine JSON atama tanım dosyasının ve AssignmentFile parametresinin kullanımını gösterir. Ayrıca excludedPrincipals özelliği kilitlerin bir parçası olarak yapılandırılır. excludedPrincipals için bir PowerShell parametresi yoktur ve özellik yalnızca JSON atama tanım dosyası aracılığıyla ayarlanarak yapılandırılabilir.

{
  "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'

Kullanıcı tarafından atanan yönetilen kimliğin JSON atama tanım dosyası örneği için, Örnek: REST API için kullanıcı tarafından atanan yönetilen kimlikle atama makalesindeki istek gövdesine bakın.

Şema atamalarını güncelleştirme

Bazen önceden oluşturulmuş bir şema atamasını güncelleştirmek gerekir. Cmdlet Set-AzBlueprintAssignment bu eylemi işler. Cmdlet, cmdlet'in yaptığı parametrelerin New-AzBlueprintAssignment çoğunu alır ve atamada ayarlanan her şeyin güncelleştirilmesi için izin verir. Name ,Blueprint ve SubscriptionId özel durumları vardır. Yalnızca sağlanan değerler güncelleştirilir.

Şema atamasını güncelleştirirken ne olduğunu anlamak için bkz. Atamaları güncelleştirme kuralları.

  • Ad [gerekli]

    • Güncelleştirilecek şema atamasının adını belirtir
    • Güncelleştirilecek atamayı bulmak için kullanılır, atamayı değiştirmek için kullanılmaz
  • Şema [gerekli]

    • Şema atamasının şema tanımını belirtir
    • Başvuru nesnesini almak için kullanın Get-AzBlueprint
    • Güncelleştirilecek atamayı bulmak için kullanılır, atamayı değiştirmek için kullanılmaz
  • Konum (isteğe bağlı)

    • Sistem tarafından atanan yönetilen kimlik ve abonelik dağıtım nesnesinin oluşturulacağı bölgeyi belirtir
  • Abonelik (isteğe bağlı)

    • Atamanın dağıtılacağı aboneliği belirtir
    • Sağlanmadıysa, varsayılan olarak geçerli abonelik bağlamını kullanır
    • Güncelleştirilecek atamayı bulmak için kullanılır, atamayı değiştirmek için kullanılmaz
  • Kilitle (isteğe bağlı)

    • Dağıtılan kaynaklar için kullanılacak şema kaynak kilitlemesini tanımlar
    • Desteklenen seçenekler: None, AllResourcesReadOnly, AllResourcesDoNotDelete
  • SystemAssignedIdentity (isteğe bağlı)

    • Atama için sistem tarafından atanan yönetilen kimliği oluşturmak ve kaynakları dağıtmak için seçin
    • "Identity" parametre kümesi için varsayılan
    • UserAssignedIdentity ile kullanılamaz
  • UserAssignedIdentity (isteğe bağlı)

    • Atama için kullanılacak ve kaynakları dağıtmak için kullanıcı tarafından atanan yönetilen kimliği belirtir
    • "Identity" parametre kümesinin bir parçası
    • SystemAssignedIdentity ile kullanılamaz
  • Parametre (isteğe bağlı)

    • Şema ataması üzerinde dinamik parametreler ayarlamak için anahtar/değer çiftlerininkarma tablosu

    • Dinamik parametre için varsayılan, tanımdaki defaultValue değeridir

    • Bir parametre sağlanmadıysa ve defaultValue değeri yoksa, parametre isteğe bağlı değildir

      Not

      Parametre secureStrings'i desteklemez.

  • ResourceGroupParameter (isteğe bağlı)

    • Kaynak grubu yapıtlarının karma tablosu
    • Her kaynak grubu yapıt yer tutucusu, bu kaynak grubu yapıtı üzerinde Ad ve Konum'u dinamik olarak ayarlamak için anahtar/değer çiftlerine sahiptir
    • Kaynak grubu parametresi sağlanmadıysa ve defaultValue değeri yoksa, kaynak grubu parametresi isteğe bağlı değildir

Aşağıdaki örnek, kilit modunu değiştirerek getirilen Get-AzBlueprint 'my-blueprint' şema tanımının '1.1' sürümünün atamasını güncelleştirir:

# 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

Şema ataması oluşturmaya yönelik örnek çıktı şöyle görünür:

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

Şema atamalarını kaldırma

Şema atamasının kaldırılma zamanı geldiğinde, Remove-AzBlueprintAssignment cmdlet bu eylemi işler. Cmdlet, hangi şema atamasının kaldırılacağını belirtmek için Name veya InputObject alır. SubscriptionIdgereklidir ve her durumda sağlanmalıdır.

Aşağıdaki örnek, ile Get-AzBlueprintAssignment var olan bir şema atamasını getirir ve ardından ile {subId}temsil edilen belirli bir abonelikten kaldırır:

# 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}'

Kod örneği

Aşağıdaki örnek tüm adımları bir araya getirerek şema tanımını alır, ardından olarak {subId}temsil edilen belirli bir abonelikte şema ataması oluşturur, güncelleştirir ve kaldırır:

# 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

Sonraki adımlar