Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku pada: Azure Logic Apps (Standar)
Untuk melakukan tugas integrasi kustom sebaris dengan alur kerja Standar Anda di Azure Logic Apps, Anda dapat langsung menambahkan dan menjalankan kode PowerShell dari dalam alur kerja Anda. Untuk tugas ini, gunakan tindakan Kode Sebaris bernama Jalankan Kode PowerShell. Tindakan ini mengembalikan hasil dari kode PowerShell sehingga Anda dapat menggunakan output ini dalam tindakan alur kerja berikutnya.
Kemampuan ini memberikan manfaat berikut:
Tulis skrip Anda sendiri dalam perancang alur kerja sehingga Anda dapat menyelesaikan tantangan integrasi yang kompleks. Tidak ada paket layanan lain yang diperlukan.
Manfaat ini mengurangi kompleksitas dan biaya karena Anda dapat mengelola lebih banyak layanan dan menyederhanakan pengembangan alur kerja.
Buat file kode khusus, yang menyediakan ruang skrip yang dipersonalisasi dalam alur kerja Anda.
Integrasikan dengan fungsi Azure Functions PowerShell, yang menyediakan fungsionalitas dan pewarisan yang kuat untuk eksekusi tugas tingkat lanjut.
Sebarkan skrip bersama alur kerja Anda.
Panduan ini memperlihatkan cara menambahkan tindakan dalam alur kerja Anda dan menambahkan kode PowerShell yang ingin Anda jalankan.
Prasyarat
Akun dan langganan Azure. Dapatkan akun Azure gratis.
** Sumber daya aplikasi logika standar dengan alur kerja tempat Anda ingin menambahkan skrip PowerShell Anda.
Alur kerja harus sudah dimulai dengan pemicu. Anda dapat menggunakan pemicu apa pun untuk skenario Anda, tetapi sebagai contoh, panduan ini menggunakan pemicu Permintaan bernama Saat permintaan HTTP diterima dan juga tindakan Respons . Alur kerja berjalan ketika aplikasi atau alur kerja lain mengirim permintaan ke URL titik akhir pemicu. Skrip sampel mengembalikan hasil dari eksekusi kode sebagai output yang dapat Anda gunakan dalam tindakan berikutnya.
Jika Anda tidak memiliki sumber daya dan alur kerja aplikasi logika, buat sekarang dengan mengikuti langkah-langkah berikut:
Pertimbangan
portal Azure menyimpan skrip Anda sebagai file skrip PowerShell (.ps1) di folder yang sama dengan file workflow.json Anda, yang menyimpan definisi JSON untuk alur kerja Anda, dan menyebarkan file ke sumber daya aplikasi logika Anda bersama dengan definisi alur kerja.
Format file .ps1 memungkinkan Anda menulis lebih sedikit "boilerplate" dan fokus hanya pada penulisan kode PowerShell. Jika Anda mengganti nama tindakan, file juga diganti namanya, tetapi bukan sebaliknya. Jika Anda langsung mengganti nama file, versi yang diganti namanya akan menimpa versi sebelumnya. Jika nama tindakan dan nama file tidak cocok, tindakan tidak dapat menemukan file dan mencoba membuat file kosong baru.
Skrip bersifat lokal untuk alur kerja. Untuk menggunakan skrip yang sama di alur kerja lain, lihat file skrip di konsol Kudu, lalu salin skrip untuk digunakan kembali di alur kerja lain.
Batasan
| Nama | Batas | Catatan |
|---|---|---|
| Durasi eksekusi skrip | 10 menit | Jika Anda memiliki skenario yang membutuhkan durasi lebih lama, gunakan opsi umpan balik produk untuk memberikan informasi selengkapnya tentang kebutuhan Anda. |
| Ukuran output | 100 MB | Ukuran output tergantung pada batas ukuran output untuk tindakan, yang umumnya 100 MB. |
Memperbarui versi PowerShell
Anda dapat mengubah versi PowerShell di sumber daya aplikasi logika Anda dengan mengedit pengaturan aplikasi. Namun, sebelum meningkatkan aplikasi, tinjau pertimbangan berikut:
Peningkatan versi mungkin memperkenalkan perubahan yang mungkin menyebabkan malfungsi pada aplikasi logika Standard, yang menggunakan runtime yang diintegrasikan sebagai ekstensi pada runtime Azure Functions. Sebelum Anda meningkatkan, tinjau panduan migrasi berikut: Meningkatkan aplikasi Azure Functions Anda untuk dijalankan di PowerShell 7.4.
Pastikan aplikasi logika Anda menggunakan versi runtime terbaru untuk runtime Azure Functions di Azure, yaitu versi 4.x. Untuk informasi selengkapnya, lihat Menampilkan versi runtime saat ini.
Catatan
Secara default, jika Anda tidak menentukan versi PowerShell, Azure Logic Apps menggunakan versi default yang sama dengan Azure Functions. Saat ini, PowerShell 7.4 umumnya tersedia. Untuk informasi selengkapnya tentang versi yang tersedia, lihat panduan pengembang Azure Functions PowerShell.
Berdasarkan tempat Anda ingin memperbarui versi PowerShell, ikuti langkah-langkah terkait:
Di portal Azure, buka sumber daya aplikasi logika Standard Anda.
Pada bilah sisi sumber daya, di bawah Pengaturan, pilih Variabel lingkungan.
Pada tab Pengaturan aplikasi , pilih + Tambahkan.
Pada panel Tambahkan/Edit pengaturan aplikasi , tambahkan pengaturan aplikasi baru berikut ini:
Pengaturan Nilai Deskripsi Nama LOGIC_APPS_POWERSHELL_VERSIONNama pengaturan aplikasi. Nilai < versi powershell> Versi PowerShell, saat ini 7.4. Setelah selesai, pilih Terapkan. Saat peringatan mulai ulang muncul, pilih Lanjutkan.
Aplikasi logika Anda dimulai ulang dengan versi yang diperbarui.
Menambahkan tindakan Jalankan Kode PowerShell
Di portal Azure, buka sumber daya aplikasi logika Standard Anda.
Pada bilah sisi sumber daya, di bawah Alur Kerja, pilih Alur Kerja, lalu pilih alur kerja kosong Anda.
Pada bilah samping alur kerja, di bawah Alat, pilih perancang untuk membuka alur kerja.
Tambahkan tindakan Operasi Kode Sebaris bernama Jalankan Kode PowerShell ke alur kerja Anda dengan mengikuti langkah-langkah umum untuk menambahkan tindakan.
Setelah panel informasi tindakan terbuka, pada tab Parameter , dalam kotak File Kode, perbarui kode sampel yang telah diisi sebelumnya dengan kode Anda sendiri.
Untuk mengakses data yang berasal dari alur kerja Anda, lihat Pemicu alur kerja akses dan output tindakan dalam skrip Anda nanti dalam panduan ini.
Untuk mengembalikan hasil skrip atau data lain ke alur kerja Anda, lihat Mengembalikan data ke alur kerja Anda.
Contoh berikut menunjukkan tab Parameter tindakan dengan kode skrip sampel:
Contoh berikut menunjukkan contoh kode skrip:
# 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 $customResponseContoh berikut menunjukkan contoh skrip kustom:
$action = Get-TriggerOutput $results = "Hello from PowerShell!" Push-WorkflowOutput -Output $resultsSetelah selesai, simpan alur kerja Anda.
Setelah menjalankan alur kerja, Anda dapat meninjau output alur kerja di Application Insights, jika diaktifkan. Untuk informasi selengkapnya, lihat Menampilkan output di Application Insights.
Mengakses pemicu alur kerja dan output tindakan dalam skrip Anda
Nilai output dari pemicu dan tindakan sebelumnya dikembalikan menggunakan objek kustom, yang memiliki beberapa parameter. Untuk mengakses output ini dan memastikan bahwa Anda mengembalikan nilai yang Anda inginkan, gunakan cmdlet Get-TriggerOutput, Get-ActionOutput, dan Push-WorkflowOutput ditambah parameter yang sesuai yang dijelaskan dalam tabel berikut, misalnya:
$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
Catatan
Di PowerShell, jika Anda mereferensikan objek yang memiliki jenis JValue di dalam objek kompleks, dan Anda menambahkan objek tersebut ke string, Anda mendapatkan pengecualian format. Untuk menghindari kesalahan ini, gunakan ToString().
Output respons pemicu dan tindakan
Tabel berikut mencantumkan output yang dihasilkan saat Anda memanggil Get-ActionOutput atau Get-TriggerOutput. Nilai yang dikembalikan adalah objek kompleks yang disebut PowershellWorkflowOperationResult, yang berisi output berikut.
| Nama | Tipe | Deskripsi |
|---|---|---|
| Nama | string | Nama untuk pemicu atau tindakan |
| Input | JToken | Nilai input yang diteruskan ke pemicu atau tindakan |
| Output | JToken | Output dari pemicu atau tindakan yang dijalankan |
| StartTime | Tanggal dan Waktu | Waktu mulai pemicu atau tindakan |
| EndTime | Tanggal dan Waktu | Waktu akhir untuk pemicu atau tindakan |
| ScheduledTime | Tanggal dan Waktu | Waktu terjadwal untuk menjalankan pemicu atau tindakan atau pemicu. |
| OriginHistoryName | string | Nama riwayat asal untuk pemicu yang menggunakan splitOn properti |
| SourceHistoryName | string | Nama riwayat sumber untuk pemicu yang diajukan kembali |
| TrackingId | string | ID pelacakan operasi |
| Kode | string | Kode status untuk hasilnya |
| Keadaan | string | Status pelaksanaan untuk pemicu atau tindakan, misalnya, "Berhasil" atau "Gagal" |
| Kesalahan | JToken | Kode kesalahan HTTP |
| TrackedProperties | JToken | Properti terlacak apa pun yang Anda siapkan |
Mengembalikan output ke alur kerja Anda
Untuk mengembalikan output apa pun ke alur kerja, Anda harus menggunakan cmdletPush-WorkflowOutput.
Perintah PowerShell kustom
Tindakan Jalankan Kode PowerShell mencakup perintah PowerShell kustom (cmdlet) berikut untuk berinteraksi dengan alur kerja Anda dan operasi lain dalam alur kerja Anda:
Get-TriggerOutput
Mendapatkan output dari pemicu alur kerja.
Sintaks
Get-TriggerOutput
Parameter
Tidak ada.
Get-ActionOutput
Mendapatkan output dari tindakan lain dalam alur kerja dan mengembalikan objek bernama PowershellWorkflowOperationResult.
Sintaks
Get-ActionOutput [ -ActionName <String> ]
Parameter
| Pengaturan | Tipe | Deskripsi |
|---|---|---|
| ActionName | string | Nama tindakan dalam alur kerja dengan output yang ingin Anda referensikan. |
Push-WorkflowOutput
Mendorong output dari tindakan Jalankan Kode PowerShell ke alur kerja Anda, yang dapat meneruskan kembali jenis objek apa pun. Jika nilai yang dikembalikan null, Anda mendapatkan kesalahan objek null dari cmdlet.
Catatan
Write-Debug, Write-Host, dan Write-Output cmdlet tidak mengembalikan nilai ke alur kerja Anda. Pernyataan return ini juga tidak akan mengembalikan nilai ke alur kerja Anda.
Namun, Anda dapat menggunakan cmdlet ini untuk menulis pesan pelacakan yang muncul di Application Insights.
Untuk informasi selengkapnya, lihat Microsoft.PowerShell.Utility.
Sintaks
Push-WorkflowOutput [-Output <Object>] [-Clobber]
Parameter
| Pengaturan | Tipe | Deskripsi |
|---|---|---|
| Hasil | Beragam | Output yang ingin Anda kembalikan ke alur kerja. Output ini dapat memiliki jenis apa pun. |
| Clobber | Beragam | Parameter sakelar opsional yang dapat Anda gunakan untuk mengambil alih output yang didorong sebelumnya. |
Mengautentikasi dan mengotorisasi akses dengan identitas terkelola menggunakan PowerShell
Dengan identitas terkelola, sumber daya dan alur kerja aplikasi logika Anda dapat mengautentikasi dan mengotorisasi akses ke layanan dan sumber daya Azure apa pun yang mendukung autentikasi Microsoft Entra tanpa menyertakan kredensial dalam kode Anda.
Dari dalam tindakan Jalankan Kode PowerShell, Anda dapat mengautentikasi dan mengotorisasi akses dengan identitas terkelola sehingga Anda dapat melakukan tindakan pada sumber daya Azure lainnya tempat Anda mengaktifkan akses. Misalnya, Anda dapat menghidupkan ulang komputer virtual atau mendapatkan detail eksekusi alur kerja aplikasi logika lain.
Untuk menggunakan identitas terkelola dari dalam tindakan Jalankan Kode PowerShell, Anda harus mengikuti langkah-langkah berikut:
Siapkan identitas terkelola di aplikasi logika Anda dan berikan akses identitas terkelola pada sumber daya Azure target. Untuk langkah-langkah mendetail, lihat Mengautentikasi akses dan koneksi ke sumber daya Azure dengan identitas terkelola.
Pada sumber daya Azure target, tinjau pertimbangan berikut:
Pada tab Peran , peran Kontributor biasanya cukup.
Pada halaman Tambahkan penetapan peran, pada tab Anggota , untuk properti Tetapkan akses ke , pastikan Anda memilih Identitas terkelola.
Setelah Anda memilih Pilih anggota, pada panel Pilih identitas terkelola, pilih identitas terkelola yang ingin Anda gunakan.
Dalam tindakan Jalankan Kode PowerShell Anda, sertakan kode berikut sebagai pernyataan pertama:
Connect-AzAccount -IdentitySekarang, Anda dapat bekerja dengan sumber daya Azure menggunakan cmdlet dan modul.
Menampilkan file skrip
Di portal Azure, buka sumber daya aplikasi logika Standard Anda.
Pada bilah sisi sumber daya, di bawah Alat Pengembangan, pilih Alat Tingkat Lanjut.
Pada halaman Alat Tingkat Lanjut , pilih Buka, yang membuka konsol Kudu .
Buka menu konsol Debug, dan pilih CMD.
Buka lokasi akar aplikasi logika Anda: site/wwwroot
Buka folder alur kerja Anda, yang berisi file dengan ekstensi .ps1 di sepanjang jalur ini: site/wwwroot/{workflow-name}
Di samping nama file, pilih Edit untuk membuka dan menampilkan file.
Melihat log di Application Insights
Di portal Microsoft Azure, pada bilah sisi aplikasi logika, di bawah Pemantauan, pilih Application Insights (bukan Insights).
Pilih tautan ke sumber daya Application Insights Anda.
Pada bilah sisi sumber daya Application Insights , di bawah Pemantauan, pilih Log.
Buat kueri untuk menemukan jejak atau kesalahan dari eksekusi alur kerja Anda, misalnya:
union traces, errors | project TIMESTAMP, message
Modul
Modul PowerShell adalah unit mandiri yang dapat digunakan kembali yang mencakup berbagai komponen, misalnya:
- Cmdlet: Perintah individual yang melakukan tugas tertentu.
- Penyedia: Izinkan akses ke penyimpanan data, seperti registri atau sistem file, seolah-olah mereka drive.
- Functions: Blok kode yang dapat digunakan kembali yang melakukan tindakan tertentu.
- Variabel: Menyimpan data untuk digunakan dalam modul.
- Jenis sumber daya lainnya.
Modul mengatur kode PowerShell, sehingga lebih mudah didistribusikan. Misalnya, Anda dapat membuat modul Anda sendiri untuk mengemas dan membuat fungsionalitas terkait lebih mudah dikelola dan dapat dibagikan. Tindakan Jalankan Kode PowerShell memungkinkan Anda mengimpor modul PowerShell publik dan privat.
Modul publik
Untuk menemukan modul yang tersedia untuk umum, kunjungi galeri PowerShell. Sumber daya aplikasi logika Standar dapat mendukung hingga 10 modul publik. Untuk menggunakan modul publik apa pun, Anda harus mengaktifkan kemampuan ini dengan mengikuti langkah-langkah berikut:
Di portal Microsoft Azure, pada bilah sisi aplikasi logika, di bawah Alat Pengembangan, pilih Alat Tingkat Lanjut.
Pada halaman Alat Tingkat Lanjut, pilih Buka.
Pada toolbar Kudu , dari menu Konsol debug , pilih CMD.
Telusuri ke tingkat akar aplikasi logika Anda di C:\home\site\wwwroot dengan menggunakan struktur direktori atau baris perintah.
Buka file host.json alur kerja, dan atur
ManagedDependency.enabledproperti ketrue, yang sudah diatur secara default."managedDependency": { "enabled": true }Buka file bernama requirements.psd1. Sertakan nama dan versi untuk modul yang Anda inginkan dengan menggunakan sintaks berikut:
MajorNumber.*atau versi modul yang tepat, misalnya:@{ Az = '1.*' SqlServer = '21.1.18147' }
Pertimbangan untuk modul publik
Jika Anda menggunakan manajemen dependensi, pertimbangan berikut berlaku:
Untuk mengunduh modul, modul publik memerlukan akses ke Galeri PowerShell.
Dependensi terkelola saat ini tidak mendukung modul yang mengharuskan Anda menerima lisensi, baik dengan menerima lisensi secara interaktif atau dengan menyediakan
-AcceptLicenseopsi saat Anda menjalankan Install-Module.
Modul privat
Anda dapat membuat modul PowerShell privat Anda sendiri. Untuk membuat modul PowerShell pertama Anda, lihat Menulis Modul Skrip PowerShell.
Di portal Microsoft Azure, pada bilah sisi sumber daya aplikasi logika Anda, di bawah Alat Pengembangan, pilih Alat Tingkat Lanjut.
Pada halaman Alat Tingkat Lanjut, pilih Buka.
Pada toolbar Kudu , dari menu Konsol debug , pilih CMD.
Telusuri ke tingkat akar aplikasi logika Anda di C:\home\site\wwwroot dengan menggunakan struktur direktori atau baris perintah.
Buat folder bernama Modul.
Di folder Modul, buat subfolder dengan nama yang sama dengan modul privat Anda.
Di folder modul privat Anda, tambahkan file modul PowerShell privat Anda dengan ekstensi .psm1 . Anda juga dapat menyertakan file manifes PowerShell opsional dengan ekstensi .psd1 .
Setelah selesai, struktur file aplikasi logika lengkap Anda tampak mirip dengan contoh berikut:
MyLogicApp
-- execute_powershell_script.ps1
-- mytestworkflow.json
Modules
-- MyPrivateModule
--- MyPrivateModule.psd1
--- MyPrivateModule.psm1
-- MyPrivateModule2
--- MyPrivateModule2.psd1
--- MyPrivateModule2.psm1
requirements.psd1
host.json
Kesalahan kompilasi
Dalam rilis ini, editor berbasis web mencakup dukungan IntelliSense terbatas, yang masih dalam penyempurnaan. Kesalahan kompilasi apa pun terdeteksi saat Anda menyimpan alur kerja, dan runtime Azure Logic Apps mengkompilasi skrip Anda. Kesalahan ini muncul di log kesalahan aplikasi logika Anda melalui Application Insights.
Kesalahan runtime
Tindakan alur kerja tidak mengembalikan output apa pun.
Pastikan Anda menggunakan Push-WorkflowOutput cmdlet.
Tindakan Jalankan Kode PowerShell gagal: "Istilah '{some-text}' tidak dikenali..."
Jika Anda salah mereferensikan modul publik dalam file requirements.psd1 , atau jika modul privat Anda tidak ada di jalur C:\home\site\wwwroot\Modules{module-name}, Anda akan mendapatkan kesalahan berikut:
"Istilah '{some-text}' tidak dikenali sebagai nama cmdlet, fungsi, file skrip, atau program yang dapat dieksekusi. Periksa ejaan nama atau apakah jalur disertakan, verifikasi jalur sudah benar dan coba lagi."
Catatan
Secara default, modul Az* muncul di file requirements.psd1 , tetapi dikomentari saat pembuatan file. Saat Anda mereferensikan cmdlet dari modul, pastikan untuk membatalkan komentar modul.
Tindakan Jalankan Kode PowerShell gagal: "Tidak dapat mengikat argumen ke parameter 'Output' karena null."
Kesalahan ini terjadi ketika Anda mencoba mendorong objek null ke alur kerja. Konfirmasikan apakah objek yang Anda kirim Push-WorkflowOutput tidak null.