Menyiapkan penyebaran DevOps untuk alur kerja aplikasi logika standar di Azure Logic Apps penyewa tunggal

Berlaku pada: Azure Logic Apps (Standar)

Artikel ini menunjukkan cara menyebarkan proyek aplikasi logika standar ke Azure Logic Apps penyewa tunggal dari Visual Studio Code ke infrastruktur Anda dengan menggunakan alat dan proses DevOps. Berdasarkan apakah Anda lebih suka GitHub atau Azure DevOps untuk penyebaran, pilih jalur dan alat yang paling sesuai untuk skenario Anda. Anda dapat menggunakan sampel yang disertakan yang berisi contoh proyek aplikasi logika plus contoh penyebaran Azure menggunakan GitHub atau Azure DevOps. Untuk informasi selengkapnya tentang DevOps untuk penyewa tunggal, tinjau Gambaran umum penyebaran DevOps untuk Azure Logic Apps penyewa tunggal.

Prasyarat

  • Akun Azure dengan langganan aktif. Jika Anda tidak memiliki langganan Azure, buatlah akun gratis.

  • Proyek aplikasi logika Standar yang dibuat dengan Visual Studio Code dan ekstensi Azure Logic Apps (Standar).

    Jika belum menyiapkan project atau infrastruktur aplikasi logika, Anda dapat menggunakan contoh project yang disertakan untuk menerapkan contoh aplikasi dan infrastruktur, berdasarkan opsi sumber dan penyebaran yang Anda pilih untuk digunakan. Informasi selengkapnya tentang proyek sampel dan sumber daya yang disertakan untuk menjalankan contoh aplikasi logika, tinjau Sebarkan infrastruktur Anda.

  • Jika Anda ingin menerapkan ke Azure, Anda memerlukan sumber daya Logic App (Standard) yang sudah ada dibuat di Azure. Untuk membuat sumber daya aplikasi logika kosong dengan cepat, tinjau Membuat alur kerja aplikasi logika berbasis penyewa tunggal - Portal.

Menerapkan sumber daya infrastruktur

Jika belum menyiapkan proyek atau infrastruktur aplikasi logika, Anda dapat menggunakan proyek untuk menerapkan contoh aplikasi dan infrastruktur, berdasarkan opsi sumber dan penyebaran yang Anda pilih untuk digunakan:

Kedua sampel termasuk sumber daya berikut yang digunakan aplikasi logika itu agar berjalan.

Nama sumber daya Diperlukan Deskripsi
Aplikasi Logika (Standar) Ya Sumber daya Azure ini berisi alur kerja yang berjalan di Azure Logic Apps penyewa tunggal.
Paket hosting Functions Premium atau App Service Ya Sumber daya Azure ini menentukan sumber daya hosting yang digunakan untuk menjalankan aplikasi logika Anda, seperti komputasi, pemrosesan, penyimpanan, jaringan, dan sebagainya.

Penting: Dalam pengalaman saat ini, sumber daya Aplikasi Logika (Standar) memerlukan paket hosting Standar Alur Kerja, yang didasarkan pada paket hosting Functions Premium.

Akun penyimpanan Azure Ya, untuk alur kerja berstatus dan tanpa status Sumber daya Azure ini menyimpan metadata, kuci untuk kontrol akses, status, input, output, riwayat eksekusi, dan informasi lain tentang alur kerja Anda.
Application Insights Opsional Sumber daya Azure ini menyediakan kemampuan pemantauan untuk alur kerja Anda.
Koneksi API Opsional, jika tidak ada yang lain Sumber daya Azure ini menentukan semua koneksi API terkelola yang digunakan alur kerja Anda untuk menjalankan operasi konektor terkelola, seperti Office 365, SharePoint, dan sebagainya.

Penting: Dalam proyek aplikasi logika Anda, file connections.json berisi metadata, titik akhir, dan kunci untuk koneksi API terkelola dan fungsi Azure yang digunakan alur kerja Anda. Untuk menggunakan koneksi dan fungsi yang berbeda di setiap lingkungan, pastikan Anda membuat parameter file connections.json dan memperbarui titik akhir.

Untuk informasi lebih lanjut, tinjau sumber daya koneksi API dan kebijakan akses.

Templat Azure Resource Manager (ARM) Opsional Sumber daya Azure ini menentukan penerapan infrastruktur dasar yang dapat Anda gunakan kembali atau ekspor.

Sumber daya koneksi API dan kebijakan akses

Di Azure Logic Apps penyewa tunggal, setiap sumber daya koneksi terkelola atau API di alur kerja Anda memerlukan kebijakan akses terkait. Kebijakan ini memerlukan identitas aplikasi logika Anda untuk memberikan izin yang sesuai untuk mengakses infrastruktur konektor terkelola. Proyek sampel yang disertakan mencakup templat ARM yang mencakup semua sumber daya infrastruktur yang diperlukan, termasuk kebijakan akses ini.

Diagram berikut menunjukkan dependensi antara proyek aplikasi logika dan sumber daya infrastruktur:

Diagram konseptual memperlihatkan dependensi infrastruktur untuk proyek aplikasi logika dalam model Azure Logic Apps penyewa tunggal.

Menerapkan sumber daya aplikasi logika (zip deploy)

Setelah mendorong proyek aplikasi logika ke repositori sumber, Anda dapat menyiapkan alur build dan rilis baik di dalam atau di luar Azure yang menyebarkan aplikasi logika ke infrastruktur.

Bangun proyek Anda

Untuk menyiapkan pipeline build berdasarkan jenis project aplikasi logika Anda, selesaikan tindakan yang sesuai dalam tabel berikut:

Jenis proyek Deskripsi dan langkah-langkah
Berbasis Nuget Struktur proyek berbasis NuGet didasarkan pada .NET Framework. Untuk membangun proyek ini, pastikan untuk mengikuti langkah-langkah build untuk .NET Standard. Untuk informasi selengkapnya, tinjau dokumentasi untuk Membuat paket NuGet menggunakan MSBuild.
Berbasis bundel Proyek berbasis bundel ekstensi tidak spesifik bahasa dan tidak memerlukan langkah-langkah pembangunan khusus bahasa apa pun. Anda dapat menggunakan metode apa pun untuk mengompresi file proyek Anda.

Penting: Pastikan file .zip Anda berisi artefak build terbaru, termasuk semua folder alur kerja, file konfigurasi seperti host.json, connections.json, dan file terkait lainnya.

Sebelum dirilis ke Azure

Koneksi API terkelola di dalam file connections.json proyek aplikasi logika Anda dibuat khusus untuk penggunaan lokal di Visual Studio Code. Sebelum dapat merilis artefak proyek dari Visual Studio Code ke Azure, Anda harus memperbarui artefak ini. Untuk menggunakan koneksi API terkelola di Azure, Anda harus memperbarui metode autentikasinya sehingga berada dalam format yang benar untuk digunakan di Azure.

Perbarui tipe autentikasi

Untuk setiap koneksi API terkelola yang menggunakan autentikasi, Anda harus memperbarui objek autentikasi dari format lokal dalam Visual Studio Code ke format portal Microsoft Azure, seperti yang ditunjukkan oleh contoh kode pertama dan kedua, masing-masing:

Format Kode Studio Visual

{
   "managedApiConnections": {
      "sql": {
         "api": {
            "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/westus/managedApis/sql"
      },
      "connection": {
         "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/ase/providers/Microsoft.Web/connections/sql-8"
      },
      "connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
      "authentication": {
         "type": "Raw",
         "scheme": "Key",
         "parameter": "@appsetting('sql-connectionKey')"
      }
   }
}

Format portal Azure

{
   "managedApiConnections": {
      "sql": {
         "api": {
            "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/westus/managedApis/sql"
      },
      "connection": {
         "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/resourceGroups/ase/providers/Microsoft.Web/connections/sql-8"
      },
      "connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
      "authentication": {
         "type": "ManagedServiceIdentity",
      }
   }
}

Membuat koneksi API sesuai kebutuhan

Jika Anda menyebarkan alur kerja aplikasi logika ke wilayah Azure atau langganan yang berbeda dari lingkungan pengembangan lokal Anda, Anda juga harus memastikan untuk membuat koneksi API terkelola ini sebelum penyebaran. Penyebaran templat Azure Resource Manager (templat ARM) adalah cara termudah untuk membuat koneksi API terkelola.

Contoh berikut menunjukkan definisi sumber daya koneksi API terkelola SQL dalam templat ARM:

{
   "type": "Microsoft.Web/connections",
   "apiVersion": "2016–06–01",
   "location": "[parameters('location')]",
   "name": "[parameters('connectionName')]",
   "properties": {
      "displayName": "sqltestconnector",
      "api": {
         "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
      },
      "parameterValues": {
         "authType": "windows", 
         "database": "TestDB",
         "password": "TestPassword",
         "server": "TestServer",
         "username": "TestUserName"
      }
   }
}

Untuk menemukan nilai yang perlu Anda gunakan di objek properti untuk menyelesaikan definisi sumber daya koneksi, Anda dapat menggunakan API berikut untuk konektor tertentu:

GET https://management.azure.com/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/{connector-name}?api-version=2016-06-01

Dalam tanggapannya, temukan objek connectionParameters, yang berisi semua informasi yang diperlukan bagi Anda untuk menyelesaikan definisi sumber daya untuk konektor tertentu. Contoh berikut menunjukkan contoh definisi sumber daya untuk koneksi terkelola SQL:

{
   "type": "Microsoft.Web/connections",
   "apiVersion": "2016–06–01",
   "location": "[parameters('location')]",
   "name": "[parameters('connectionName')]",
   "properties": {
      "displayName": "sqltestconnector",
      "api": {
         "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
      },
      "parameterValues": {
         "authType": "windows",
         "database": "TestDB",
         "password": "TestPassword",
         "server": "TestServer",
         "username": "TestUserName"
      }
   }
}

Sebagai alternatif, Anda dapat menangkap dan meninjau jejak jaringan ketika Anda membuat koneksi menggunakan perancang alur kerja di Azure Logic Apps. Temukan panggilan PUT yang dikirim ke API terkelola konektor seperti yang dijelaskan sebelumnya, dan tinjau badan permintaan untuk semua informasi yang diperlukan.

Rilis ke Azure

Untuk menyiapkan saluran rilis yang disebarkan ke Azure, ikuti langkah-langkah terkait untuk GitHub, Azure DevOps, atau Azure CLI.

Catatan

Azure Logic Apps saat ini tidak mendukung slot penyebaran Azure.

Untuk penerapan GitHub, Anda dapat menerapkan aplikasi logika dengan menggunakan Tindakan GitHub, misalnya, Tindakan GitHub di Azure Functions. Tindakan ini mengharuskan Anda menyampaikan informasi berikut:

  • Nama aplikasi logika yang digunakan untuk penyebaran
  • File zip yang berisi artefak build Anda terbaru, termasuk semua folder alur kerja, file konfigurasi seperti host.json, connections.json, dan file terkait lainnya.
  • Profil publikasi Anda, yang digunakan untuk autentikasi
- name: 'Run Azure Functions Action'
  uses: Azure/functions-action@v1
  id: fa
  with:
   app-name: 'MyLogicAppName'
   package: 'MyBuildArtifact.zip'
   publish-profile: 'MyLogicAppPublishProfile'

Untuk informasi lebih lanjut, tinjau dokumentasi Pengiriman Berkelanjutan menggunakan GitHub Action.

Setelah rilis ke Azure

Setiap koneksi API memiliki kebijakan akses. Setelah penyebaran zip selesai, Anda harus membuka sumber daya aplikasi logika Anda di portal Microsoft Azure, dan membuat kebijakan akses untuk setiap koneksi API untuk menyiapkan izin untuk aplikasi logika yang disebarkan. Penyebaran zip tidak membuat pengaturan aplikasi untuk Anda. Jadi, setelah penyebaran, Anda harus membuat pengaturan aplikasi ini berdasarkan file local.settings.json di proyek Visual Studio Code lokal Anda.

Langkah berikutnya

Kami ingin mendengar tentang pengalaman Anda dengan Azure Logic Apps penyewa tunggal!