Bagikan melalui


Konektor kustom di Azure Logic Apps

Berlaku untuk: Azure Logic Apps (Konsumsi + Standar)

Tanpa menulis kode apa pun, Anda dapat dengan cepat membuat alur kerja integrasi otomatis saat Anda menggunakan operasi konektor bawaan di Azure Logic Apps. Konektor membantu alur kerja Anda menyambungkan dan mengakses data, peristiwa, dan tindakan di seluruh aplikasi, layanan, sistem, protokol, dan platform lainnya. Setiap konektor menawarkan operasi sebagai pemicu, tindakan, atau keduanya yang dapat Anda tambahkan ke alur kerja Anda. Dengan menggunakan operasi ini, Anda memperluas kemampuan untuk aplikasi cloud dan aplikasi lokal Anda untuk bekerja dengan data baru dan yang sudah ada.

Konektor di Azure Logic Apps dibangun di dalam atau dikelola. Konektor bawaan berjalan secara asli pada runtime Azure Logic Apps, yang berarti konektivitas tersebut dihosting dalam proses yang sama dengan runtime dan memberikan throughput yang lebih tinggi, latensi rendah, dan konektivitas lokal. Konektor terkelola adalah proxy atau pembungkus di sekitar API, seperti Office 365 atau Salesforce, yang membantu layanan dasar berbicara dengan Azure Logic Apps. Konektor terkelola didukung oleh infrastruktur konektor di Azure dan disebarkan, dihosting, dijalankan, dan dikelola oleh Microsoft. Anda dapat memilih dari ratusan konektor terkelola untuk digunakan dengan alur kerja Anda di Azure Logic Apps.

Saat Anda menggunakan operasi konektor untuk pertama kalinya dalam alur kerja, beberapa konektor tidak mengharuskan Anda membuat koneksi terlebih dahulu, tetapi banyak konektor lain memerlukan langkah ini. Setiap koneksi yang Anda buat sebenarnya adalah sumber daya Azure terpisah yang menyediakan akses ke aplikasi target, layanan, sistem, protokol, atau platform.

Namun terkadang, Anda mungkin ingin memanggil REST API yang tidak tersedia sebagai konektor bawaan. Untuk mendukung skenario yang lebih disesuaikan, Anda dapat membuat konektor kustom Anda sendiri untuk menawarkan pemicu dan tindakan yang tidak tersedia sebagai operasi bawaan.

Artikel ini memberikan gambaran umum tentang konektor khusus untuk Alur kerja aplikasi logika konsumsi dan alur kerja aplikasi logika Standar. Setiap jenis aplikasi logika didukung oleh runtime Azure Logic Apps yang berbeda, masing-masing dihosting di Azure multipenyewa dan penyewa tunggal Azure. Untuk informasi selengkapnya tentang konektor di Azure Logic Apps, tinjau dokumentasi berikut:

Aplikasi logika konsumsi

Di Azure Logic Apps multipenyewa, Anda dapat membuat konektor kustom dari API berbasis Swagger atau berbasis SOAP hingga batas tertentu untuk digunakan dalam alur kerja aplikasi logika Konsumsi. Dokumentasi konektor memberikan lebih banyak informasi gambaran umum tentang cara membuat konektor khusus untuk aplikasi logika Konsumsi, termasuk tutorial dasar dan tingkat lanjut yang lengkap. Daftar berikut ini juga menyediakan tautan langsung ke informasi tentang konektor kustom untuk aplikasi logika Konsumsi:

Aplikasi logika standar

Dalam Azure Logic Apps penyewa tunggal, runtime Azure Logic Apps yang didesain ulang mendukung alur kerja aplikasi logika Standar. Runtime ini berbeda dari runtime Azure Logic Apps multipenyewa yang mendukung alur kerja aplikasi logika Konsumsi. Waktu proses penyewa tunggal menggunakan model ekstensibilitas Azure Functions, yang menyediakan kemampuan utama bagi Anda untuk membuat konektor bawaan sendiri untuk digunakan siapa saja dalam alur kerja Standar. Dalam kebanyakan kasus, versi bawaan memberikan performa, kemampuan, harga, dan sebagainya yang lebih baik.

Saat penyewa tunggal Azure Logic Apps dirilis secara resmi, konektor bawaan baru disertakan Azure Blob Storage, Azure Event Hubs, Azure Service Bus, dan SQL Server. Seiring waktu, daftar konektor bawaan ini terus bertambah. Namun, jika Anda memerlukan konektor yang tidak tersedia di alur kerja aplikasi logika Standar, Anda dapat membuat konektor bawaan sendiri menggunakan model ekstensibilitas yang sama yang digunakan oleh penyedia layanan berbasis konektor bawaan dalam alur kerja Standar.

Konektor bawaan berbasis penyedia layanan

Di Azure Logic Apps penyewa tunggal, konektor bawaan dengan atribut tertentu secara informal dikenal sebagai penyedia layanan. Misalnya, konektor ini didasarkan pada model ekstensibilitas Azure Functions, yang memberikan kemampuan bagi Anda untuk membuat konektor bawaan khusus untuk digunakan dalam alur kerja aplikasi logika Standar.

Sebaliknya, konektor bawaan penyedia non-layanan memiliki atribut berikut:

  • Tidak didasarkan pada model ekstensibilitas Azure Functions.

  • Diimplementasikan secara langsung sebagai pekerjaan dalam runtime Azure Logic Apps, seperti operasi Jadwal, HTTP, Permintaan, dan XML.

Saat ini tidak ada kemampuan untuk membuat konektor bawaan penyedia non-layanan atau jenis pekerjaan baru yang berjalan langsung di runtime Azure Logic Apps. Namun, Anda dapat membuat konektor bawaan Anda sendiri menggunakan infrastruktur penyedia layanan.

Bagian berikut ini menyediakan informasi selengkapnya tentang cara kerja model ekstensibilitas untuk konektor bawaan kustom.

Model ekstensibilitas konektor bawaan

Berdasarkan model ekstensibilitas Azure Functions, model ekstensibilitas konektor bawaan di Azure Logic Apps penyewa tunggal memiliki infrastruktur penyedia layanan yang dapat Anda gunakan untuk membuat, mengemas, mendaftarkan, dan menginstal memiliki konektor bawaan sebagai ekstensi Azure Functions yang dapat digunakan siapa saja dalam alur kerja Standar mereka. Model ini mencakup kemampuan pemicu bawaan kustom yang mendukung pengeksposan Pemicu atau tindakan Azure Functions sebagai pemicu penyedia layanan di konektor bawaan kustom Anda.

Diagram berikut menunjukkan implementasi metode yang diharapkan perancang Azure Logic Apps dan runtime untuk konektor bawaan kustom dengan Pemicu berbasis Azure Functions:

Diagram konseptual yang menampilkan infrastruktur penyedia layanan berbasis Azure Functions.

Bagian berikut ini menyediakan informasi selengkapnya tentang antarmuka yang perlu diterapkan konektor Anda.

IServiceOperationsProvider

Antarmuka ini mencakup metode yang menyediakan manifes operasi untuk konektor bawaan kustom Anda.

  • Manifes operasi

    Manifes operasi mencakup metadata tentang operasi yang diterapkan di konektor bawaan kustom Anda. Perancang Azure Logic Apps terutama menggunakan metadata ini untuk mendorong pengalaman penulisan dan pemantauan untuk operasi konektor Anda. Misalnya, perancang menggunakan metadata operasi untuk memahami parameter input yang diperlukan oleh operasi tertentu dan untuk memfasilitasi pembuatan token properti output, berdasarkan skema untuk output operasi.

    Perancang memerlukan dan menggunakan metode GetService() dan GetOperations() untuk mengkueri operasi yang disediakan dan ditampilkan konektor Anda di permukaan perancang. Metode GetService() juga menentukan parameter input koneksi yang diperlukan oleh perancang.

    Untuk informasi selengkapnya tentang metode ini dan implementasinya, tinjau bagian Metode untuk diterapkan nanti di artikel ini.

  • Pemanggilan operasi

    Pemanggilan operasi adalah implementasi metode yang digunakan selama eksekusi alur kerja oleh runtime Azure Logic Apps untuk memanggil operasi yang ditentukan dalam definisi alur kerja.

    • Jika pemicu Anda adalah jenis pemicu berbasis Azure Functions, metode GetBindingConnectionInformation() digunakan oleh runtime dalam Azure Logic Apps untuk memberikan informasi parameter koneksi yang diperlukan ke pengikatan pemicu Azure Functions.

    • Jika konektor Anda memiliki tindakan, metode InvokeOperation() digunakan oleh runtime untuk memanggil setiap tindakan di konektor Anda yang berjalan selama eksekusi alur kerja. Jika tidak, Anda tidak perlu menerapkan metode ini.

Untuk informasi selengkapnya tentang metode ini dan implementasinya, tinjau bagian Metode untuk diterapkan nanti di artikel ini.

IServiceOperationsTriggerProvider

Kemampuan pemicu bawaan kustom mendukung penambahan atau pengeksposan Pemicu atau tindakan Azure Functions sebagai pemicu penyedia layanan di konektor bawaan kustom Anda. Untuk menggunakan jenis pemicu berbasis Azure Functions dan pengikatan Azure Functions yang sama dengan pemicu konektor terkelola Azure, terapkan metode berikut untuk memberikan informasi koneksi dan memicu pengikatan sesuai kebutuhan Azure Functions.

  • Metode GetFunctionTriggerType() diperlukan untuk mengembalikan string yang sama dengan parameter jenis dalam pengikatan pemicu Azure Functions.

  • GetFunctionTriggerDefinition() memiliki implementasi default, sehingga Anda tidak perlu mengimplementasikan metode ini secara eksplisit. Namun, jika Anda ingin memperbarui perilaku default pemicu, seperti memberikan parameter tambahan yang tidak diekspos perancang, Anda dapat mengimplementasikan metode ini dan mengambil alih perilaku default.

Metode untuk mengimplementasikan

Bagian berikut memberikan informasi selengkapnya tentang metode yang perlu diterapkan konektor Anda. Untuk sampel lengkapnya, tinjau Sampel CosmosDbServiceOperationProvider.cs dan Buat konektor bawaan kustom untuk aplikasi logika Standar di Azure Logic Apps penyewa tunggal.

Penting

Saat Anda memiliki informasi sensitif, seperti string koneksi yang menyertakan nama pengguna dan kata sandi, pastikan untuk menggunakan alur autentikasi paling aman yang tersedia. Misalnya, Microsoft merekomendasikan agar Anda mengautentikasi akses ke sumber daya Azure dengan identitas terkelola saat dukungan tersedia, dan menetapkan peran yang memiliki hak istimewa yang paling tidak diperlukan.

Jika kemampuan ini tidak tersedia, pastikan untuk mengamankan string koneksi melalui langkah-langkah lain, seperti Azure Key Vault, yang dapat Anda gunakan dengan pengaturan aplikasi. Anda kemudian dapat langsung mereferensikan string aman, seperti string dan kunci koneksi. Mirip dengan templat ARM, tempat Anda dapat menentukan variabel lingkungan pada waktu penyebaran, Anda dapat menentukan pengaturan aplikasi dalam definisi alur kerja aplikasi logika Anda. Anda kemudian dapat mengambil nilai infrastruktur yang dihasilkan secara dinamis, seperti titik akhir koneksi, string penyimpanan, dan banyak lagi. Untuk informasi selengkapnya, lihat Jenis aplikasi untuk platform identitas Microsoft.

GetService()

Perancang memerlukan metode ini untuk mendapatkan metadata tingkat tinggi untuk layanan Anda, termasuk deskripsi layanan, parameter input koneksi, kemampuan, warna merek, URL ikon, dan sebagainya.

public ServiceOperationApi GetService()
{
   return this.{custom-service-name-apis}.ServiceOperationServiceApi();
}

Untuk informasi selengkapnya, tinjau Sampel CosmosDbServiceOperationProvider.cs.

GetOperations()

Perancang mengharuskan metode ini untuk menerapkan operasi oleh layanan Anda. Daftar operasi didasarkan pada skema Swagger. Perancang juga menggunakan metadata operasi untuk memahami parameter input untuk operasi tertentu dan menghasilkan output sebagai token properti, berdasarkan skema output untuk operasi.

public IEnumerable<ServiceOperation> GetOperations(bool expandManifest)
{
   return expandManifest ? serviceOperationsList : GetApiOperations();
}

Untuk informasi selengkapnya, tinjau Sampel CosmosDbServiceOperationProvider.cs.

GetBindingConnectionInformation()

Jika Anda ingin menggunakan jenis pemicu berbasis Azure Functions, metode ini menyediakan informasi parameter koneksi yang diperlukan ke pengikatan pemicu Azure Functions.

public string GetBindingConnectionInformation(string operationId, InsensitiveDictionary<JToken> connectionParameters)
{
   return ServiceOperationsProviderUtilities
      .GetRequiredParameterValue(
         serviceId: ServiceId,
         operationId: operationID,
         parameterName: "connectionString",
         parameters: connectionParameters)?
      .ToValue<string>();
}

Untuk informasi selengkapnya, tinjau Sampel CosmosDbServiceOperationProvider.cs.

InvokeOperation()

Jika konektor bawaan kustom Anda hanya memiliki pemicu, Anda tidak perlu menerapkan metode ini. Namun, jika konektor Anda memiliki tindakan untuk diterapkan, Anda harus menerapkan metode InvokeOperation(), yang dipanggil untuk setiap tindakan di konektor Anda yang berjalan selama eksekusi alur kerja. Anda dapat menggunakan klien apa pun, seperti FTPClient, HTTPClient, dan sebagainya, sebagaimana diperlukan oleh tindakan konektor Anda. Contoh ini menggunakan HTTPClient.

public Task<ServiceOperationResponse> InvokeOperation(string operationId, InsensitiveDictionary<JToken> connectionParameters, ServiceOperationRequest serviceOperationRequest)
{
   using (var client = new HttpClient())
   {
      response = client.SendAsync(httpRequestMessage).ConfigureAwait(false).ToJObject();
   }
   return new ServiceOperationResponse(body: response);
}

Untuk informasi selengkapnya, tinjau Sampel CosmosDbServiceOperationProvider.cs.

GetFunctionTriggerType()

Untuk menggunakan pemicu berbasis Azure Functions sebagai pemicu di konektor, Anda harus mengembalikan string yang sama dengan parameter jenis dalam pengikatan pemicu Azure Functions.

Contoh berikut mengembalikan string untuk pemicu Azure Cosmos DB bawaan, "type": "cosmosDBTrigger":

public string GetFunctionTriggerType()
{
   return "CosmosDBTrigger";
}

Untuk informasi selengkapnya, tinjau Sampel CosmosDbServiceOperationProvider.cs.

GetFunctionTriggerDefinition()

Metode ini memiliki implementasi default, sehingga Anda tidak perlu mengimplementasikan metode ini secara eksplisit. Namun, jika Anda ingin memperbarui perilaku default pemicu, seperti memberikan parameter tambahan yang tidak diekspos perancang, Anda dapat mengimplementasikan metode ini dan mengambil alih perilaku default.

Langkah berikutnya

Saat Anda siap untuk memulai langkah-langkah implementasi, lanjutkan ke artikel berikut: