Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: Azure Logic Apps (Standart)
Azure Logic Apps'te Standart iş akışınızla satır içinde özel tümleştirme görevleri gerçekleştirmek için iş akışınızın içinden doğrudan PowerShell kodu ekleyebilir ve çalıştırabilirsiniz. Bu görev için PowerShell Kodunu Yürüt adlı Satır içi Kod eylemini kullanın. Bu eylem, iş akışınızın sonraki eylemlerinde bu çıkışı kullanabilmeniz için PowerShell kodunuzdan sonuçları döndürür.
Bu özellik aşağıdaki avantajları sağlar:
Karmaşık tümleştirme zorluklarını çözebilmeniz için iş akışı tasarımcısında kendi betiklerinizi yazın. Başka hizmet planı gerekmez.
Bu avantaj karmaşıklığı ve maliyeti azaltır çünkü daha fazla hizmeti yönetebilir ve iş akışı geliştirmeyi kolaylaştırabilirsiniz.
İş akışınızda kişiselleştirilmiş bir betik alanı sağlayan ayrılmış bir kod dosyası oluşturun.
Gelişmiş görev yürütme için güçlü işlevler ve devralma sağlayan Azure İşlevleri PowerShell işlevleriyle tümleştirme.
betikleri iş akışlarınızla birlikte dağıtın.
Bu kılavuzda, eylemin iş akışınıza nasıl ekleneceği ve çalıştırmak istediğiniz PowerShell kodunun nasıl ekleneceği gösterilir.
Önkoşullar
Bir Azure hesabı ve aboneliği Ücretsiz bir Azure hesabı edinin.
PowerShell betiğinizi eklemek istediğiniz iş akışına sahip Standart mantıksal uygulama kaynağı.
İş akışının zaten bir tetikleyiciyle başlaması gerekir. Senaryonuz için herhangi bir tetikleyici kullanabilirsiniz, ancak örnek olarak, bu kılavuz http isteği alındığında adlı İstektetikleyicisini ve yanıt eylemini kullanır. İş akışı, başka bir uygulama veya iş akışı tetikleyicinin uç nokta URL'sine istek gönderdiğinde çalışır. Örnek betik, sonraki eylemlerde kullanabileceğiniz çıkış olarak kod yürütme sonuçlarını döndürür.
Mantıksal uygulama kaynağınız ve iş akışınız yoksa şu adımları izleyerek bunları şimdi oluşturun:
Dikkat edilmesi gereken noktalar
Azure portalı betiğinizi powershell betik dosyası (.ps1) olarak workflow.json dosyanızla aynı klasöre kaydeder. Bu klasör, iş akışınız için JSON tanımını depolar ve dosyayı iş akışı tanımıyla birlikte mantıksal uygulama kaynağınıza dağıtır.
.ps1 dosya biçimi, daha az "şablon kodu" yazmanıza ve yalnızca PowerShell kodu yazmaya odaklanmanıza olanak tanır. Eylemi yeniden adlandırırsanız, dosya da yeniden adlandırılır, ancak tam tersi olmaz. Dosyayı doğrudan yeniden adlandırırsanız, yeniden adlandırılan sürüm önceki sürümün üzerine yazar. Eylem adı ve dosya adları eşleşmiyorsa, eylem dosyayı bulamaz ve yeni bir boş dosya oluşturmaya çalışır.
Betik iş akışı için yereldir. Aynı betiği diğer iş akışlarında kullanmak için Kudu konsolunda betik dosyasını görüntüleyin ve ardından betiği diğer iş akışlarında yeniden kullanmak üzere kopyalayın.
Sınırlamalar
| Veri Akışı Adı | Sınırla | Notlar |
|---|---|---|
| Betik çalıştırma süresi | 10 dakika | Daha uzun sürelere ihtiyaç duyan senaryolarınız varsa, gereksinimleriniz hakkında daha fazla bilgi sağlamak için ürün geri bildirimi seçeneğini kullanın. |
| Çıkış boyutu | 100 MB | Çıkış boyutu, eylemler için çıkış boyutu sınırına bağlıdır ve bu sınır genellikle 100 MB'tır. |
PowerShell sürümünü güncelleştirme
Uygulama ayarlarını düzenleyerek mantıksal uygulama kaynağınızdaki PowerShell sürümünü değiştirebilirsiniz. Ancak, uygulamanızı yükseltmeden önce aşağıdaki noktaları gözden geçirin:
Sürüm yükseltmesi, Azure İşlevleri çalışma zamanında uzantı olarak barındırılan bir çalışma zamanını kullanan Standart mantık uygulamanızda bozucu değişikliklere yol açabilir. Yükseltmeden önce aşağıdaki geçiş kılavuzunu gözden geçirin: Azure İşlevleri uygulamalarınızı PowerShell 7.4'te çalışacak şekilde yükseltme.
Mantıksal uygulamanızın Azure'da Azure İşlevleri çalışma zamanı için en son çalışma zamanı sürümünü (4.x) kullandığından emin olun. Daha fazla bilgi için bkz. Geçerli çalışma zamanı sürümünü görüntüleme.
Not
Varsayılan olarak, PowerShell sürümü belirtmezseniz Azure Logic Apps, Azure İşlevleri ile aynı varsayılan sürümü kullanır. Şu anda PowerShell 7.4 genel kullanıma sunulmuştur. Kullanılabilir sürümler hakkında daha fazla bilgi için bkz. Azure İşlevleri PowerShell geliştirici kılavuzu.
PowerShell sürümünü güncelleştirmek istediğiniz yere bağlı olarak, ilgili adımları izleyin:
Azure portalında Standart mantıksal uygulama kaynağınızı açın.
Kaynak kenar çubuğundaki Ayarlar'ın altında Ortam değişkenleri'ni seçin.
Uygulama ayarları sekmesinde + Ekle'yi seçin.
Uygulama ayarı ekle/düzenle bölmesinde aşağıdaki yeni uygulama ayarını ekleyin:
Parametre Değer Açıklama Adı LOGIC_APPS_POWERSHELL_VERSIONUygulama ayarı adı. Değer < Powershell-versiyon> PowerShell sürümü, şu anda 7.4. İşiniz bittiğinde Uygula'yı seçin. Yeniden başlatma uyarısı görüntülendiğinde Devam'ı seçin.
Mantıksal uygulamanız güncelleştirilmiş sürümle yeniden başlatılır.
PowerShell Kodunu Yürüt eylemini ekleme
Azure portalında Standart mantıksal uygulama kaynağınızı açın.
Kaynak kenar çubuğundaki İş Akışları'nın altında İş Akışları'nı seçin ve ardından boş iş akışınızı seçin.
İş akışı kenar çubuğundaki Araçlar'ın altında tasarımcıyı seçerek iş akışını açın.
Eylem eklemeye yönelik genel adımları izleyerek PowerShell Kodunu Yürüt adlı Satır içi Kod İşlemleri eylemini iş akışınıza ekleyin.
Eylem bilgileri bölmesi açıldıktan sonra, Parametreler sekmesindeki Kod Dosyası kutusunda, önceden doldurulmuş örnek kodu kendi kodunuzla güncelleştirin.
İş akışınızdan gelen verilere erişmek için bu kılavuzun devamında betiğinizdeki İş akışı tetikleyicisine ve eylem çıkışlarına erişme konusuna bakın.
Betiğin sonuçlarını veya diğer verileri iş akışınıza döndürmek için bkz . Verileri iş akışınıza döndürme.
Aşağıdaki örnekte, örnek betik koduyla eylemin Parametreler sekmesi gösterilmektedir:
Aşağıdaki örnekte örnek betik kodu gösterilmektedir:
# Use the following cmdlets to retrieve outputs from prior steps. # $triggerOutput = Get-TriggerOutput # $ActionOutput = Get-ActionOutput -ActionName <action-name> $customResponse = [PSCustomObject]@{ Message = "Hello world!" } # Use Write-Debug/Write-Host/Write-Output/ to log messages to Application Insights. # Write-Host/Write-Output/Write-Debug and 'return' won't return an output to the workflow. # Write-Host "Sending to Application Insight logs" # Use Push-WorkflowOutput to push outputs into subsequent actions. Push-WorkflowOutput -Output $customResponseAşağıdaki örnekte özel bir örnek betik gösterilmektedir:
$action = Get-TriggerOutput $results = "Hello from PowerShell!" Push-WorkflowOutput -Output $resultsbitirdiğinizde iş akışınızı kaydedin.
İş akışınızı çalıştırdıktan sonra, etkinleştirilmişse Application Insights'ta iş akışı çıkışını gözden geçirebilirsiniz. Daha fazla bilgi için bkz . Application Insights'ta çıkışı görüntüleme.
Betiğinizdeki iş akışı tetikleyicilerine ve eylem çıkışlarına erişme
Tetikleyiciden ve önceki eylemlerden çıkış değerleri, birden çok parametresi olan özel bir nesne kullanılarak döndürülür. Bu çıkışlara erişmek ve istediğiniz değeri döndürdüğünüzden emin olmak için Get-TriggerOutput, Get-ActionOutput ve Push-WorkflowOutput cmdlet'lerinin yanı sıra aşağıdaki tabloda açıklanan uygun parametreleri kullanın, örneğin:
$trigger = Get-TriggerOutput
$statusCode = $trigger.status.ToString();
$action = Get-ActionOutput -ActionName Compose
$actionOutput = $action.outputs['actionOutput'].ToString();
$populatedString = "Send the $statusCode for the trigger status and $actionOutputName."
Push-WorkflowOutput -Output $populatedString
Not
PowerShell'de, karmaşık bir nesnenin içinde JValue türüne sahip bir nesneye başvurursanız ve bu nesneyi bir dizeye eklerseniz, biçim özel durumu alırsınız. Bu hatayı önlemek için kullanın ToString().
Tetikleyici ve eylem yanıtı çıkışları
Aşağıdaki tabloda, Get-ActionOutput veya Get-TriggerOutput çağrısı yaptığınızda oluşturulan çıkışlar listelenmektedir. Dönüş değeri, aşağıdaki çıkışları içeren adlı PowershellWorkflowOperationResultkarmaşık bir nesnedir.
| Veri Akışı Adı | Tür | Açıklama |
|---|---|---|
| Adı | Dize | Tetikleyicinin veya eylemin adı |
| Giriş | JToken | Tetikleyiciye veya eyleme geçirilen giriş değerleri |
| Çıkışlar | JToken | Yürütülen tetikleyiciden veya eylemden elde edilen çıkışlar |
| StartTime | Tarih ve Saat | Tetikleyici veya eylemin başlangıç saati |
| EndTime | Tarih ve Saat | Tetikleyicinin veya eylemin bitiş saati |
| ScheduledTime | Tarih ve Saat | Tetikleyiciyi veya eylemi çalıştırmak için planlanmış zaman |
| OriginHistoryName | Dize | özelliğini kullanan splitOn tetikleyicilerin kaynak geçmişi adı |
| SourceHistoryName | Dize | Yeniden aktarılan tetikleyicinin kaynak geçmişi adı |
| TrackingId | Dize | İşlem izleme kimliği |
| Kod | Dize | Sonucun durum kodu |
| Statü | Dize | Tetikleyicinin veya eylemin çalıştırma durumu, örneğin, "Başarılı" veya "Başarısız" |
| Hata | JToken | HTTP hata kodu |
| TrackedProperties | JToken | Ayarladığınız tüm izlenen özellikler |
çıkışları iş akışınıza döndürme
İş akışınıza çıkış döndürmek için Push-WorkflowOutput cmdlet'ini kullanmanız gerekir.
Özel PowerShell komutları
PowerShell Kodunu Yürüt eylemi, iş akışınızla ve iş akışınızdaki diğer işlemlerle etkileşime yönelik aşağıdaki özel PowerShell komutlarını (cmdlet'ler) içerir:
Get-TriggerOutput
İş akışının tetikleyicisinden çıktıyı alır.
Sözdizimi
Get-TriggerOutput
Parametreler
Hiçbiri.
Get-ActionOutput
İş akışındaki başka bir eylemden çıktı alır ve adlı PowershellWorkflowOperationResultbir nesne döndürür.
Sözdizimi
Get-ActionOutput [ -ActionName <String> ]
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
| ActionName | Dize | İş akışındaki eylemin adı ve başvurmak istediğiniz çıkış. |
Push-WorkflowOutput
PowerShell Kodunu Yürüt eyleminden çıkışı iş akışınıza gönderir ve bu işlem herhangi bir nesne türünü geri geçirebilir. Dönüş değeri null ise, cmdlet'inden null nesne hatası alırsınız.
Not
Write-Debug, Write-Hostve Write-Output cmdlet'leri iş akışınıza değer döndürmez.
return deyimi, iş akışınıza da değer döndürmez.
Ancak, Application Insights'ta görüntülenen izleme iletilerini yazmak için bu cmdlet'leri kullanabilirsiniz.
Daha fazla bilgi için bkz . Microsoft.PowerShell.Utility.
Sözdizimi
Push-WorkflowOutput [-Output <Object>] [-Clobber]
Parametreler
| Parametre | Tür | Açıklama |
|---|---|---|
| Çıktı | Değişir | İş akışına döndürmek istediğiniz çıkış. Bu çıkış herhangi bir türe sahip olabilir. |
| Clobber | Değişir | Önceden gönderilen çıkışı geçersiz kılmak için kullanabileceğiniz isteğe bağlı bir anahtar parametresi. |
PowerShell kullanarak yönetilen kimlikle erişimin kimliğini doğrulama ve yetkilendirme
Yönetilen kimlikle mantıksal uygulama kaynağınız ve iş akışınız, kodunuzda kimlik bilgileri olmadan Microsoft Entra kimlik doğrulamasını destekleyen herhangi bir Azure hizmetine ve kaynağına erişimi doğrulayabilir ve yetkilendirilebilir.
PowerShell Kodunu Yürüt eyleminin içinden, erişimi etkinleştirdiğiniz diğer Azure kaynaklarında eylemler gerçekleştirebilmeniz için yönetilen kimlikle kimlik doğrulaması yapabilir ve erişimi yetkileyebilirsiniz. Örneğin, bir sanal makineyi yeniden başlatabilir veya başka bir mantıksal uygulama iş akışının çalıştırma ayrıntılarını alabilirsiniz.
Yönetilen kimliği PowerShell Kodunu Yürüt eyleminin içinden kullanmak için şu adımları izlemeniz gerekir:
Mantıksal uygulamanızda yönetilen kimliği ayarlayın ve yönetilen kimlik erişimini hedef Azure kaynağında verin. Ayrıntılı adımlar için bkz . Yönetilen kimliklerle Azure kaynaklarına erişimin ve bağlantıların kimliğini doğrulama.
Hedef Azure kaynağında aşağıdaki noktaları gözden geçirin:
Rol sekmesinde Katkıda Bulunan rolü genellikle yeterlidir.
Rol ataması ekle sayfasındaki Üyeler sekmesindeki Erişim ata özelliği için Yönetilen kimlik'i seçtiğinizden emin olun.
Üye seç'i seçtikten sonra Yönetilen kimlikleri seçin bölmesinde, kullanmak istediğiniz yönetilen kimliği seçin.
PowerShell Kodunu Yürüt eyleminize ilk deyim olarak aşağıdaki kodu ekleyin:
Connect-AzAccount -IdentityArtık cmdlet'leri ve modülleri kullanarak Azure kaynağıyla çalışabilirsiniz.
Betik dosyasını görüntüleme
Azure portalında Standart mantıksal uygulama kaynağınızı açın.
Kaynak kenar çubuğundaki Geliştirme Araçları'nın altında Gelişmiş Araçlar'ı seçin.
Gelişmiş Araçlar sayfasında Git'i seçerek Kudu konsolunu açın.
Hata ayıklama konsolu menüsünü açın ve CMD'yi seçin.
Mantıksal uygulamanızın kök konumuna gidin: site/wwwroot
bu yol boyunca .ps1 uzantısına sahip dosyayı içeren iş akışınızın klasörüne gidin: site/wwwroot/{workflow-name}
Dosya adının yanındaki Düzenle'yi seçerek dosyayı açın ve görüntüleyin.
Application Insights'ta günlükleri görüntüleme
Azure portalında mantıksal uygulama kenar çubuğundaki İzleme'nin altında Application Insights'ı (İçgörüler'i değil) seçin.
Application Insights kaynağınızın bağlantısını seçin.
Application Insights kaynak kenar çubuğundaki İzleme'nin altında Günlükler'i seçin.
İş akışı yürütmenizdeki izlemeleri veya hataları bulmak için bir sorgu oluşturun, örneğin:
union traces, errors | project TIMESTAMP, message
Modül
PowerShell modülleri, çeşitli bileşenler içeren kendi içinde, yeniden kullanılabilir birimlerdir, örneğin:
- Cmdlet'ler: Belirli görevleri gerçekleştiren tek tek komutlar.
- Sağlayıcılar: Kayıt defteri veya dosya sistemi gibi veri depolarına sürücü gibi erişim izni verin.
- İşlevler: Belirli eylemleri gerçekleştiren yeniden kullanılabilir kod blokları.
- Değişkenler: Modül içinde kullanılacak verileri depolayın.
- Diğer kaynak türleri.
Modül, PowerShell kodunu düzenleyerek dağıtmayı kolaylaştırır. Örneğin, ilgili işlevleri daha yönetilebilir ve paylaşılabilir hale getirmek için kendi modüllerinizi oluşturabilirsiniz. PowerShell Kodunu Yürüt eylemi hem genel hem de özel PowerShell modüllerini içeri aktarmanıza olanak tanır.
Genel modüller
Genel kullanıma açık modülleri bulmak için PowerShell galerisini ziyaret edin. Standart mantıksal uygulama kaynağı en fazla 10 genel modülü destekleyebilir. Herhangi bir genel modülü kullanmak için aşağıdaki adımları izleyerek bu özelliği etkinleştirmeniz gerekir:
Azure portalında mantıksal uygulama kenar çubuğundaki Geliştirme Araçları'nın altında Gelişmiş Araçlar'ı seçin.
Gelişmiş Araçlar sayfasında Git'i seçin.
Kudu araç çubuğunda, Hata ayıklama konsolu menüsünden CMD'yi seçin.
Dizin yapısını veya komut satırını kullanarak C:\home\site\wwwroot konumunda mantıksal uygulamanızın kök düzeyine göz atın.
İş akışının host.json dosyasını açın ve
ManagedDependency.enabledözelliğini, varsayılan olarak zaten ayarlanmış olantruedeğerine ayarlayın."managedDependency": { "enabled": true }requirements.psd1 adlı dosyayı açın. Aşağıdaki söz dizimini kullanarak istediğiniz modülün adını ve sürümünü ekleyin:
MajorNumber.*veya tam modül sürümü, örneğin:@{ Az = '1.*' SqlServer = '21.1.18147' }
Genel modüller için dikkat edilmesi gerekenler
Bağımlılık yönetimini kullanıyorsanız aşağıdaki noktalar geçerlidir:
Modülleri indirmek için genel modüllerin PowerShell Galerisi erişmesi gerekir.
Yönetilen bağımlılıklar şu anda lisansı etkileşimli olarak kabul ederek veya
-AcceptLicenseçalıştırdığınızda seçeneği sağlayarak lisans kabul etmenizi gerektiren modülleri desteklememektedir.
Özel modüller
Kendi özel PowerShell modüllerinizi oluşturabilirsiniz. İlk PowerShell modülünüzü oluşturmak için bkz . PowerShell Betik Modülü Yazma.
Azure portalında mantıksal uygulama kaynak kenar çubuklarınızda Geliştirme Araçları'nın altında Gelişmiş Araçlar'ı seçin.
Gelişmiş Araçlar sayfasında Git'i seçin.
Kudu araç çubuğunda, Hata ayıklama konsolu menüsünden CMD'yi seçin.
Dizin yapısını veya komut satırını kullanarak C:\home\site\wwwroot konumunda mantıksal uygulamanızın kök düzeyine göz atın.
Modules adlı bir klasör oluşturun.
Modüller klasöründe, özel modülünüzle aynı ada sahip bir alt klasör oluşturun.
Özel modül klasörünüzde özel PowerShell modül dosyanızı .psm1 uzantısıyla ekleyin. .psd1 uzantısına sahip isteğe bağlı bir PowerShell bildirim dosyası da ekleyebilirsiniz.
İşiniz bittiğinde, tam mantıksal uygulama dosya yapınız aşağıdaki örneğe benzer şekilde görünür:
MyLogicApp
-- execute_powershell_script.ps1
-- mytestworkflow.json
Modules
-- MyPrivateModule
--- MyPrivateModule.psd1
--- MyPrivateModule.psm1
-- MyPrivateModule2
--- MyPrivateModule2.psd1
--- MyPrivateModule2.psm1
requirements.psd1
host.json
Derleme hataları
Bu sürümde web tabanlı düzenleyici sınırlı IntelliSense desteği içeriyor ve bu destek hala geliştiriliyor. İş akışınızı kaydettiğinizde tüm derleme hataları algılandı ve Azure Logic Apps çalışma zamanı betiğinizi derler. Bu hatalar, Application Insights aracılığıyla mantıksal uygulamanızın hata günlüklerinde görünür.
Çalışma zamanı hataları
İş akışı eylemi herhangi bir çıkış döndürmez.
Push-WorkflowOutput cmdlet'i kullandığınızdan emin olun.
PowerShell Code yürütme eylemi başarısız oluyor: "'{some-text}' terimi tanınmıyor..."
requirements.psd1 dosyasında bir genel modüle yanlış başvurursanız veya özel modülünüz C:\home\site\wwwroot\Modules{module-name} yolunda yoksa aşağıdaki hatayı alırsınız:
"'{some-text}' terimi bir cmdlet, işlev, betik dosyası veya yürütülebilir program adı olarak tanınmıyor. Adın yazımını denetleyin veya bir yol eklenip eklenmediğini denetleyin, yolun doğru olduğunu doğrulayın ve yeniden deneyin."
Not
Varsayılan olarak, Az* modülleri requirements.psd1 dosyasında görünür, ancak dosya oluşturma sırasında açıklama eklenir. Modülden bir cmdlet'e başvurarak modülün açıklamasını kaldırdığınızdan emin olun.
PowerShell Code yürütme eylemi başarısız oluyor: "Bağımsız değişken null olduğundan 'Output' parametresine bağlanamıyor."
Bu hata, iş akışına null bir nesne göndermeye çalıştığınızda oluşur. Birlikte Push-WorkflowOutput gönderdiğiniz nesnenin null olmadığını onaylayın.