PowerShell ile şema tanımlarını içeri ve dışarı aktarma

Azure Blueprints tam olarak yönetilen bir Azure portal. Kuruluşlar, şema tanımlarını yönetilen Azure Blueprints olarak düşünmeye başlasalar. Bu kavram genellikle Kod Olarak Altyapı (IaC) olarak adlandırılır. Şema tanımlarınızı kod olarak işlenin, bu tanımların sunduğu avantajların Azure portal sunar. Bu avantajlar:

  • Şema tanımlarını paylaşma
  • Şema tanımlarınızı backing up
  • Şema tanımlarını farklı kiracılarda veya aboneliklerde yeniden kullanılabilir
  • Şema tanımlarını kaynak denetimine yerleştirme
    • Test ortamlarında şema tanımlarının otomatikleştirilmiş testi
    • Sürekli tümleştirme ve sürekli dağıtım (CI/CD) işlem hatları desteği

Nedenlerinizi ne olursa olsun şema tanımlarınızı kod olarak yönetmenin avantajları vardır. Bu Import-AzBlueprintWithArtifact Export-AzBlueprintWithArtifact makalede, Az.Blueprint modülünde ve komutlarının nasıl kullanımına sahip olduğu gösterir.

Önkoşullar

Bu makalede, çalışmayla ilgili orta düzeyde bilgi sahibi Azure Blueprints. Henüz bunu yapmadıysanız aşağıdaki makalelere bakın:

Henüz yüklenmemişse Az.Blueprint modülünü yükleme ve bu modülden Az.Blueprint modülünü doğrulama yönergelerini PowerShell Galerisi.

Şema tanımının klasör yapısı

Şemaları dışarı ve içeri aktarmaya bakmadan önce şema tanımının nasıl yapılandırıldıklarına bakalım. Şema tanımı kendi klasöründe depolanmış olması gerekir.

Önemli

cmdlet'inin Name parametresine hiçbir değer geçir geçirilse Import-AzBlueprintWithArtifact şema tanımının depolandığı klasörün adı kullanılır.

olarak adlandırılmış olması gereken şema tanımıyla blueprint.json birlikte, şema tanımının içinde yer alan yapıtlar da vardır. Her yapıt adlı alt klasöre sahip olması artifacts gerekir. Şema tanımınızı klasörlerdeki JSON dosyaları olarak bir araya getirdiyebilirsiniz:

.
|
|- MyBlueprint/  _______________ # Root folder name becomes default name of blueprint definition
|  |- blueprint.json  __________ # The blueprint definition. Fixed name.
|
|  |- artifacts/  ______________ # Subfolder for all blueprint artifacts. Fixed name.
|     |- artifact.json  ________ # Blueprint artifact as JSON file. Artifact named from file.
|     |- ...
|     |- more-artifacts.json

Şema tanımınızı dışarı aktarma

Şema tanımınızı dışarı aktarma adımları basittir. Şema tanımını dışarı aktarma, kaynak denetimine paylaşım, yedekleme veya yerleştirme için yararlı olabilir.

  • Şema [gerekli]
    • Şema tanımını belirtir
    • Başvuru Get-AzBlueprint nesnesini almak için kullanın
  • OutputPath [gerekli]
    • Şema tanımı JSON dosyalarını kaydetme yolunu belirtir
    • Çıkış dosyaları şema tanımının adıyla bir alt klasör içindedir
  • Sürüm (isteğe bağlı)
    • Şema başvuru nesnesi birden fazla sürüme başvuru içeriyorsa, çıkış sürümünü belirtir.
  1. olarak temsil edilen abonelikten dışarı aktarma için şema tanımına bir başvuru {subId} alın:

    # 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 'MyBlueprint' -Version '1.1'
    
  2. Belirtilen şema Export-AzBlueprintWithArtifact tanımını dışarı aktarmaya cmdlet'ini kullanın:

    Export-AzBlueprintWithArtifact -Blueprint $bpDefinition -OutputPath 'C:\Blueprints'
    

Şema tanımınızı içeri aktarma

Dışarı aktarılan bir şema tanımına sahip olduktan veya gerekli klasör yapısında el ile oluşturulan bir şema tanımına sahip olduktan sonra,bu şema tanımını farklı bir yönetim grubuna veya aboneliğe içeri aktarabilirsiniz.

Yerleşik şema tanımlarının örnekleri için bkz. Azure Blueprints GitHub .

  • Ad [gerekli]
    • Yeni şema tanımının adını belirtir
  • InputPath [gerekli]
  • ManagementGroupId (isteğe bağlı)
    • Geçerli bağlam varsayılanı yoksa şema tanımının kaydedkisi yönetim grubu kimliği
    • ManagementGroupId veya SubscriptionId belirtilmelidir
  • SubscriptionId (isteğe bağlı)
    • Geçerli bağlam varsayılanı yoksa şema tanımının kaydedile abonelik kimliği
    • ManagementGroupId veya SubscriptionId belirtilmelidir
  1. Belirtilen şema Import-AzBlueprintWithArtifact tanımını içeri aktarmaya cmdlet'ini kullanın:

    # Login first with Connect-AzAccount if not using Cloud Shell
    
    Import-AzBlueprintWithArtifact -Name 'MyBlueprint' -ManagementGroupId 'DevMG' -InputPath 'C:\Blueprints\MyBlueprint'
    

Şema tanımı içe aktarıldıktan sonra, bunu PowerShell ile attayın.

Gelişmiş şema tanımları oluşturma hakkında bilgi için aşağıdaki makalelere bakın:

Sonraki adımlar