Azure Otomasyonu modüllerini yönetme

Not

1 Şubat 2025'ten itibaren Azure Otomasyonu, AzureRM modüllerini kullanan tüm runbook'ların yürütülmesini durduracak. 1 Kasım 2024'den itibaren AzureRM modüllerini kullanarak yeni runbook'lar oluşturamayacaksınız. AzureRM PowerShell modülü, 29 Şubat 2024 itibarıyla resmi olarak kullanım dışı bırakılmıştır. Destek ve güncelleştirmelerin devam ettiğinden emin olmak için AzureRM modülünden Az PowerShell modülüne geçmenizi öneririz. AzureRM modülü çalışmaya devam edebilir ancak artık korunmaz veya desteklenmez ve AzureRM modülünün sürekli kullanımı kullanıcının riski altındadır. Daha fazla bilgi için bkz. Az modülüne geçişle ilgili rehberlik için geçiş kaynakları.

Azure Otomasyonu, runbook'lardaki cmdlet'leri ve DSC yapılandırmalarındaki DSC kaynaklarını etkinleştirmek için bir dizi PowerShell modülü kullanır. Desteklenen modüller şunlardır:

  • Azure PowerShell Az modülleri.
  • Diğer PowerShell modülleri.
  • İç Orchestrator.AssetManagement.Cmdlets modül (Linux Karma Runbook Çalışanı'nda kullanılamaz).
  • Python 2 ve Python 3 modülleri.
  • Oluşturduğunuz özel modüller.

Otomasyon hesabı oluşturduğunuzda, Azure Otomasyonu bazı modülleri varsayılan olarak içeri aktarır. Bkz. Varsayılan modüller.

Önemli

Yeni Çalışma Zamanı ortamı deneyimi, iş yürütme ortamını yapılandırmanıza olanak tanıyarak modülleri ve paketleri yönetmenizi sağlar. Yeni deneyimde Modüller ve Paketler panelleri mevcut değil. Modülleri ve paketleri yönetmek için Çalışma Zamanı ortamını ve ilgili runbook'ları yönetme bölümüne bakın.

Korumalı Alanlar

Otomasyon, runbook ve DSC derleme işlerini gerçekleştirdiğinde, modülleri runbook'ların çalıştırıldığı ve DSC yapılandırmalarının derlendiği izole çalışma alanlarına yükler. Otomasyon ayrıca tüm DSC kaynaklarını otomatik olarak DSC çekme sunucusundaki modüllere yerleştirir. Makineler DSC yapılandırmalarını uyguladığında kaynakları çekebilir.

Bulut sandbox en fazla 48 sistem çağrısını destekler ve güvenlik nedeniyle diğer tüm çağrıları kısıtlar. Bulut korumalı alanında kimlik bilgileri yönetimi ve bazı ağ işlevleri gibi diğer fonksiyonlar desteklenmemektedir.

Dahil edilen modül ve cmdlet sayısı nedeniyle, hangi cmdlet'lerin desteklenmeyen çağrılar yapacağı önceden bilinmesi zordur. Genel olarak, yükseltilmiş erişim gerektiren, parametre olarak kimlik bilgisi gerektiren cmdlet'lerle veya ağ ile ilgili cmdlet'lerle ilgili sorunlar gördük. AIPService PowerShell modülünden Connect-AipService ve DNSClient modülünden Resolve-DnsName dahil olmak üzere tam yığın ağ işlemleri gerçekleştiren cmdlet'ler korumalı alanda desteklenmez.

Bunlar korumalı alanla ilgili bilinen sınırlamalardır. Önerilen geçici çözüm, Hybrid Runbook Worker dağıtmak veya Azure İşlevleri kullanmaktır.

Önemli

Az modülüyle yürütülmek üzere tasarlanmış betiklere "AzureRm" anahtar sözcüğünü eklemeyin. Anahtar sözcüğün bir açıklamaya dahil edilmesi, AzureRm'nin yüklenmesine ve ardından Az modülüyle çakışmasına neden olabilir.

Varsayılan modüller

Tüm yeni Otomasyon hesapları, varsayılan olarak içeri aktarılan PowerShell Az modülünün en son sürümüne sahiptir. Az modülü AzureRM'nin yerini alır ve Azure ile kullanılması önerilen modüldür. Yeni Otomasyon hesabındaki varsayılan modüller mevcut 24 AzureRM modülünü ve 60+ Az modülünü içerir.

Otomasyon hesapları için kullanıcı tarafından modülleri en son Az modülüne güncelleştirmeye yönelik yerel bir seçenek vardır. İşlem, arka uçta tüm modül bağımlılıklarını ele alır ve böylece modülleri manually güncelleştirme veya runbook'u update Azure modüllerine yürütme zahmetlerini ortadan kaldırır.

Mevcut Otomasyon hesabında yalnızca AzureRM modülleri varsa Az modüllerini güncelleştir seçeneği Otomasyon hesabını az modülünün kullanıcı tarafından seçilen sürümüyle güncelleştirir.

Mevcut Otomasyon hesabında AzureRM ve bazı Az modülleri varsa, seçeneği kalan Az modüllerini Otomasyon hesabına aktarır. Mevcut Az modülleri tercih edilecek ve güncelleştirme işlemi bu modülleri güncelleştirmeyecektir. Bu, bir runbook tarafından kullanılan modülü yanlışlıkla güncelleştirerek güncelleştirme modülü işleminin herhangi bir runbook yürütme hatasına yol açmamasını sağlamaktır. Bu senaryo için önerilen yol, önce mevcut Az modüllerini silmek ve ardından Otomasyon hesabına içeri aktarılan en son Az modülünü almak için güncelleştirme işlemlerini gerçekleştirmektir. Varsayılan olarak içeri aktarılmayan bu tür modül türleri Özel olarak adlandırılır. Özel modüller her zaman varsayılan modüller yerine tercihi alır.

Örneğin: Modülü az module 6.3.0 tarafından sağlanan sürüm 2.3.0 ile zaten Az.Aks içeri aktardıysanız ve Az modülünü en son 6.4.0 sürümüne güncelleştirmeye çalışırsınız. Güncelleştirme işlemi, Az.Aks dışında, 6.4.0 paketindeki tüm Az modüllerini içeri aktarır. uygulamasının en son sürümüne Az.Akssahip olmak için önce mevcut modülü silin ve ardından güncelleştirme işlemini gerçekleştirin ya da az modüllerini içeri aktarma bölümünde açıklandığı gibi bu modülü ayrı olarak güncelleştirerek belirli bir modülün farklı bir sürümünü içeri aktarabilirsiniz.

Azure Otomasyonu hesabınızı oluştururken varsayılan olarak içe aktardığı modülleri aşağıdaki tabloda listelemektedir. Otomasyon, bu modüllerin daha yeni sürümlerini içeri aktarabilir. Ancak, daha yeni bir sürümü silseniz bile Özgün sürümü Otomasyon hesabınızdan kaldıramazsınız.

Varsayılan modüller genel modüller olarak da bilinir. Azure portalında Global module özelliği, hesap oluşturulduğunda içeri aktarılan modülü görüntülerken true olacaktır.

Azure portal'daki genel modül özelliğinin ekran görüntüsü.

Modül adı Sürüm
Az.* PowerShell GalerisiPackage Details altındaki tam listeye bakın>
AuditPolicyDsc 1.1.0.0
Azure 1.0.3
Azure.Depolama 1.0.3
AzureRM.Automation 1.0.3
AzureRM.Compute 1.2.1
AzureRM.Profile 1.0.3
AzureRM.Resources 1.0.3
AzureRM.Sql 1.0.3
AzureRM.Storage 1.0.3
ComputerManagementDsc 5.0.0.0
GPRegistryPolicyParser 0,2
Microsoft.PowerShell.Core 0
Microsoft.PowerShell.Diagnostics
Microsoft.PowerShell.Management
Microsoft.PowerShell.Security
Microsoft.PowerShell.Utility
Microsoft. WSMan.Management
Orchestrator.VarlıkYönetimi.Cmdlets 1
PSDsc Kaynakları 2.9.0.0
GüvenlikPolitikasıDsc 2.1.0.0
StateConfigCompositeResources 1
xDSCDomainjoin 1.1
xPowerShellExecutionPolicy (xPowerShell Çalıştırma Politikası) 1.1.0.0
xRemoteDesktopAdmin 1.1.0.0

İç cmdlet'ler

Azure Otomasyonu, runbook'lar Azure korumalı alan ortamında veya Windows Karma Runbook Çalışanı üzerinde yürütüldüğünde özel olarak kullanılabilen iç cmdlet'ler sağlamaktadır. Bu iç cmdlet'leri içeren Orchestrator.AssetManagement.Cmdlets modülü, Otomasyon hesabınızda varsayılan olarak ve özellikle Windows Karma Runbook Çalışanı rolü bir Windows makinesine yüklendiğinde yüklenir.

Not

Bu işlev Linux Karma Runbook Çalışanlarında kullanılamaz.

Aşağıdaki tabloda iç cmdlet'ler tanımlanmıştır. Bu cmdlet'ler, Otomasyon hesabı kaynaklarınız ile etkileşim kurmak için Azure PowerShell cmdlet'ler yerine kullanılacak şekilde tasarlanmıştır. Şifrelenmiş değişkenlerden, şifrelenmiş bağlantılardan ve kimlik bilgilerinden gizli bilgileri alabilirler.

İsim Açıklama
Get-AutomationCertificate Get-AutomationCertificate [-Name] <string> [<CommonParameters>]
Get-AutomationConnection Get-AutomationConnection [-Name] <string> [-DoNotDecrypt] [<CommonParameters>]
Get-AutomationPSCredential Get-AutomationPSCredential [-Name] <string> [<CommonParameters>]
Get-AutomationVariable Get-AutomationVariable [-Name] <string> [-DoNotDecrypt] [<CommonParameters>]
Set-AutomationVariable Set-AutomationVariable [-Name] <string> -Value <Object> [<CommonParameters>]
Start-AutomationRunbook Start-AutomationRunbook [-Name] <string> [-Parameters <IDictionary>] [-RunOn <string>] [-JobId <guid>] [<CommonParameters>]
Wait-AutomationJob Wait-AutomationJob -Id <guid[]> [-TimeoutInMinutes <int>] [-DelayInSeconds <int>] [-OutputJobsTransitionedToRunning] [<CommonParameters>]

Dahili cmdlet'lerin isimlendirilmesinin, Az ve AzureRM cmdlet'lerinden farklı olduğunu unutmayın. İç cmdlet adları, isimde Azure veya Az gibi sözcükler içermez, ancak Automation sözcüğünü kullanın. Azure korumalı alanda veya Windows Karma Runbook Çalışanı'nda runbook yürütme sırasında Az veya AzureRM cmdlet'leri yerine bunların kullanılmasını öneririz çünkü işinizin yürütülmesi sırasında daha az parametreye ihtiyaç duyar ve işinizin bağlamında çalışırlar.

Otomasyon kaynaklarını runbook bağlamı dışında işlemek için Az veya AzureRM cmdlet'lerini kullanın.

Python modülleri

Azure Otomasyonu'da Python 2 çalışma kitapları oluşturabilirsiniz. Python modülü bilgileri için Azure Otomasyonu'da Python 2 paketlerini yönetme bölümüne bakın.

Özel modüller

Azure Otomasyonu, runbook'larınız ve DSC yapılandırmalarınızla kullanmak için oluşturduğunuz özel PowerShell modüllerini destekler. Özel modül türlerinden biri, isteğe bağlı olarak modül cmdlet'leri için özel işlevselliği tanımlamak üzere bir meta veri dosyası içeren bir tümleştirme modülüdür. Bağlantı türü ekleme bölümünde tümleştirme modülünün kullanımına bir örnek verilmiştir.

Azure Otomasyonu, cmdlet'lerini kullanılabilir hale getirmek için özel bir modülü içeri aktarabilir. Arka planda modülü depolar ve diğer modüllerde olduğu gibi Azure korumalı alanlarında kullanır.

Az modüllerine geçiş

Bu bölümde Otomasyon'da Az modüllerine nasıl geçiş yapılacağını anlatabilirsiniz. Daha fazla bilgi için bkz. Azure PowerShell AzureRM'den Az'a geçirme.

AzureRM modüllerini ve Az modüllerini aynı Otomasyon hesabında çalıştırmanızı önermiyoruz. AzureRM'den Az'ye geçiş yapmak istediğinizden eminseniz, tam bir geçişe tamamen taahhüt etmek en iyisidir. Otomasyon, çoğunlukla başlangıç sürelerinden tasarruf etmek için Otomasyon hesabındaki kara kutuları yeniden kullanır. Tam modül geçişi yapmazsanız, yalnızca AzureRM modüllerini kullanan bir iş başlatabilir ve ardından yalnızca Az modüllerini kullanan başka bir iş başlatabilirsiniz. Korumalı alan kısa süre içinde çöker ve modüllerin uyumlu olmadığını gösteren bir hata alırsınız. Bu durum, belirli bir runbook veya yapılandırma için rastgele kilitlenmelere neden olur.

Not

Az modüllerine geçiş yaptıktan sonra bile yeni bir Otomasyon hesabı oluşturduğunuzda Otomasyon varsayılan olarak AzureRM modüllerini yüklemeye devam eder.

Modül geçişi öncesinde runbook'larınızı ve DSC yapılandırmalarınızı test etme

Az modüllerine geçmeden önce tüm runbook'ları ve DSC yapılandırmalarını ayrı bir Otomasyon hesabında dikkatle test etmeye dikkat edin.

AzureRM modüllerini kullanan tüm runbook'ları durdurma ve zamanlamasını kaldırma

AzureRM modüllerini kullanan mevcut runbook'ları veya DSC yapılandırmalarını çalıştırmadığınızdan emin olmak için, etkilenen tüm runbook'ları ve yapılandırmaları durdurmanız ve zamanlamasını kaldırmanız gerekir. İlk olarak, gerekirse öğeyi gelecekte yeniden zamanlayabilmeniz için her runbook veya DSC yapılandırmasını ve zamanlamalarını ayrı ayrı gözden geçirin.

Zamanlamalarınızı kaldırmaya hazır olduğunuzda, Azure portalını veya Remove-AzAutomationSchedule cmdlet'ini kullanabilirsiniz. Bkz. Bir zamanlamayı kaldırma.

AzureRM modüllerini kaldırma

Az modüllerini içeri aktarmadan önce AzureRM modüllerini kaldırabilirsiniz. Ancak, bunu yaparsanız kaynak denetimi eşitlemesini kesintiye uğratabilir ve hala zamanlanmış betiklerin başarısız olmasına neden olabilirsiniz. Modülleri kaldırmaya karar verirseniz bkz . AzureRM'yi kaldırma.

Az modüllerini içeri aktar

Az modülünü Otomasyon hesabınıza aktarmak, modülü runbook'ların kullandığı PowerShell oturumuna otomatik olarak aktarmaz. Modüller aşağıdaki durumlarda PowerShell oturumuna aktarılır:

  • Runbook bir modülden bir cmdlet çağırdığında.
  • Bir runbook Import-Module cmdlet'ini açıkça içeri aktardığında.
  • Bir runbook, modülü using module deyimiyle açıkça içeri aktardığında. Using deyimi, Windows PowerShell 5.0 ile başlayarak desteklenir ve sınıf ve enum türü içe aktarmayı destekler.
  • Runbook başka bir bağımlı modülü içeri aktardığında.

Az modüllerini Azure portalından Otomasyon hesabına aktarabilirsiniz. Az.Accounts diğer Az modülleri için bir bağımlılık olduğundan, bu modülü diğerlerinden önce içeri aktardığından emin olun.

Not

PowerShell 7.1 (önizleme) desteğinin kullanıma sunulmasıyla birlikte Galeriye gözat seçeneği aşağıdaki değişikliklerle güncelleştirildi:

  • Galeriye göz at İşlem Otomasyonu Modüller bıçağı üzerinde mevcuttur.
  • Modüller sayfasında iki yeni sütun görüntülenir: Modül sürümü ve Çalışma Zamanı sürümü
  1. Azure portal'da oturum açın.

  2. Otomasyon Hesapları'nı arayın ve seçin.

  3. Otomasyon Hesapları sayfasında, listeden Otomasyon hesabınızı seçin.

  4. Otomasyon hesabınızda Paylaşılan Kaynaklar altındaki Modüller'i seçin.

  5. Modül ekleyin'i seçin. Modül ekle sayfasında aşağıdaki seçeneklerden birini belirleyebilirsiniz:

    1. Dosyaya gözat - yerel makinenizden bir dosya seçer.
    2. Galeri'den göz atın: Galeriden var olan bir modüle göz atabilir ve bunu seçebilirsiniz.
  6. Modül seçmek için Seç'e tıklayın.

  7. Çalışma zamanı sürümü'nü seçin ve İçeri aktar'a tıklayın.

    Modülleri Otomasyon hesabınıza aktarma işleminin ekran görüntüsü.

  8. Modüller sayfasında, Otomasyon hesabı altında içeri aktarılan modülü görüntüleyebilirsiniz.

Bu içeri aktarma işlemini, içeri aktaracak modülü arayarak PowerShell Galerisi aracılığıyla da yapabilirsiniz. Modülü bulduğunuzda seçin ve Azure Otomasyonu sekmesini seçin. Azure Otomasyonu için Deploy seçeneğini belirleyin.

PowerShell Galerisi'den doğrudan modülleri içeri aktarma ekran görüntüsü.

Runbook'larınızı test yapın

Az modüllerini Otomasyon hesabına aktardıktan sonra, yeni modülleri kullanmak için runbook'larınızı ve DSC yapılandırmalarınızı düzenlemeye başlayabilirsiniz. Runbook'un yeni cmdlet'leri kullanacak şekilde değiştirilmesini test etmenin bir yolu, runbook'un başındaki komutu kullanmaktır Enable-AzureRmAlias -Scope Process . Bu komutu çalışma kitabınıza ekleyerek betiği herhangi bir değişiklik yapmadan çalıştırabilirsiniz.

Yazar modülleri

Azure Otomasyonu'de kullanmak üzere özel bir PowerShell modülü yazarken bu bölümdeki önemli noktaları izlemenizi öneririz. Modülünüzü içeri aktarmaya hazırlamak için modül klasörüyle aynı ada sahip bir .psd1, .psm1 veya PowerShell modülü .dll dosyası oluşturmanız gerekir. Ardından, Azure Otomasyonu'ın tek bir dosya olarak içe aktarabilmesi için modül klasörünü sıkıştırmalısınız. .zip paketi, kapsanan modül klasörüyle aynı ada sahip olmalıdır.

PowerShell modülü yazma hakkında daha fazla bilgi edinmek için bkz: PowerShell Betik Modülü Yazma.

Sürüm klasörü

PowerShell yan yana modül sürümü oluşturma, PowerShell'de bir modülün birden fazla sürümünü kullanmanıza olanak tanır. Test edilmiş eski betikleriniz varsa ve yalnızca PowerShell modülünün belirli bir sürümünde çalışıyorsanız ancak diğer betikler aynı PowerShell modülünün daha yeni bir sürümünü gerektiriyorsa bu yararlı olabilir.

PowerShell modüllerini birden çok sürüm içerecek şekilde oluşturmak için modül klasörünü oluşturun ve kullanılabilir olmasını istediğiniz modülün her sürümü için bu modül klasörü içinde bir klasör oluşturun. Aşağıdaki örnekte TestModule adlı modül 1.0.0 ve 2.0.0 olmak üzere iki sürüm sağlar.

TestModule
   1.0.0
   2.0.0

Sürüm klasörlerinin her birinde PowerShell .psm1, .psd1 veya PowerShell modülünüzü .dll modül oluşturan dosyaları ilgili sürüm klasörüne kopyalayın. Azure Otomasyonu tek bir .zip dosyası olarak içeri aktarabilmesi için modül klasörünü sıkıştırın. Otomasyon, modülün içeri aktarılan sürümlerinden yalnızca birini gösterir ancak modül paketi modülün yan yana sürümlerini içeriyorsa, bunların tümü runbook'larınızda veya DSC yapılandırmalarınızda kullanılabilir.

Otomasyon aynı paket içinde yan yana sürümler içeren modülleri desteklese de modül paketi içeri aktarma işlemleri arasında modülün birden çok sürümünün kullanılmasını desteklemez. Örneğin, 1. ve 2. sürümleri içeren A modülünü Otomasyon hesabınıza aktarırsınız. Daha sonra A modülünü 3. ve 4. sürümleri içerecek şekilde güncelleştirirsiniz. Otomasyon hesabınıza aktardığınızda, herhangi bir runbook veya DSC yapılandırmasında yalnızca 3. ve 4. sürümler kullanılabilir. Tüm sürümlerin (1, 2, 3 ve 4) kullanılabilir olmasını istiyorsanız, içeri aktardığınız .zip dosyası 1, 2, 3 ve 4 sürümlerini içermelidir.

Runbook'lar arasında aynı modülün farklı sürümlerini kullanacaksanız, her zaman cmdlet'ini kullanarak Import-Module runbook'unuzda kullanmak istediğiniz sürümü bildirmeniz ve parametresini -RequiredVersion <version>eklemeniz gerekir. Kullanmak istediğiniz sürüm en son sürüm olsa bile. Bunun nedeni runbook işlerinin aynı sanal alanda çalışabilmesidir. Korumalı alandaki önceki bir iş bunu yapacağını belirttiğinden korumalı alan zaten belirli bir sürüm numarasına ait bir modülü açıkça yüklemişse, bu korumalı alandaki gelecekteki işler bu modülün en son sürümünü otomatik olarak yüklemez. Bunun nedeni, bir sürümünün korumalı alana zaten yüklenmiş olmasıdır.

Bir DSC kaynağı için, belirli bir sürümü belirtmek için aşağıdaki komutu kullanın:

Import-DscResource -ModuleName "<ModuleName>" -ModuleVersion "<version>"

Yardım bilgileri

Modülünüzdeki her cmdlet için bir özet, açıklama ve yardım URI'si ekleyin. PowerShell'de Get-Help cmdlet'ini kullanarak cmdlet'ler için yardım bilgilerini tanımlayabilirsiniz. Aşağıdaki örnek, bir .psm1 modül dosyasında bir özet ve yardım URI'si tanımlamanın nasıl yapılacağını göstermektedir.

<#
     .SYNOPSIS
      Gets a Contoso User account
#>
function Get-ContosoUser {
[CmdletBinding](DefaultParameterSetName='UseConnectionObject', `
HelpUri='https://www.contoso.com/docs/information')]
[OutputType([String])]
param(
   [Parameter(ParameterSetName='UserAccount', Mandatory=true)]
   [ValidateNotNullOrEmpty()]
   [string]
   $UserName,

   [Parameter(ParameterSetName='UserAccount', Mandatory=true)]
   [ValidateNotNullOrEmpty()]
   [string]
   $Password,

   [Parameter(ParameterSetName='ConnectionObject', Mandatory=true)]
   [ValidateNotNullOrEmpty()]
   [Hashtable]
   $Connection
)

switch ($PSCmdlet.ParameterSetName) {
   "UserAccount" {
      $cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $UserName, $Password
      Connect-Contoso -Credential $cred
   }
   "ConnectionObject" {
      Connect-Contoso -Connection $Connection
  }
}
}

Bu bilgilerin sağlanması, PowerShell konsolundaki Get-Help cmdlet aracılığıyla yardım metnini gösterir. Bu metin Azure portalında da görüntülenir.

Tümleştirme modülü yardımı ekran görüntüsü

Bağlantı türü

Modül bir dış hizmete bağlanıyorsa, özel bir tümleştirme modülü kullanarak bir bağlantı türü tanımlayın. Modüldeki her cmdlet, parametre olarak bu bağlantı türünün (bağlantı nesnesi) bir örneğini kabul etmelidir. Kullanıcılar, bağlantı varlığının parametrelerini cmdlet'i her çağırdıklarında cmdlet'in ilgili parametreleriyle eşler.

 Azure portalında özel bağlantı kullanın

Aşağıdaki runbook örneği, Contoso ContosoConnection adlı bağlantı varlığı kullanılarak Contoso kaynaklarına erişmek ve dış hizmetten veri getirmek için kullanılır. Bu örnekte, alanlar bir UserName nesnesinin Password ve PSCredential özelliklerine eşlenir ve ardından cmdlet'e geçirilir.

$contosoConnection = Get-AutomationConnection -Name 'ContosoConnection'

$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $contosoConnection.UserName, $contosoConnection.Password
Connect-Contoso -Credential $cred
}

Bu davranışa yaklaşmanın daha kolay ve daha iyi bir yolu, bağlantı nesnesini doğrudan cmdlet'e geçirmektir:

$contosoConnection = Get-AutomationConnection -Name 'ContosoConnection'

Connect-Contoso -Connection $contosoConnection
}

Cmdlet'leriniz için benzer davranışları, yalnızca parametreler için bağlantı alanları yerine doğrudan bir bağlantı nesnesini parametre olarak kabul etmelerine izin vererek etkinleştirebilirsiniz. Genellikle, Otomasyon kullanmayan bir kullanıcının bağlantı nesnesi olarak davranacak bir karma tablo oluşturmadan cmdlet'lerinizi çağırabilmesi için her biri için bir parametre kümesi istersiniz. Parametre kümesi UserAccount , bağlantı alanı özelliklerini geçirmek için kullanılır. ConnectionObject bağlantıyı doğrudan geçirmenize olanak tanır.

Çıkış türü

Modülünüzdeki tüm cmdlet'ler için çıkış türünü tanımlayın. Bir cmdlet için çıkış türü tanımlamak, tasarım zamanı IntelliSense'in yazma sırasında cmdlet'in çıkış özelliklerini belirlemeye yardımcı olmasını sağlar. Bu uygulama, grafiksel runbook oluşturma sırasında, tasarım zamanı bilgisinin modülünüzle kolay bir kullanıcı deneyimi için önemli olduğu durumlarda özellikle yararlıdır.

öğesini ekleyin [OutputType([<MyOutputType>])]; burada MyOutputType geçerli bir türdür. OutputType hakkında daha fazla bilgi edinmek için bkz: İşlevler OutputTypeAttribute Hakkında. Aşağıdaki kod, bir cmdlet'e OutputType eklemenin bir örneğidir.

function Get-ContosoUser {
[OutputType([String])]
param(
   [string]
   $Parameter1
)
# <script location here>
}

Grafik runbook çıkış türünün ekran görüntüsü

Bu davranış, cmdlet'in PowerShell tümleştirme hizmeti ortamındaki çıktısını çalıştırmak zorunda kalmadan "önceden tür oluşturma" işlevine benzer.

POSH IntelliSense'in ekran görüntüsü

Cmdlet durumu

Modülünüzdeki tüm cmdlet'leri durum bilgisi olmayan hale getirin. Birden çok runbook işi aynı anda aynı AppDomain işlemde ve aynı korumalı alanda çalıştırılabilir. Bu düzeylerde paylaşılan bir durum varsa, işler birbirini etkileyebilir. Bu davranış aralıklı ve tanılaması zor sorunlara yol açabilir. İşte yapılmaması gerekenlere bir örnek:

$globalNum = 0
function Set-GlobalNum {
   param(
       [int] $num
   )

   $globalNum = $num
}
function Get-GlobalNumTimesTwo {
   $output = $globalNum * 2

   $output
}

Modül bağımlılığı

Modülün xcopy kullanılarak kopyalanabilir bir pakette tam olarak bulunduğundan emin olun. Otomasyon modülleri, çalışma kitapçıkları yürütüldüğünde Otomasyon korumalı alanlarına dağıtılır. Modüllerin, onları çalıştıran ana sistemden bağımsız olarak çalışması gerekir.

Bir modül paketini sıkıştırıp taşıyabilmeli ve başka bir ev sahibi PowerShell ortamına aktarıldığında normal şekilde çalışmasını sağlamalısınız. Bunun gerçekleşmesi için modülün Otomasyon'a aktarıldığında modül klasörünün dışındaki sıkıştırılmış dosyalara bağımlı olmadığından emin olun.

Modülünüz, bir ana bilgisayar üzerindeki benzersiz kayıt defteri ayarlarına bağlı olmamalıdır. Bir ürün yüklendiğinde yapılan ayarlara örnek olarak verilebilir.

Modül dosyası yolları

Modüldeki tüm dosyaların 140 karakterden az karakter içeren yollara sahip olduğundan emin olun. Uzunluğu 140 karakterden uzun olan tüm yollar runbook'ları içeri aktarmayla ilgili sorunlara neden olur. Otomasyon, yol boyutu 140 karakterden fazla olan bir dosyayı ile Import-ModulePowerShell oturumuna aktaramaz.

Modülleri içeri aktarma

Bu bölüm, otomasyon hesabınıza bir modülü içeri aktarmanın çeşitli yollarını tanımlar.

Azure portalında modülleri içeri aktarma

Azure portalında bir modülü içeri aktarmak için:

  1. Portalda Otomasyon Hesapları'nı bulun ve seçin.
  2. Otomasyon Hesapları sayfasında, listeden Otomasyon hesabınızı seçin.
  3. Paylaşılan Kaynaklar'ın altında Modüller'i seçin.
  4. Modül ekleyin'i seçin.
  5. Modülünüzü içeren .zip dosyasını seçin.
  6. İşlemi içeri aktarmaya başlamak için Tamam'ı seçin.

PowerShell kullanarak modülleri içeri aktarma

Bir modülü Otomasyon hesabınıza aktarmak için New-AzAutomationModule cmdlet'ini kullanabilirsiniz. Cmdlet bir modül .zip paketinin URL'sini alır.

$moduleName = "<ModuleName>"
$contentLinkUri = "<ModuleUri>"
$runtimeVersion = "<RuntimeVersion>" # 5.1 or 7.2
$resourceGroupName = "<ResourceGroupName>"
$automationAccountName = "<AutomationAccountName>"
New-AzAutomationModule -Name $moduleName -RuntimeVersion $runtimeVersion -ContentLinkUri $contentLinkUri -ResourceGroupName $resourceGroupName -AutomationAccountName $automationAccountName

Aynı cmdlet'i kullanarak doğrudan PowerShell Galerisi modülü içeri aktarabilirsiniz. ModuleName ve ModuleVersion, PowerShell Galerisi'den aldığınızdan emin olun.

$moduleName = "<ModuleName>"
$moduleVersion = "<ModuleVersion>"
$runtimeVersion = "<RuntimeVersion>" # 5.1 or 7.2
$resourceGroupName = "<ResourceGroupName>"
$automationAccountName = "<AutomationAccountName>"
New-AzAutomationModule -AutomationAccountName $automationAccountName -RuntimeVersion $runtimeVersion -ResourceGroupName $resourceGroupName -Name $moduleName -ContentLinkUri "https://www.powershellgallery.com/api/v2/package/$moduleName/$moduleVersion"

PowerShell Galerisi modüllerini doğrudan Galeri'den veya Otomasyon hesabınızdan içeri aktarabilirsiniz.

Modülü doğrudan PowerShell Galerisi içeri aktarmak için:

  1. adresine https://www.powershellgallery.com gidin ve içeri aktaracak modülü arayın.
  2. Yükleme Seçenekleri altında, Azure Otomasyonu sekmesinde > Azure Otomasyonu
  3. İçeri Aktar sayfasında Otomasyon hesabınızı ve ardından Tamam'ı seçin.

PowerShell Galerisi içeri aktarma modülünün ekran görüntüsü

Bir PowerShell Galerisi modülünü doğrudan Otomasyon hesabınızdan içeri aktarmak için:

  1. Portalda Otomasyon Hesapları'nı bulun ve seçin.
  2. Otomasyon Hesapları sayfasında, listeden Otomasyon hesabınızı seçin.
  3. Paylaşılan Kaynaklar'ın altında Modüller'i seçin.
  4. Galeriyi Gözat seçeneğini seçin ve galeride bir modül arayın.
  5. İçeri aktaracak modülü seçin ve İçeri Aktar'ı seçin.
  6. İçeri aktarma işlemini başlatmak için Tamam'ı seçin.

 Azure portalından PowerShell Galerisi modülü içeri aktarma ekran görüntüsü

Modülleri silme

Modülle ilgili sorunlarınız varsa veya modülün önceki bir sürümüne geri dönmeniz gerekiyorsa, bunu Otomasyon hesabınızdan silebilirsiniz. Otomasyon hesabı oluştururken içeri aktarılan varsayılan modüllerin özgün sürümlerini silemezsiniz. Silinecek modül, varsayılan modüllerden birinin daha yeni bir sürümüyse, Otomasyon hesabınızla birlikte yüklenen sürüme geri döner. Aksi takdirde, Otomasyon hesabınızdan sildiğiniz tüm modüller kaldırılır.

Azure portalında modülleri silme

Azure portalında bir modülü kaldırmak için:

  1. Portalda Otomasyon Hesapları'nı bulun ve seçin.
  2. Otomasyon Hesapları sayfasında, listeden Otomasyon hesabınızı seçin.
  3. Paylaşılan Kaynaklar'ın altında Modüller'i seçin.
  4. Kaldırmak istediğiniz modülü seçin.
  5. Modül sayfasında Sil'i seçin. Bu modül varsayılan modüllerden biriyse Otomasyon hesabı oluşturulduğunda var olan sürüme geri döner.

PowerShell kullanarak modülleri silme

PowerShell aracılığıyla bir modülü kaldırmak için aşağıdaki komutu çalıştırın:

Remove-AzAutomationModule -Name <moduleName> -AutomationAccountName <automationAccountName> -ResourceGroupName <resourceGroupName>

Sonraki adımlar