Membuat dan menyebarkan alur kerja aplikasi logika berbasis penyewa tunggal dengan Logic Apps yang didukung Azure Arc (Pratinjau)

Catatan

Kemampuan ini masih dalam pratinjau dan mengacu pada Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Dengan Logic Apps yang didukung Azure Arc dan portal Azure, Anda dapat membuat dan menyebarkan alur kerja aplikasi logika berbasis penyewa tunggal ke infrastruktur Kubernetes yang Anda operasikan dan kelola. Aplikasi logika Anda berjalan di lokasi kustom yang dipetakan ke kluster Kubernetes yang didukung Azure Arc tempat Anda telah menginstal dan mengaktifkan bundel ekstensi platform Azure App Service.

Sebagai contoh, kluster ini dapat menjadi Azure Kubernetes Service, Kube bare-metal, atau penyiapan lainnya. Bundel ekstensi memungkinkan Anda menjalankan layanan platform seperti Azure Logic Apps, Azure App Service, dan Azure Functions pada kluster Kube Anda.

Untuk informasi selengkapnya, tinjau dokumentasi berikut ini:

Prasyarat

Bagian ini menjelaskan prasyarat umum di semua pendekatan dan alat yang dapat Anda gunakan untuk membuat dan menyebarkan alur kerja aplikasi logika Anda. Prasyarat khusus alat muncul bersama dengan langkah-langkah yang sesuai.

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

  • Lingkungan Kube dengan kluster Kubernetes yang didukung Azure Arc dan lokasi kustom tempat Anda dapat menghosting dan menjalankan Azure Logic Apps, Azure App Service, dan Azure Functions.

    Penting

    Pastikan Anda menggunakan lokasi sumber daya yang sama untuk lingkungan Kube, lokasi kustom, dan aplikasi logika.

    Saat membuat ekstensi bundel App Service pada kluster Kube, Anda dapat mengubah perilaku penskalaan default untuk menjalankan alur kerja aplikasi logika Anda. Saat Anda membuat ekstensi dengan menggunakan perintah Azure CLI, az k8s-extension create pastikan untuk menyertakan pengaturan konfigurasi, keda.enabled=true:

    az k8s-extension create {other-command-options} --configuration-settings "keda.enabled=true"

    Untuk informasi selengkapnya, tinjau dokumentasi berikut ini:

  • Identitas Azure Active Directory (Azure AD) Anda sendiri

    Jika alur kerja Anda perlu menggunakan koneksi yang di-hosting Azure, seperti Office 365 Outlook atau Azure Storage, aplikasi logika Anda harus menggunakan identitas Microsoft Azure AD untuk autentikasi. Logic Apps yang didukung Azure Arc dapat berjalan pada infrastruktur apa pun tetapi memerlukan identitas yang memiliki izin untuk menggunakan koneksi yang dihosting Azure. Untuk menyiapkan identitas ini, buat pendaftaran aplikasi di Microsoft Azure AD yang digunakan aplikasi logika Anda sebagai identitas yang diperlukan.

    Catatan

    Dukungan identitas terkelola saat ini tidak tersedia untuk Logic Apps yang didukung Azure Arc.

    Untuk membuat pendaftaran aplikasi Azure Active Directory (Azure AD) menggunakan Azure CLI, ikuti langkah-langkah berikut:

    1. Buat pendaftaran aplikasi dengan menggunakan perintah az ad sp create.

    2. Untuk meninjau semua detailnya, jalankan perintah az ad sp show.

    3. Dari output kedua perintah, temukan dan simpan ID klien, ID objek, ID penyewa, dan nilai rahasia klien, yang perlu Anda simpan untuk digunakan nanti.

    Untuk membuat pendaftaran aplikasi Azure Active Directory (Azure AD) menggunakan portal Microsoft Azure, ikuti langkah-langkah berikut:

    1. Buat pendaftaran aplikasi Microsoft Azure AD baru dengan menggunakan portal Microsoft Azure.

    2. Setelah pembuatan selesai, temukan pendaftaran aplikasi baru di portal.

    3. Pada menu pendaftaran, pilih Ringkasan, dan simpan ID klien, ID penyewa, dan nilai rahasia klien.

    4. Untuk menemukan ID objek, di samping bidang Aplikasi terkelola di direktori lokal, pilih nama untuk pendaftaran aplikasi Anda. Dari tampilan properti, salin ID objek.

Buat dan sebarkan aplikasi logika

Berdasarkan apakah Anda ingin menggunakan Azure CLI, Visual Studio Code, atau portal Microsoft Azure, pilih tab yang cocok untuk meninjau prasyarat dan langkah-langkah tertentu.

Sebelum memulai, Anda harus memiliki item berikut:

Periksa lingkungan dan versi CLI

  1. Masuk ke portal Azure. Periksa apakah langganan Anda aktif dengan menjalankan perintah berikut ini:

    az login
    
  2. Periksa versi Azure CLI Anda di terminal atau jendela perintah dengan menjalankan perintah berikut:

    az --version
    

    Untuk versi terbaru, lihat catatan rilis terbaru.

  3. Jika Anda tidak memiliki versi terbaru, perbarui penginstalan Anda dengan mengikuti panduan penginstalan sistem operasi atau platform Anda.

Pasang ekstensi Azure Logic Apps (Standar) untuk Azure CLI

Pasang pratinjau ekstensi Azure Logic Apps (Standar) penyewa tunggal untuk Azure CLI dengan menjalankan perintah berikut ini:

az extension add --yes --source "https://aka.ms/logicapp-latest-py2.py3-none-any.whl"

Membuat grup sumber daya

Jika Anda belum memiliki grup sumber daya untuk aplikasi logika Anda, buat grup dengan menjalankan perintah, az group create. Kecuali Anda sudah menetapkan langganan default untuk akun Azure Anda, pastikan untuk menggunakan parameter --subscription dengan nama langganan atau pengidentifikasi Anda. Jika tidak, Anda tidak perlu menggunakan parameter --subscription.

Tip

Untuk mengatur langganan default, jalankan perintah berikut ini, dan ganti MySubscription dengan nama langganan atau pengidentifikasi Anda.

az account set --subscription MySubscription

Misalnya, perintah berikut membuat grup sumber daya bernama MyResourceGroupName menggunakan langganan Azure bernama MySubscription di lokasi eastus:

az group create --name MyResourceGroupName 
   --subscription MySubscription 
   --location eastus

Jika grup sumber daya Anda berhasil dibuat, output akan menampilkan provisioningState sebagai Succeeded:

<...>
   "name": "testResourceGroup",
   "properties": {
      "provisioningState": "Succeeded"
    },
<...>

Membuat aplikasi logika

Untuk membuat aplikasi logika yang didukung Azure Arc, jalankan perintah, az logicapp create, dengan parameter yang diperlukan berikut. Lokasi sumber daya untuk aplikasi logika, lokasi kustom, dan lingkungan Kube Anda semuanya harus sama.

Parameter Deskripsi
--name -n Nama unik untuk aplikasi logika Anda
--resource-group -g Nama grup sumber daya tempat Anda ingin membuat aplikasi logika. Jika Anda tidak memilikinya, buat grup sumber daya.
--storage-account -s Akun penyimpanan yang digunakan dengan aplikasi logika Anda. Untuk akun penyimpanan dalam grup sumber daya yang sama, gunakan nilai untai (karakter). Untuk akun penyimpanan di grup sumber daya yang berbeda, gunakan ID sumber daya.
az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation

Untuk membuat aplikasi logika dengan dukungan Azure Arc menggunakan gambar Azure Container Registry privat, jalankan perintah, az logicapp create, dengan parameter yang diperlukan berikut:

az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation 
   --deployment-container-image-name myacr.azurecr.io/myimage:tag
   --docker-registry-server-password MyPassword 
   --docker-registry-server-user MyUsername

Tampilkan detail aplikasi logika

Untuk menampilkan detail tentang aplikasi logika yang didukung Azure Arc Anda, jalankan perintah, az logicapp show, dengan parameter yang diperlukan berikut:

az logicapp show --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Menerapkan aplikasi logika

Untuk menyebarkan aplikasi logika yang didukung Azure Arc menggunakan penyebaran zip Kudu dari Azure App Service, jalankan perintah, az logicapp deployment source config-zip, dengan parameter yang diperlukan berikut:

Penting

Pastikan file zip Anda berisi artefak proyek Anda di tingkat root. Artefak ini mencakup semua folder alur kerja, file konfigurasi seperti host.json, connections.json, dan file terkait lainnya. Jangan tambahkan folder tambahan atau masukkan artefak apa pun ke dalam folder yang belum ada dalam struktur proyek Anda. Misalnya, daftar ini memperlihatkan contoh struktur file MyBuildArtifacts.zip:

MyStatefulWorkflow1-Folder
MyStatefulWorkflow2-Folder
connections.json
host.json
az logicapp deployment source config-zip --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --src MyBuildArtifact.zip

Mulai aplikasi logika

Untuk memulai aplikasi logika yang didukung Azure Arc, jalankan perintah, az logicapp start, dengan parameter yang diperlukan berikut:

az logicapp start --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Hentikan aplikasi logika

Untuk menghentikan aplikasi logika yang didukung Azure Arc, jalankan perintah, az logicapp stop, dengan parameter yang diperlukan berikut:

az logicapp stop --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Hidupkan ulang aplikasi logika

Untuk menghidupkan ulang aplikasi logika yang didukung Azure Arc, jalankan perintah, az logicapp restart, dengan parameter yang diperlukan berikut:

az logicapp restart --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Hapus aplikasi logika

Untuk menghapus aplikasi logika yang didukung Azure Arc, jalankan perintah, az logicapp delete, dengan parameter yang diperlukan berikut:

az logicapp delete --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Siapkan autentikasi koneksi

Saat ini, kluster Kubernetes yang didukung Azure Arc tidak mendukung penggunaan identitas terkelola aplikasi logika untuk mengautentikasi koneksi API terkelola. Anda membuat koneksi yang di-hosting dan dikelola Azure ini saat Anda menggunakan konektor terkelola di alur kerja Anda.

Sebagai gantinya, Anda harus membuat pendaftaran aplikasi Anda sendiri di Azure Active Directory (Azure AD). Kemudian, Anda dapat menggunakan pendaftaran aplikasi ini sebagai identitas untuk aplikasi logika yang disebarkan dan berjalan di Logic Apps yang didukung Azure Arc. Untuk informasi selengkapnya, tinjau prasyarat tingkat teratas.

Dari pendaftaran aplikasi, Anda memerlukan ID klien, ID objek, ID penyewa, dan rahasia klien. Jika Anda menggunakan Visual Studio Code untuk disebarkan, Anda memiliki pengalaman bawaan untuk menyiapkan aplikasi logika Anda dengan identitas Microsoft Azure AD. Untuk informasi selengkapnya, tinjau Buat dan sebarkan alur kerja aplikasi logika - Visual Studio Code.

Namun, jika Anda menggunakan Visual Studio Code untuk pengembangan, tetapi Anda menggunakan Azure CLI atau alur otomatis untuk disebarkan, ikuti langkah-langkah ini.

Konfigurasikan pengaturan koneksi dan aplikasi di proyek Anda

  1. Di file connections.json proyek aplikasi logika Anda, temukan objek authentication koneksi terkelola. Ganti konten objek ini dengan informasi pendaftaran aplikasi Anda, yang sebelumnya Anda buat di prasyarat tingkat atas:

    "authentication": {
       "type": "ActiveDirectoryOAuth",
       "audience": "https://management.core.windows.net/",
       "credentialType": "Secret",
       "clientId": "@appsetting('WORKFLOWAPP_AAD_CLIENTID')",
       "tenant": "@appsetting('WORKFLOWAPP_AAD_TENANTID')",
       "secret": "@appsetting('WORKFLOWAPP_AAD_CLIENTSECRET')"
    } 
    
  2. Di file local.settings.json proyek aplikasi logika Anda, tambahkan ID klien, ID objek, ID penyewa, dan rahasia klien Anda. Setelah penyebaran, pengaturan ini menjadi pengaturan aplikasi logika Anda.

    {
       "IsEncrypted": false,
       "Values": {
          <...>
          "WORKFLOWAPP_AAD_CLIENTID":"<my-client-ID>",
          "WORKFLOWAPP_AAD_OBJECTID":"<my-object-ID",
          "WORKFLOWAPP_AAD_TENANTID":"<my-tenant-ID>",
          "WORKFLOWAPP_AAD_CLIENTSECRET":"<my-client-secret>"
       }
    }
    

Penting

Untuk skenario atau lingkungan produksi, pastikan Anda melindungi dan mengamankan rahasia dan informasi sensitif tersebut, misalnya, dengan menggunakan brankas kunci.

Tambahkan kebijakan akses

Di Azure Logic Apps penyewa tunggal, setiap aplikasi logika memiliki identitas yang diberikan izin oleh kebijakan akses untuk menggunakan koneksi yang di-hosting dan dikelola Azure. Anda dapat menyiapkan kebijakan akses ini dengan menggunakan portal Microsoft Azure atau penyebaran infrastruktur.

Templat ARM

Di templat Azure Resource Manager (templat ARM) Anda, sertakan definisi sumber daya berikut untuk setiap koneksi API terkelola dan berikan informasi berikut:

Parameter Deskripsi
<connection-name> Nama untuk koneksi API terkelola Anda, misalnya office365
<object-ID> ID objek untuk identitas Microsoft Azure AD Anda, yang sebelumnya disimpan dari pendaftaran aplikasi Anda
<tenant-ID> ID penyewa untuk identitas Microsoft Azure AD Anda, yang sebelumnya disimpan dari pendaftaran aplikasi Anda
{
   "type": "Microsoft.Web/connections/accessPolicies",
   "apiVersion": "2016-06-01",
   "name": "[concat('<connection-name>'),'/','<object-ID>')]",
   "location": "<location>",
   "dependsOn": [
      "[resourceId('Microsoft.Web/connections', parameters('connection_name'))]"
   ],
   "properties": {
      "principal": {
         "type": "ActiveDirectory",
         "identity": {
            "objectId": "<object-ID>",
            "tenantId": "<tenant-ID>"
         }
      }
   }
}

Untuk informasi selengkapnya, tinjau dokumentasi Microsoft.Web/connections/accesspolicies (templat ARM).

portal Microsoft Azure

Untuk tugas ini, gunakan ID klien anda yang sebelumnya disimpan sebagai ID aplikasi.

  1. Di portal Microsoft Azure, temukan dan buka aplikasi logika Anda. Pada menu aplikasi logika Anda, di bawah Alur Kerja, pilih Koneksi, yang mencantumkan semua koneksi di alur kerja aplikasi logika Anda.

  2. Di bawah Koneksi API, pilih koneksi, yaitu office365 dalam contoh ini.

  3. Pada menu koneksi, di bawah Pengaturan, pilih Kebijakan akses>Tambahkan.

  4. Di panel Tambahkan kebijakan akses, di kotak pencarian, temukan dan pilih ID klien Anda yang sebelumnya disimpan.

  5. Setelah selesai, pilih Tambahkan.

  6. Ulangi langkah-langkah ini untuk setiap koneksi yang di hosting Azure di aplikasi logika Anda.

Otomatiskan penyebaran Azure DevOps

Untuk membuat dan menyebarkan aplikasi logika yang didukung Azure Arc, Anda dapat menggunakan alur dan proses yang sama seperti untuk aplikasi logika berbasis penyewa tunggal. Untuk mengotomatiskan penyebaran infrastruktur menggunakan alur untuk Azure DevOps, lakukan perubahan berikut di tingkat infrastruktur untuk penyebaran non-kontainer dan kontainer.

Penyebaran standar (non-kontainer)

Jika Anda menggunakan zip deploy untuk penyebaran aplikasi logika, Anda tidak perlu menyiapkan registri Docker untuk meng-hosting gambar kontainer. Meskipun aplikasi logika di Kubernetes secara teknis dijalankan di kontainer, Logic Apps yang didukung Azure Arc mengelola kontainer ini untuk Anda. Untuk skenario ini, selesaikan tugas berikut saat Anda menyiapkan infrastruktur Anda:

Di templat Azure Resource Manager (templat ARM) Anda sertakan nilai berikut ini:

Item Properti JSON Deskripsi
Lokasi location Pastikan untuk menggunakan lokasi (wilayah Azure) sumber daya yang sama sebagai lokasi kustom dan lingkungan Kube Anda. Lokasi sumber daya untuk aplikasi logika, lokasi kustom, dan lingkungan Kube Anda semuanya harus sama.

Catatan: Nilai ini tidak sama dengan nama untuk lokasi kustom Anda.

Jenis aplikasi kind Jenis aplikasi yang Anda sebarkan sehingga platform Azure dapat mengidentifikasi aplikasi Anda. Untuk Azure Logic Apps, informasi ini terlihat seperti contoh berikut: kubernetes,functionapp,workflowapp,linux
Lokasi Yang Diperluas extendedLocation Objek ini memerlukan "name" dari lokasi kustom Anda untuk lingkungan Kube Anda dan "type" harus diatur ke "CustomLocation".
ID sumber daya paket Hosting serverFarmId ID sumber daya dari paket App Service terkait, diformat sebagai berikut:

"/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}"

String koneksi penyimpanan AzureWebJobsStorage String koneksi untuk akun penyimpanan Anda

Penting: Anda perlu menyediakan string koneksi untuk akun penyimpanan Anda di templat ARM Anda. Untuk skenario atau lingkungan produksi, pastikan Anda melindungi dan mengamankan rahasia dan informasi sensitif tersebut, misalnya, dengan menggunakan brankas kunci.

Templat ARM

Contoh berikut menjelaskan contoh definisi sumber daya Logic Apps yang didukung Azure Arc yang dapat Anda gunakan di template ARM. Untuk informasi selengkapnya, tinjau dokumentasi Microsoft.Web/sites template format (JSON).

{
   "type": "Microsoft.Web/sites",
   "apiVersion": "2020-12-01",
   "name": "[parameters('name')]",
   "location": "[parameters('location')]",
   "kind": "kubernetes,functionapp,workflowapp,linux",
   "extendedLocation": {
      "name": "[parameters('customLocationId')]",
      "type": "CustomLocation"
    },
   "properties": {
      "clientAffinityEnabled": false,
      "name": "[parameters('name')]",
      "serverFarmId": "<hosting-plan-ID>",
      "siteConfig": {
         "appSettings": [
            {
               "name": "FUNCTIONS_EXTENSION_VERSION",
               "value": "~3"
            },
            {
               "name": "FUNCTIONS_WORKER_RUNTIME",
               "value": "node"
            },
            {
               "name": "AzureWebJobsStorage",
               "value": "<storage-connection-string>"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__id",
               "value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__version",
               "value": "[1.*, 2.0.0)"
            },
            {
               "name": "APP_KIND",
               "value": "workflowapp"
            }
         ],
         "use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
         "linuxFxVersion": "Node|12"
      }
   }
}

Penyebaran kontainer

Jika lebih suka menggunakan alat kontainer dan proses penyebaran, Anda dapat memasukkan aplikasi logika ke kontainer dan menyebarkannya ke Logic Apps yang didukung Azure Arc. Untuk skenario ini, selesaikan tugas tingkat tinggi berikut ini saat Anda menyiapkan infrastruktur Anda:

  • Siapkan registri Docker untuk meng-hosting gambar kontainer Anda.

  • Untuk membuat kontainer aplikasi logika, tambahkan Dockerfile berikut ke folder root proyek aplikasi logika Anda, dan ikuti langkah-langkah untuk membangun dan menerbitkan gambar ke registri Docker Anda, misalnya, tinjau Tutorial: Bangun dan sebarkan gambar kontainer di cloud dengan Tugas Azure Container Registry.

    Catatan

    Jika Anda menggunakan SQL sebagai penyedia penyimpanan, pastikan Anda menggunakan gambar Azure Functions versi 3.3.1 atau yang lebih baru.

    FROM mcr.microsoft.com/azure-functions/node:3.3.1
    ENV AzureWebJobsScriptRoot=/home/site/wwwroot \
    AzureFunctionsJobHost__Logging__Console__IsEnabled=true \
    FUNCTIONS_V2_COMPATIBILITY_MODE=true
    COPY . /home/site/wwwroot
    RUN cd /home/site/wwwroot
    
  • Beri tahu penyedia sumber bahwa Anda membuat aplikasi logika di Kube.

  • Dalam templat penyebaran Anda, arahkan ke registri Docker dan gambar kontainer tempat Anda berencana untuk menyebarkan. Azure Logic Apps penyewa tunggal menggunakan informasi ini untuk mendapatkan gambar kontainer dari registri Docker Anda.

  • Sertakan paket App Service dengan penyebaran Anda. Untuk informasi selengkapnya, tinjau Sertakan paket App Service dengan penyebaran.

Di templat Azure Resource Manager (templat ARM) Anda sertakan nilai berikut ini:

Item Properti JSON Deskripsi
Lokasi location Pastikan untuk menggunakan lokasi (wilayah Azure) sumber daya yang sama sebagai lokasi kustom dan lingkungan Kube Anda. Lokasi sumber daya untuk aplikasi logika, lokasi kustom, dan lingkungan Kube Anda semuanya harus sama.

Catatan: Nilai ini tidak sama dengan nama untuk lokasi kustom Anda.

Jenis aplikasi kind Jenis aplikasi yang Anda sebarkan sehingga platform Azure dapat mengidentifikasi aplikasi Anda. Untuk Azure Logic Apps, informasi ini terlihat seperti contoh berikut: kubernetes,functionapp,workflowapp,container
Lokasi Yang Diperluas extendedLocation Objek ini memerlukan "name" dari lokasi kustom Anda untuk lingkungan Kube Anda dan "type" harus diatur ke "CustomLocation".
Nama kontainer linuxFxVersion Nama untuk kontainer Anda, diformat sebagai berikut: DOCKER\|<container-name>
ID sumber daya paket Hosting serverFarmId ID sumber daya dari paket App Service terkait, diformat sebagai berikut:

"/subscriptions/{subscriptionID}/resourceGroups/{groupName}/providers/Microsoft.Web/serverfarms/{appServicePlanName}"

String koneksi penyimpanan AzureWebJobsStorage String koneksi untuk akun penyimpanan Anda

Penting: Saat Anda menyebarkan ke kontainer Docker, Anda perlu menyediakan string koneksi untuk akun penyimpanan Anda di templat ARM Anda. Untuk skenario atau lingkungan produksi, pastikan Anda melindungi dan mengamankan rahasia dan informasi sensitif tersebut, misalnya, dengan menggunakan brankas kunci.

Untuk mereferensikan registri Docker dan gambar kontainer Anda, sertakan nilai-nilai ini di templat Anda:

Item Properti JSON Deskripsi
URL server registri Docker DOCKER_REGISTRY_SERVER_URL URL untuk server registri Docker
Server registri Docker DOCKER_REGISTRY_SERVER_USERNAME Nama pengguna untuk mengakses server registri Docker
Kata sandi server registri Docker DOCKER_REGISTRY_SERVER_PASSWORD Kata sandi untuk mengakses server registri Docker

Templat ARM

Contoh berikut menjelaskan contoh definisi sumber daya Logic Apps yang didukung Azure Arc yang dapat Anda gunakan di template ARM. Untuk informasi selengkapnya, tinjau dokumentasi Microsoft.Web/sites template format (ARM template).

{
   "type": "Microsoft.Web/sites",
   "apiVersion": "2020-12-01",
   "name": "[parameters('name')]",
   "location": "[parameters('location')]",
   "kind": " kubernetes,functionapp,workflowapp,container",
   "extendedLocation": {
      "name": "[parameters('customLocationId')]",
      "type": "CustomLocation"
    },
   "properties": {
      "name": "[parameters('name')]",
      "clientAffinityEnabled": false,
      "serverFarmId": "<hosting-plan-ID>",
      "siteConfig": {
         "appSettings": [
            {
               "name": "FUNCTIONS_EXTENSION_VERSION",
               "value": "~3"
            },
            {
               "name": "FUNCTIONS_WORKER_RUNTIME",
               "value": "node"
            },
            {
               "name": "AzureWebJobsStorage",
               "value": "<storage-connection-string>"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__id",
               "value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
            },
            {
               "name": "AzureFunctionsJobHost__extensionBundle__version",
               "value": "[1.*, 2.0.0)"
            },
            {
               "name": "APP_KIND",
               "value": "workflowapp"
            }, 
            {
               "name": "DOCKER_REGISTRY_SERVER_URL",
               "value": "<docker-registry-server-URL>"
            },
            { 
               "name": "DOCKER_REGISTRY_SERVER_USERNAME",
               "value": "<docker-registry-server-username>"
            },
            {
               "name": "DOCKER_REGISTRY_SERVER_PASSWORD",
               "value": "<docker-registry-server-password>"
            }
         ],
         "use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
         "linuxFxVersion": "DOCKER|<container-name>"
      }
   }
}

Sertakan paket App Service dengan penyebaran

Entah Anda memiliki penyebaran standar atau kontainer, Anda harus menyertakan paket App Service dengan penyebaran Anda. Meskipun paket ini menjadi kurang relevan dengan lingkungan Kube, baik penyebaran standar maupun kontainer tetap memerlukan paket App Service.

Sementara opsi buat lainnya biasanya menangani penyediaan sumber daya Azure untuk paket ini, jika penyebaran Anda menggunakan templat "infrastruktur sebagai kode", Anda harus secara eksplisit membuat sumber daya Azure untuk paket tersebut. Sumber daya paket hosting tidak berubah, hanya informasi sku.

Di templat Azure Resource Manager (templat ARM) Anda sertakan nilai berikut ini:

Item Properti JSON Deskripsi
Lokasi location Pastikan untuk menggunakan lokasi (wilayah Azure) sumber daya yang sama sebagai lokasi kustom dan lingkungan Kube Anda. Lokasi sumber daya untuk aplikasi logika, lokasi kustom, dan lingkungan Kube Anda semuanya harus sama.

Catatan: Nilai ini tidak sama dengan nama untuk lokasi kustom Anda.

Jenis kind Jenis paket layanan aplikasi yang sedang digunakan yang perlu berupa kubernetes,linux
Lokasi Yang Diperluas extendedLocation Objek ini memerlukan "name" dari lokasi kustom Anda untuk lingkungan Kube Anda dan "type" harus diatur ke "CustomLocation".
Nama paket Hosting name Nama untuk paket App Service
Tingkat paket sku: tier Tingkat paket App Service, yaitu K1
Nama paket sku: name Nama paket App Service, yaitu Kubernetes

Templat ARM

Contoh berikut menjelaskan contoh definisi sumber daya paket App Service yang dapat Anda gunakan dengan penyebaran aplikasi Anda. Untuk informasi selengkapnya, tinjau dokumentasi Microsoft.Web/serverfarms template format (ARM template).

{
   "type": "Microsoft.Web/serverfarms",
   "apiVersion": "2020-12-01",
   "location": "<location>",
   "name": "<hosting-plan-name>",
   "kind": "kubernetes,linux",
   "extendedLocation": {
      "name": "[parameters('customLocationId')]",
      "type": "CustomLocation"
   },
   "sku": {
      "tier": "K1",
      "name": "Kubernetes", 
      "capacity": 1
   },
   "properties": {
      "kubeEnvironmentProfile": {
         "id": "[parameters('kubeEnvironmentId')]"
      }
   }
}

Ubah perilaku penskalaan default

Logic Apps yang didukung Azure Arc secara otomatis mengelola penskalaan untuk aplikasi logika Anda berdasarkan jumlah pekerjaan dalam antrean penyimpanan backend. Namun, Anda dapat mengubah perilaku penskalaan default.

Dalam aplikasi logika, definisi alur kerja menentukan urutan tindakan yang akan dijalankan. Setiap kali eksekusi alur kerja dipicu, runtime Azure Logic Apps membuat pekerjaan untuk setiap tipe tindakan dalam definisi alur kerja. Runtime kemudian menata pekerjaan ini ke dalam pengurut pekerjaan. Pengurut ini mengatur penjalanan pekerjaan untuk definisi alur kerja, tetapi mesin orkestrasi pekerjaan Azure Logic Apps yang mendasarinya menjalankan setiap pekerjaan.

Untuk alur kerja yang stateful, mesin orkestrasi pekerjaan menggunakan pesan antrean penyimpanan untuk menjadwalkan pekerjaan dalam pengurut pekerjaan. Di balik layar, pengirim pekerjaan (atau instans pekerja pengirim) memantau antrean pekerjaan ini. Mesin orkestrasi menggunakan jumlah minimum dan maksimum default instans pekerja untuk memantau antrean pekerjaan. Untuk alur kerja tanpa status, mesin orkestrasi sepenuhnya menjaga status tindakan dalam memori.

Untuk mengubah perilaku penskalaan default, Anda menentukan jumlah minimum dan maksimum instans pekerja yang berbeda yang memantau antrean pekerjaan.

Prasyarat untuk mengubah penskalaan

Di kluster Kubernetes yang didukung Azure Arc Anda, pada ekstensi bundel App Service yang dibuat sebelumnya, properti keda.enabled harus diatur ke true. Untuk informasi selengkapnya, tinjau prasyarat tingkat teratas.

Ubah ambang penskalaan

Di Logic Apps yang didukung Azure Arc, panjang antrean pekerjaan memicu peristiwa skala dan menetapkan ambang batas untuk seberapa sering penskalaan terjadi untuk aplikasi logika Anda. Anda dapat mengubah panjang antrean, yang memiliki nilai default yang diatur ke pekerjaan 20. Untuk menskalakan lebih jarang, tingkatkan panjang antrean. Untuk menskalakan lebih sering, kurangi panjang antrean. Proses ini mungkin memerlukan coba-coba.

Untuk mengubah panjang antrean, di file host.json tingkat akar proyek aplikasi logika Anda, atur properti Runtime.ScaleMonitor.KEDA.TargetQueueLength, misalnya:

"extensions": {
   "workflow": {
      "settings": {
         "Runtime.ScaleMonitor.KEDA.TargetQueueLength": "10"
      }
   }
}

Ubah maksimum throughput

Pada sumber daya aplikasi logika yang ada, Anda dapat mengubah jumlah maksimum instans pekerja, yang memiliki nilai default yang diatur ke 2. Nilai ini mengontrol batas atas berapa banyak instans pekerja yang dapat memantau antrean pekerjaan.

Untuk mengubah maksimum ini, gunakan Azure CLI (aplikasi logika buat saja) dan portal Microsoft Azure.

Azure CLI

Untuk membuat aplikasi logika baru, jalankan perintah az logicapp create, dengan parameter berikut:

az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation 
   [--plan MyHostingPlan] [--min-worker-count 1] [--max-worker-count 4]

Untuk mengonfigurasi jumlah instans maksimum Anda, gunakan parameter --settings:

az logicapp config appsettings set --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription
   --settings "K8SE_APP_MAX_INSTANCE_COUNT=10"

portal Microsoft Azure

Di pengaturan aplikasi logika berbasis penyewa tunggal Anda, tambahkan atau edit nilai pengaturan K8SE_APP_MAX_INSTANCE_COUNT dengan mengikuti langkah-langkah berikut:

  1. Di portal Microsoft Azure, temukan dan buka aplikasi logika berbasis penyewa tunggal Anda.

  2. Pada menu aplikasi logika, di bawah Pengaturan, pilih Konfigurasi.

  3. Di panel Konfigurasi, di bawah Pengaturan aplikasi, tambahkan pengaturan aplikasi baru atau edit nilai yang sudah ada, jika sudah ditambahkan.

    1. Pilih Pengaturan aplikasi baru, dan tambahkan pengaturan K8SE_APP_MAX_INSTANCE_COUNT dengan nilai maksimum yang Anda inginkan.

    2. Edit nilai yang sudah ada untuk pengaturan K8SE_APP_MAX_INSTANCE_COUNT.

  4. Setelah selesai, simpan perubahan Anda.

Ubah minimum throughput

Pada sumber daya aplikasi logika yang ada, Anda dapat mengubah jumlah maksimum instans pekerja, yang memiliki nilai default yang diatur ke 1. Nilai ini mengontrol batas bawah berapa banyak instans pekerja yang dapat memantau antrean pekerjaan. Untuk ketersediaan atau performa tinggi, tingkatkan nilai ini.

Untuk mengubah minimum ini, gunakan Azure CLI atau portal Microsoft Azure.

Azure CLI

Untuk sumber daya aplikasi logika yang ada, jalankan perintah, az logicapp scale, dengan parameter berikut:

az logicapp scale --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --instance-count 5 

Untuk membuat aplikasi logika baru, jalankan perintah az logicapp create, dengan parameter berikut:

az logicapp create --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --storage-account MyStorageAccount --custom-location MyCustomLocation 
   [--plan MyHostingPlan] [--min-worker-count 2] [--max-worker-count 4]

portal Microsoft Azure

Di pengaturan aplikasi logika berbasis penyewa tunggal Anda, ubah nilai properti Luaskan skala dengan mengikuti langkah-langkah berikut:

  1. Di portal Microsoft Azure, temukan dan buka aplikasi logika berbasis penyewa tunggal Anda.

  2. Pada menu aplikasi logika, di bawah Pengaturan, pilih Luaskan skala.

  3. Pada panel Luaskan skala, seret penggeser instans minimum ke nilai yang Anda inginkan.

  4. Setelah selesai, simpan perubahan Anda.

Memecahkan masalah

Untuk mendapatkan informasi selengkapnya tentang aplikasi logika yang anda sebarkan, cobalah opsi berikut:

Akses pengaturan dan konfigurasi aplikasi

Untuk mengakses pengaturan aplikasi Anda, jalankan perintah, az logicapp config appsettings, dengan parameter berikut:

az logicapp config appsettings list --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Untuk mengonfigurasi pengaturan aplikasi, jalankan perintah, az logicapp config appsettings set, dengan parameter berikut. Pastikan untuk menggunakan parameter --settings dengan nama dan nilai pengaturan Anda.

az logicapp config appsettings set --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription 
   --settings "MySetting=1"

Untuk menghapus pengaturan aplikasi, jalankan perintah, az logicapp config appsettings delete, dengan parameter berikut. Pastikan untuk menggunakan parameter --setting-names dengan nama pengaturan yang ingin Anda hapus.

az logicapp config appsettings delete --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription
   --setting-names MySetting

Tampilkan properti aplikasi logika

Untuk melihat informasi dan properti aplikasi Anda, jalankan perintah, az logicapp show, dengan parameter berikut:

az logicapp show --name MyLogicAppName 
   --resource-group MyResourceGroupName --subscription MySubscription

Pantau aktivitas alur kerja

Untuk menampilkan aktivitas untuk alur kerja di aplikasi logika Anda, ikuti langkah-langkah berikut:

  1. Di portal Azure, temukan dan buka aplikasi logika yang Anda terapkan.

  2. Pada menu aplikasi logika, pilih Alur kerja, lalu pilih alur kerja Anda.

  3. Pada menu alur kerja, pilih Pantau.

Kumpulkan log

Untuk mendapatkan data yang dicatat tentang aplikasi logika Anda, aktifkan Application Insights di aplikasi logika Anda jika belum diaktifkan.

Langkah berikutnya