PowerShell ile atamaları yönetme
şema atama Az. şema Azure PowerShell modülü kullanılarak yönetilebilir. Modül, atamaları getirmeyi, oluşturmayı, güncelleştirmeyi ve kaldırmayı destekler. Modül, var olan şema tanımlarında ayrıntılar da getirebilir. Bu makalede, modülün nasıl yükleneceği ve nasıl kullanılacağı ele alınmaktadır.
Az. Blueprint modülünü ekleyin
şema atamalarını yönetmek için Azure PowerShell etkinleştirmek üzere modülün eklenmesi gerekir. bu modül, Azure Cloud Shellile veya Azure PowerShell docker görüntüsüyleyerel olarak yüklü PowerShell ile kullanılabilir.
Temel gereksinimler
Azure şemaları modülü için aşağıdaki yazılımlar gereklidir:
- 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ükler
PowerShell için Azure şemaları modülü az. Blueprint olur.
Bir Yönetim PowerShell isteminde aşağıdaki komutu çalıştırın:
# Install the Azure Blueprints module from PowerShell Gallery Install-Module -Name Az.BlueprintNot
Az. Accounts zaten yüklüyse,
-AllowClobberyüklemeyi zorlamak için kullanılması 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ı al
Atama ile çalışmanın ilk adımı, genellikle bir şema tanımına başvuru almaktır.
Get-AzBlueprintCmdlet 'i bir veya daha fazla şema tanımı alır. Cmdlet 'i ile olan bir yönetim grubundan şema tanımlarını -ManagementGroupId {mgId} veya ile aboneliği alabilir -SubscriptionId {subId} . Name parametresi bir şema tanımı alır, ancak ManagementGroupId veya SubscriptionID ile birlikte kullanılmalıdır. Sürüm , ad ile birlikte kullanılabilir ve bu, hangi şema tanımının döndürüldüğünden daha açık olacaktır. Sürüm yerine, anahtar -LatestPublished en son yayımlanan sürümü de dönüştürür.
Aşağıdaki örnek, Get-AzBlueprint ' 101-planlar-Definition-Subscription ' adlı bir şema tanımının tüm sürümlerini şu şekilde gösterilen belirli bir abonelikten almak için kullanır {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
Birden çok sürümü olan bir şema tanımının örnek çıktısı şuna benzer:
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ı al
Şema ataması zaten varsa cmdlet 'ini kullanarak buna bir başvuru alabilirsiniz Get-AzBlueprintAssignment . Cmdlet 'i, SubscriptionID ve adı isteğe bağlı parametreler olarak alır. SubscriptionID belirtilmemişse, geçerli abonelik bağlamı kullanılır.
Aşağıdaki örnek, Get-AzBlueprintAssignment olarak belirtilen belirli bir aboneliğin ' atama-kilitleme-kaynak-gruplar ' adlı tek bir şema atamasını almak için kullanır {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
Bir şema atamasının örnek çıktısı şö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 New-AzBlueprintAssignment cmdlet 'ini kullanarak oluşturabilirsiniz. Bu cmdlet şu parametreleri kullanır:
Ad [gerekli]
- Şema atamasının adını belirtir
- Benzersiz olmalı ve abonelik kimliği zaten mevcut değil
Blueprint [gerekli]
- Atanacak şema tanımını belirtir
Get-AzBlueprintBaşvuru nesnesini almak için kullanın
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ıldığı aboneliği belirtir
- Sağlanmazsa, varsayılan olarak geçerli abonelik bağlamına
Kilitle (isteğe bağlı)
- Dağıtılan kaynaklar için kullanılacak şema kaynak kilitlemeyi tanımlar
- Desteklenen seçenekler: none, allresourcesreadonly, allresourcesdonotdelete
- Sağlanmazsa varsayılan değer none olur
Systemassignedıdentity (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
- Useratandıdentity ile kullanılamaz
Useratandıdentity (isteğe bağlı)
- Atama ve kaynakları dağıtma için kullanılacak kullanıcı tarafından atanan yönetilen kimliği belirtir
- "Identity" parametre kümesinin bir parçası
- Systemassignedıdentity ile kullanılamaz
Parametre (isteğe bağlı)
Şema atamasında dinamik parametreleri ayarlamak için anahtar/değer çiftlerinin karma tablosu
Bir dinamik parametre için varsayılan değer, tanımdaki DefaultValue 'dir
Bir parametre sağlanmazsa ve DefaultValue yoksa, parametre isteğe bağlı değildir
Not
Parametre securestrings 'i desteklemiyor.
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 dinamik ayar adı ve konumu için anahtar/değer çiftlerine sahiptir
- Bir kaynak grubu parametresi sağlanmazsa ve DefaultValue yoksa, kaynak grubu parametresi isteğe bağlı değildir
Atamadosyası (isteğe bağlı)
- Bir şema atamasının JSON dosyası gösteriminin yolu
- Bu parametre, yalnızca Name, Blueprint ve SubscriptionID ve ortak parametreleri içeren bir PowerShell parametre kümesinin bir parçasıdır.
Örnek 1: parametre sağlama
Aşağıdaki örnek ile birlikte getirilen ' My-şema ' şema tanımının ' 1,1 ' sürümünün yeni bir atamasını oluşturur Get-AzBlueprint , yönetilen kimliği ve atama nesnesi konumunu ' westus2 ' olarak ayarlar, kaynakları allresourcesreadonly ile kilitler ve aşağıdaki gibi belirli bir abonelikte hem parametre hem de resourcegroupparameter için karma tabloları ayarlar {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
Bir şema ataması oluşturmak için ö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 : AllResourcesReadOnly
ProvisioningState : Creating
Parameters : {storageAccount_storageAccountType}
ResourceGroups : ResourceGroup
Örnek 2: JSON atama tanım dosyası kullanma
Aşağıdaki örnekte, Örnek 1ile neredeyse aynı atama oluşturulur. Cmdlet 'e parametre geçirmek yerine, örnek bir JSON atama tanımı dosyası ve Atamadosyası parametresinin kullanımını gösterir. Ayrıca, Excludedsorumlularını özelliği kilitlerin bir parçası olarak yapılandırılır. Excludedsorumlularını 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ının bir örneği için, örnek: REST API için Kullanıcı tarafından atanan yönetilen kimlik Ile atama .
Şema atamalarını Güncelleştir
Bazen zaten oluşturulmuş bir şema atamasının güncelleştirilmesi gerekir. Set-AzBlueprintAssignmentCmdlet 'i bu eylemi işler. Cmdlet 'i cmdlet 'in kullandığı parametrelerin çoğunu alır New-AzBlueprintAssignment ve atamada ayarlanan her şeyin güncelleştirilmesine izin verir. Özel durumlar ad, Blueprint ve SubscriptionID' dir. Yalnızca belirtilen değerler güncellenir.
Bir şema atamasını güncelleştirirken ne olduğunu anlamak için bkz. atamaları güncelleştirme kuralları.
Ad [gerekli]
- Güncelleştirilecek BLUEPRINT atamasının adını belirtir
- Güncelleştirme atamasını bulmak için kullanılır, atamayı değiştirmez
Blueprint [gerekli]
- Şema atamasının şema tanımını belirtir
Get-AzBlueprintBaşvuru nesnesini almak için kullanın- Güncelleştirme atamasını bulmak için kullanılır, atamayı değiştirmez
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ıldığı aboneliği belirtir
- Sağlanmazsa, varsayılan olarak geçerli abonelik bağlamına
- Güncelleştirme atamasını bulmak için kullanılır, atamayı değiştirmez
Kilitle (isteğe bağlı)
- Dağıtılan kaynaklar için kullanılacak şema kaynak kilitlemeyi tanımlar
- Desteklenen seçenekler: none, allresourcesreadonly, allresourcesdonotdelete
Systemassignedıdentity (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
- Useratandıdentity ile kullanılamaz
Useratandıdentity (isteğe bağlı)
- Atama ve kaynakları dağıtma için kullanılacak kullanıcı tarafından atanan yönetilen kimliği belirtir
- "Identity" parametre kümesinin bir parçası
- Systemassignedıdentity ile kullanılamaz
Parametre (isteğe bağlı)
Şema atamasında dinamik parametreleri ayarlamak için anahtar/değer çiftlerinin karma tablosu
Bir dinamik parametre için varsayılan değer, tanımdaki DefaultValue 'dir
Bir parametre sağlanmazsa ve DefaultValue yoksa, parametre isteğe bağlı değildir
Not
Parametre securestrings 'i desteklemiyor.
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 dinamik ayar adı ve konumu için anahtar/değer çiftlerine sahiptir
- Bir kaynak grubu parametresi sağlanmazsa ve DefaultValue yoksa, kaynak grubu parametresi isteğe bağlı değildir
Aşağıdaki örnek, kilit modunu değiştirerek ' My-şema ' şema tanımının ' 1,1 ' sürümünün atamasını güncelleştirir 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
Bir şema ataması oluşturmak için ö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ır
Bir şema atamasının kaldırılması sırasında, Remove-AzBlueprintAssignment cmdlet bu eylemi işler. Cmdlet 'i hangi şema atamasının kaldırılacağını belirtmek için Name ya da InputObject değerini alır. SubscriptionID gereklidir ve her durumda belirtilmelidir.
Aşağıdaki örnek, ile var olan bir şema atamasını getirir Get-AzBlueprintAssignment ve bu atamayı şöyle temsil eden belirli bir abonelikten kaldırır {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}'
Kod örneği
Tüm adımları bir araya getiren aşağıdaki örnek, şema tanımını alır, ardından belirli bir abonelikte şu şekilde gösterilen bir şema atamasını oluşturur, güncelleştirir ve kaldırır {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
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.