All Products
Search
Document Center

:Orkestrasi layanan

Last Updated:Jun 22, 2026

Fitur orkestrasi layanan di DataService Studio menyediakan antarmuka visual berbasis drag-and-drop untuk membangun alur kerja. Anda dapat mengatur beberapa API dan fungsi ke dalam alur kerja dengan struktur sekuensial, paralel, dan percabangan sesuai logika bisnis Anda.

Prasyarat

  • Fitur orkestrasi layanan memerlukan DataWorks Enterprise Edition atau versi yang lebih baru. Untuk informasi selengkapnya, lihat Edisi dan penagihan.

  • Fitur orkestrasi layanan hanya tersedia di Wilayah China (Shanghai). Fitur ini saat ini sedang menjalani peningkatan dan sementara tidak tersedia. Kami menghargai kesabaran Anda.

Informasi latar belakang

Saat Anda memanggil layanan API Service arrangement, sistem mengeksekusi node layanan yang telah dikonfigurasi secara berurutan, meneruskan parameter di antara node tersebut, dan secara otomatis mengelola transisi statusnya. Fitur orkestrasi layanan sangat menyederhanakan biaya pengembangan dan O&M dalam menggabungkan beberapa layanan, sehingga Anda dapat fokus pada logika bisnis Anda.

Orkestrasi layanan menawarkan keunggulan berikut:

  • Biaya pengembangan API yang lebih rendah

    Buat alur kerja dengan antarmuka visual drag-and-drop. Anda dapat mengatur pemanggilan API dalam struktur sekuensial, paralel, atau bercabang tanpa menulis kode tambahan, sehingga secara signifikan mengurangi biaya pengembangan.

  • Kinerja pemanggilan layanan yang lebih baik

    Menjalankan beberapa pemanggilan API atau fungsi dalam instans kontainer yang sama mengurangi overhead jaringan dibandingkan dengan membangun layanan alur kerja sendiri, sehingga meningkatkan kinerja secara signifikan.

  • Arsitektur serverless

    Orkestrasi layanan menggunakan arsitektur serverless dengan auto scaling. Anda tidak perlu mengelola lingkungan runtime dasar, sehingga dapat fokus sepenuhnya pada logika bisnis Anda.

Aturan input dan output

DataService Studio menggunakan JSONPath untuk mengambil nilai parameter. JSONPath adalah bahasa ekspresi untuk mengekstraksi data dari dokumen JSON. Untuk informasi selengkapnya, lihat dokumentasi resmi JSONPath.

Sebagai contoh, pertimbangkan urutan tiga node: A, B, dan C. Node C perlu mengakses output dari Node A dan Node B:

  • Output Node A: {"namea":"valuea"}.

    Untuk mengakses output Node A, gunakan ${A.namea}.

  • Output Node B: {"nameb":"valueb"}.

    Untuk mengakses output Node B, gunakan $.nameb atau ${B.nameb}.

Sistem menyertakan start node bawaan yang menyediakan parameter input awal untuk alur kerja. Sebagai contoh, jika input alur kerja adalah {"namewf":"valuewf"}, node mana pun dapat mengakses nilai ini menggunakan ekspresi ${START.namewf}.

Catatan

start node dan end node adalah node sistem bawaan. Anda dapat mengganti namanya, tetapi tidak dapat menghapusnya. start node merupakan langkah awal, atau Node 0, dari alur kerja.

Parameter

  • Parameter permintaan alur kerja

    Klik Request Parameters di sisi kanan halaman edit orkestrasi layanan untuk mengonfigurasi parameter permintaan dengan memilih Add manually atau Automatic analysis:

    • Add manually: Klik Add Parameter untuk menambahkan parameter permintaan bagi alur kerja.

    • Automatic analysis: Jika node pertama alur kerja adalah node API, klik Automatically parse request parameters untuk memetakan parameter permintaan API ke alur kerja.

  • Parameter permintaan node API

    Klik node API, lalu pada panel yang muncul, klik Input Request Parameters untuk mengonfigurasi nilai parameter permintaannya.

    • Secara default, sistem melakukan pemetaan berdasarkan nama, mencocokkan parameter dengan bidang bernama sama di tingkat teratas output JSON node sebelumnya.

      Catatan

      Jika node saat ini adalah node pertama dalam alur kerja, parameternya dipetakan berdasarkan nama dari parameter permintaan utama alur kerja.

    • Jika Anda menetapkan nilai parameter, sistem akan menggunakan nilai yang Anda berikan.

      Catatan

      Untuk menetapkan nilai parameter node saat ini ke nilai parameter spesifik dari node hulu tertentu, Anda harus menggunakan ekspresi JSONPath.

  • Parameter respons node API

    Klik node API, pilih kotak centang set output results, dan gunakan ekspresi JSONPath untuk menyesuaikan output. Contohnya:

    {
      "return1":"$.data.rows.user_id",
      "return2":"$.data.rows.user_name"
    }
  • Parameter permintaan node Python

    Klik node Python dan masukkan konten untuk parameter permintaan di editor Request Parameters.

  • Parameter respons node Python

    Klik node Python, pilih kotak centang set output results, dan gunakan ekspresi JSONPath untuk menyesuaikan output. Contohnya:

    {
      "return1":"$.data.rows.user_id",
      "return2":"$.data.rows.user_name"
    }

Tabel berikut menjelaskan ekspresi JSONPath umum untuk mengambil nilai parameter.

Ekspresi JSONPath

Penggunaan permintaan

Penggunaan respons

$.

Merujuk objek root dari output node sebelumnya.

Merujuk objek root dari output node saat ini.

$.param

Mengambil nilai parameter param dari output node sebelumnya.

Mengambil nilai parameter param dari output node saat ini.

${START}

Mengambil parameter permintaan dari alur kerja, yaitu output dari start node.

${NodeID}

Mengambil output dari node dengan ID yang ditentukan.

${NodeID.param}

Mengambil nilai parameter param dari output node dengan ID yang ditentukan.

Contoh

  1. Login ke Konsol DataWorks. Di wilayah target, klik Data Analysis and Service > DataService Studio di panel navigasi kiri. Pilih ruang kerja dari daftar drop-down dan klik Go to DataService Studio.

  2. Daftarkan API.

    Contoh ini mendaftarkan API dari titik akhir yang sudah ada.

    1. Di panel navigasi kiri, klik ikon image untuk membuka halaman Service Development.

    2. Arahkan kursor ke ikon image dan pilih Create API > Register API.

    3. Pada kotak dialog Register API, konfigurasikan parameter. Untuk informasi selengkapnya, lihat Register an external API service.

    4. Klik Determine.

  3. Daftarkan fungsi.

    1. Di halaman Service Development, arahkan kursor ke ikon 新建 dan pilih Function > Create Python Function.

      Alternatifnya, Anda dapat menemukan proses bisnis terkait, klik kanan Function, lalu pilih Create > Create Python Function.

    2. Pada kotak dialog Create Python Function, konfigurasikan parameter. Untuk informasi selengkapnya, lihat Manage functions.

    3. Klik OK.

    4. Di halaman konfigurasi fungsi, masukkan kode berikut di area Edit Code.

      # -*- coding: utf-8 -*-
      # event (str) : in filter it is the API result, in other cases, it is your param
      # context : some environment information, temporarily useless
      # import module limit: json,time,random,pickle,re,math
      import json
      def handler(event,context):
          # load str to json object
          obj = json.loads(event)
          # add your code here
          # end add
          return obj
    5. Di bagian Environment Configuration, atur Memory dan Timeout.

    6. Klik ikon 保存 di bilah alat.

  4. Buat alur kerja.

    1. Di halaman Service Development, arahkan kursor ke ikon 新建 dan klik Create Workflow.

      Alternatifnya, Anda dapat menemukan proses bisnis terkait, klik kanan Service arrangement, lalu pilih Create Workflow.

    2. Pada kotak dialog Service arrangement, konfigurasikan parameter.

      Parameter

      Deskripsi

      API Name

      Panjangnya harus 4 hingga 50 karakter dan dapat berisi karakter Tionghoa, huruf, angka, serta garis bawah (_). Harus dimulai dengan karakter Tionghoa atau huruf.

      APIPath

      Jalur tempat API disimpan, misalnya /user.

      Catatan

      Jalur dapat memiliki panjang maksimal 200 karakter dan dapat berisi huruf, angka, garis bawah (_), serta tanda hubung (-). Harus dimulai dengan garis miring (/).

      Protocol

      Protokol yang didukung adalah HTTP dan HTTPS.

      Untuk memanggil API melalui HTTPS, publikasikan API ke gerbang, bind Nama domain independen, dan unggah Sertifikat SSL di Konsol API Gateway. Untuk informasi selengkapnya, lihat Enable HTTPS support.

      Request Method

      Metode yang didukung adalah GET dan POST.

      Response Type

      Hanya tipe respons JSON yang didukung.

      Visibility Scope

      Opsi termasuk Workspace dan Private:

      • Workspace: API terlihat oleh semua anggota dalam ruang kerja ini.

      • Private: API hanya terlihat oleh Pemilik API. Saat ini belum mendukung otorisasi kepada pengguna lain.

        Catatan

        Jika visibilitas diatur ke Private, hanya Anda yang dapat melihat API di pohon direktori; anggota ruang kerja lain tidak dapat melihatnya.

      Tag

      Pilih tag yang sesuai dari daftar Tag.

      Catatan

      Nama tag dapat berisi karakter Tionghoa, huruf, angka, dan garis bawah (_). Anda dapat menambahkan hingga lima tag, dan setiap tag dapat memiliki panjang maksimal 20 karakter.

      Description

      Masukkan deskripsi singkat API, maksimal 2.000 karakter.

      Location

      Direktori tempat alur kerja orkestrasi layanan disimpan.

    3. Klik OK.

  5. Edit alur kerja.

    1. Di halaman editor alur kerja, seret dan hubungkan modul yang sesuai sesuai urutan berikut.

      Node-nya, dari atas ke bawah, adalah Start, API, SWITCH, PYTHON, dan End. Seret dan hubungkan node-node ini di Kanvas sesuai urutan tersebut.

    2. Klik node API1 untuk mengeditnya. Dari daftar Select API, pilih API yang telah Anda daftarkan. Pilih kotak centang set output results dan masukkan {"user_id":"$.data[0].id"}.

      Output diproses menggunakan JSONPath. Sintaks untuk mengambil nilai node (misalnya, ${NodeA.namea}) sama seperti untuk parameter input. Ekspresi {"user_id":"$.data[0].id"} menetapkan id elemen pertama dalam array data dari hasil node saat ini ke user_id. Node tersebut kemudian menghasilkan data JSON dalam format {"user_id":"value"}.

    3. Klik node PYTHON1, lalu dari daftar Select Function, pilih fungsi yang telah Anda daftarkan.

    4. Klik node SWITCH1, lalu di dialog editor, klik Set branch conditions.

      Ekspresi kondisional mengevaluasi output dari node sebelumnya, misalnya ${NodeID.OutputName}>1 atau $.OutputName>1. Operator yang didukung meliputi ==, !=, >=, >, <=, <, &&, !, (), +, -, *, /, dan %.

      Pada contoh ini, output user_id dari node hulu digunakan sebagai parameter permintaan untuk node hilir.

      New Branch 1: $.user_id != 1   # Dieksekusi jika user_id hulu bukan 1.
      New Branch 2: $.user_id == 1   # Dieksekusi jika user_id hulu adalah 1.
    5. Klik node Complete, lalu klik Response Parameters di sisi kanan halaman untuk mengonfigurasi parameter respons.

  6. Uji alur kerja.

    1. Klik Test di pojok kanan atas halaman.

    2. Di kotak dialog Test APIs, klik Determine.

    3. Lihat Runtime Log dan Execution results di bagian bawah halaman.