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.
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.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-AzBlueprint
getirilen '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
- Şema yaşam döngüsü hakkında bilgi edinin.
- Statik ve dinamik parametrelerin kullanımını anlayın.
- Şema sıralama düzenini özelleştirmeyi öğrenin.
- Şema kaynak kilitleme özelliğini kullanmayı öğrenin.
- Genel sorun giderme adımlarıyla şema atama sorunlarını giderin.