All Products
Search
Document Center

Platform For AI:Terapkan layanan dengan file konfigurasi JSON

Last Updated:Mar 25, 2026

Definisikan dan terapkan layanan online Elastic Algorithm Service (EAS) menggunakan file konfigurasi JSON dengan parameter resource, jaringan, dan kontainer yang dapat dikustomisasi.

Memulai dengan cepat

Siapkan file konfigurasi JSON

Buat file konfigurasi JSON dengan pengaturan yang diperlukan. Untuk pengguna pertama kali, konfigurasikan parameter pada halaman Custom Model Deployment > Custom Deployment. Sistem akan secara otomatis menghasilkan JSON yang sesuai, yang kemudian dapat dimodifikasi dan diperluas.

Contoh berikut menunjukkan file service.json. Untuk detail parameter, lihat Parameter JSON.

{
    "metadata": {
        "name": "demo",
        "instance": 1,
        "workspace_id": "your-workspace-id"
    },
    "cloud": {
        "computing": {
            "instances": [
                {
                    "type": "ecs.c7a.large"
                }
            ]
        }
    },
    "containers": [
        {
            "image": "eas-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai-eas/python-inference:py39-ubuntu2004",
            "script": "python app.py",
            "port": 8000
        }
    ]
}

Terapkan layanan

  1. Masuk ke Konsol PAI. Pilih wilayah di bagian atas halaman, lalu pilih ruang kerja yang diinginkan dan klik Elastic Algorithm Service (EAS).

  2. Pada tab Inference Service, klik Deploy Service. Di bagian Custom Model Deployment, pilih JSON Deployment.

  3. Tempel konten file konfigurasi JSON Anda dan klik Deploy. Penerapan selesai ketika status layanan berubah menjadi running.

Parameter JSON

Parameter

Wajib

Deskripsi

metadata

Ya

Metadata layanan. Untuk detail parameter, lihat deskripsi parameter metadata.

cloud

Tidak

Resource komputasi dan konfigurasi VPC. Untuk detailnya, lihat deskripsi parameter cloud.

containers

Tidak

Konfigurasi gambar kontainer. Untuk detailnya, lihat deskripsi parameter containers.

dockerAuth

Tidak

Kredensial autentikasi untuk repositori pribadi. Nilainya adalah string Base64 dari username:password repositori.

networking

Tidak

Konfigurasi jaringan dan pemanggilan. Untuk detail parameter, lihat deskripsi parameter networking.

storage

Tidak

Konfigurasi mount storage untuk memasang data dari OSS atau NAS ke dalam kontainer. Untuk detail konfigurasi, lihat Mount storage.

token

Tidak

Token akses untuk autentikasi layanan. Jika dihilangkan, sistem secara otomatis menghasilkan token.

aimaster

Tidak

Mengaktifkan Pemeriksaan daya komputasi dan toleransi kesalahan untuk layanan inferensi terdistribusi multi-node.

model_path

Ya

Diperlukan saat menerapkan layanan dengan prosesor. Parameter model_path dan processor_path menentukan jalur sumber data input untuk model dan prosesor. Format alamat yang didukung:

  • Alamat OSS: Mengarah ke file atau direktori tertentu.

  • Alamat HTTP: File harus berupa paket terkompresi, seperti TAR.GZ, TAR, BZ2, atau ZIP.

  • Jalur lokal: Gunakan jalur lokal jika menggunakan perintah test untuk debugging lokal.

oss_endpoint

Tidak

Titik akhir OSS. Contoh: oss-cn-beijing.aliyuncs.com. Untuk nilai lainnya, lihat Wilayah dan titik akhir.

Catatan

Secara default, parameter ini dapat dihilangkan. Sistem menggunakan titik akhir OSS internal wilayah saat ini untuk mengunduh file model atau prosesor. Parameter ini diperlukan untuk akses OSS cross-region. Misalnya, jika Anda menerapkan layanan di wilayah China (Hangzhou) dan menentukan alamat OSS di wilayah China (Beijing) untuk parameter model_path, tentukan titik akhir OSS publik untuk wilayah China (Beijing).

model_entry

Tidak

File entri model. Dapat berupa file apa pun. Jika tidak ditentukan, sistem menggunakan nama file dari model_path. Sistem meneruskan jalur file utama ke fungsi initialize() dalam prosesor.

model_config

Tidak

Konfigurasi model. Mendukung teks apa pun. Sistem meneruskan nilai ini sebagai argumen kedua ke fungsi initialize() dalam prosesor.

processor

Tidak

  • Jika menggunakan prosesor pre-built resmi, tentukan kode prosesor. Untuk informasi tentang kode prosesor yang digunakan dalam eascmd, lihat Prosesor pre-built.

  • Jika menggunakan prosesor kustom, hilangkan parameter ini. Sebagai gantinya, konfigurasikan parameter processor_path, processor_entry, processor_mainclass, dan processor_type.

processor_path

Tidak

Jalur paket prosesor. Untuk informasi lebih lanjut, lihat deskripsi parameter model_path.

processor_entry

Tidak

File utama prosesor. Contoh: libprocessor.so dan app.py. File harus berisi implementasi fungsi initialize() dan process() yang diperlukan untuk inferensi.

Parameter ini wajib saat processor_type diatur ke cpp atau python.

processor_mainclass

Tidak

Kelas utama prosesor dalam paket JAR. Contoh: com.aliyun.TestProcessor.

Parameter ini wajib saat processor_type diatur ke java.

processor_type

Tidak

Bahasa implementasi processor. Nilai yang valid:

  • cpp

  • java

  • python

warm_up_data_path

Tidak

Jalur ke file permintaan yang digunakan untuk pra-ambil model. Untuk informasi lebih lanjut tentang pra-ambil model, lihat Pra-ambil layanan model.

runtime.enable_crash_block

Tidak

Menentukan apakah instans layanan secara otomatis restart setelah crash karena pengecualian dalam kode prosesor. Nilai yang valid:

  • true: Instans layanan tidak secara otomatis restart. Ini memungkinkan Anda mempertahankan lingkungan untuk troubleshooting.

  • false: Instans layanan secara otomatis restart. Ini adalah nilai default.

autoscaler

Tidak

Konfigurasi untuk auto scaling horizontal. Untuk detail parameter, lihat Auto scaling horizontal.

labels

Tidak

Label untuk layanan EAS. Formatnya adalah key:value.

unit.size

Tidak

Jumlah mesin yang diterapkan untuk satu instans dalam konfigurasi inferensi terdistribusi. Nilai default adalah 2.

sinker

Tidak

Menyimpan semua permintaan dan respons layanan ke MaxCompute atau Simple Log Service (SLS). Untuk detail parameter, lihat deskripsi parameter sinker.

confidential

Tidak

Mengaktifkan layanan inferensi yang aman dan dapat diverifikasi dengan mengonfigurasi layanan manajemen kepercayaan sistem. Ini memastikan data, model, dan kode dienkripsi secara aman selama penerapan dan pemanggilan layanan. Format:

Catatan

Lingkungan enkripsi aman terutama untuk file pada storage yang Anda pasang. Pasang storage sebelum mengaktifkan fitur ini.

"confidential": {
        "trustee_endpoint": "xxxx",
        "decryption_key": "xxxx"
    }

Daftar berikut menjelaskan parameter.

  • trustee_endpoint: URI layanan manajemen kepercayaan sistem, Trustee.

  • decryption_key: URI KBS dari kunci dekripsi. Contoh: kbs:///default/key/test-key.

Parameter metadata

Parameter umum

Parameter

Wajib

Deskripsi

name

Ya

Nama unik untuk layanan dalam wilayah tersebut.

instance

Ya

Jumlah instans layanan.

workspace_id

Tidak

ID ruang kerja. Jika ditentukan, layanan dibatasi hanya untuk ruang kerja PAI ini. Contoh: 1405**.

cpu

Tidak

Jumlah core CPU yang dibutuhkan oleh setiap instans.

memory

Tidak

Memori yang dibutuhkan untuk setiap instans, ditentukan sebagai bilangan bulat dalam MB. Misalnya, "memory": 4096 menunjukkan setiap instans membutuhkan memori 4 GB.

gpu

Tidak

Jumlah GPU yang dibutuhkan oleh setiap instans.

gpu_memory

Tidak

Mengaktifkan GPU slicing, memungkinkan beberapa instans berbagi satu GPU. Fitur ini memerlukan kelompok sumber daya EAS atau kuota sumber daya.

gpu_core_percentage

qos

Tidak

Quality of service (QoS) untuk instans. Nilai yang valid adalah kosong atau BestEffort. Saat qos diatur ke BestEffort, mode berbagi CPU diaktifkan. Dalam mode ini, instans dijadwalkan berdasarkan kebutuhan memori sistem dan memori GPU, dan tidak dibatasi oleh jumlah core CPU pada node. Semua instans pada node berbagi sumber daya CPU. Parameter cpu kemudian menentukan kuota CPU maksimum yang dapat digunakan oleh satu instans.

resource

Tidak

ID kelompok sumber daya. Atur sebagai berikut:

  • Jika layanan diterapkan ke kelompok sumber daya publik, hilangkan parameter ini. Layanan ditagih berdasarkan skema pay-as-you-go.

  • Jika layanan diterapkan ke kelompok sumber daya khusus, atur parameter ini ke ID kelompok sumber daya. Contoh: eas-r-6dbzve8ip0xnzt****.

cuda

Tidak

Versi CUDA yang dibutuhkan oleh layanan. Saat runtime, versi CUDA yang ditentukan secara otomatis dipasang ke direktori /usr/local/cuda instans.

Versi yang didukung: 8.0, 9.0, 10.0, 10.1, 10.2, 11.0, 11.1, dan 11.2. Contoh: "cuda":"11.2".

rdma

Tidak

Atur ke 1 untuk mengaktifkan jaringan RDMA untuk inferensi terdistribusi. Jika dihilangkan, jaringan RDMA dinonaktifkan.

Catatan

Saat ini, jaringan RDMA hanya tersedia untuk layanan yang diterapkan dengan sumber daya komputasi cerdas Lingjun.

enable_grpc

Tidak

Mengaktifkan gRPC untuk gateway layanan. Nilai yang valid:

  • false (default): Gateway layanan tidak mengaktifkan gRPC dan mendukung permintaan HTTP secara default.

  • true: Gateway layanan mengaktifkan koneksi gRPC.

Catatan

Jika Anda menerapkan layanan dengan gambar kustom di mana implementasi sisi server adalah gRPC, atur parameter ini ke true untuk mengganti protokol gateway.

enable_webservice

Tidak

Menentukan apakah akan menerapkan layanan sebagai aplikasi web AI. Nilai yang valid:

  • false (default): Server web tidak diaktifkan.

  • true: Server web diaktifkan.

type

Tidak

Atur parameter ini ke LLMGatewayService untuk menerapkan router cerdas LLM. Untuk informasi tentang cara mengonfigurasi file JSON, lihat Menerapkan router cerdas LLM.

Parameter lanjutan

Penting

Sesuaikan parameter ini dengan hati-hati.

Parameter

Wajib

Deskripsi

rpc

batching

Tidak

Menentukan apakah akan mengaktifkan batching sisi server untuk mempercepat model GPU. Fitur ini hanya didukung dalam mode prosesor pre-built. Nilai yang valid:

  • false (default): Menonaktifkan batching sisi server.

  • true: Mengaktifkan batching sisi server.

keepalive

Tidak

Waktu pemrosesan maksimum untuk satu permintaan, dalam milidetik. Jika permintaan melebihi waktu ini, server mengembalikan error timeout 408 dan menutup koneksi. Nilai default: 600000 untuk gateway khusus. Parameter ini tidak didukung untuk gateway khusus Application Load Balancer (ALB).

io_threads

Tidak

Jumlah thread I/O jaringan per instans. Nilai default: 4.

max_batch_size

Tidak

Ukuran maksimum setiap batch. Nilai default: 16. Parameter ini hanya didukung dalam mode prosesor pre-built dan hanya berlaku saat rpc.batching diatur ke true.

max_batch_timeout

Tidak

Timeout maksimum untuk setiap batch, dalam milidetik. Nilai default: 50. Parameter ini hanya didukung dalam mode prosesor pre-built dan hanya berlaku saat rpc.batching diatur ke true.

max_queue_size

Tidak

Untuk layanan inferensi asinkron, parameter ini menentukan panjang antrian maksimum. Nilai default: 64. Jika antrian penuh, server mengembalikan error 450 dan menutup koneksi. Untuk mencegah overload server, antrian dapat memberi tahu klien secara proaktif untuk mencoba ulang permintaan pada instans lain. Untuk layanan dengan waktu respons lama, pertimbangkan untuk mengurangi panjang antrian agar menghindari penumpukan permintaan dan timeout.

worker_threads

Tidak

Jumlah thread pekerja per instans untuk pemrosesan permintaan konkuren. Nilai default: 5. Parameter ini hanya didukung dalam mode prosesor pre-built.

rate_limit

Tidak

Mengaktifkan pembatasan laju QPS dan menentukan QPS maksimum yang dapat ditangani oleh satu instans. Nilai 0 (default) menonaktifkan fitur ini.

Misalnya, jika Anda mengatur parameter ini ke 2000, permintaan akan ditolak dengan error 429 (Too Many Requests) ketika QPS melebihi 2000.

enable_sigterm

Tidak

Menentukan apakah akan mengirim sinyal SIGTERM saat instans memasuki status terminating. Nilai yang valid:

  • false (default): Sinyal SIGTERM tidak dikirim.

  • true: Saat instans memasuki status terminating, sistem mengirim sinyal SIGTERM ke proses utama. Proses layanan Anda harus menangani sinyal ini untuk melakukan terminasi graceful kustom. Jika sinyal tidak ditangani, proses utama mungkin langsung keluar, menyebabkan terminasi graceful gagal.

rolling_strategy

max_surge

Tidak

Selama pembaruan rolling, ini adalah jumlah maksimum instans tambahan yang dapat dibuat di atas jumlah instans yang diinginkan. Nilai ini dapat berupa bilangan bulat positif atau persentase, seperti "2%". Nilai default adalah "2%". Meningkatkan nilai ini dapat mempercepat proses pembaruan.

Misalnya, jika layanan memiliki 100 instans dan parameter ini diatur ke 20, sistem segera membuat 20 instans baru saat pembaruan dimulai.

max_unavailable

Tidak

Selama pembaruan rolling, ini adalah jumlah maksimum instans yang dapat tidak tersedia. Parameter ini membebaskan sumber daya untuk instans baru, yang mencegah pembaruan macet karena kapasitas tidak mencukupi. Nilai default adalah 1 di kelompok sumber daya khusus dan 0 di kelompok sumber daya publik.

Misalnya, jika parameter ini diatur ke N, N instans lama segera dihentikan saat pembaruan dimulai.

Catatan

Jika Anda memiliki sumber daya idle yang cukup, atur parameter ini ke 0. Nilai tinggi dapat memengaruhi stabilitas layanan karena berkurangnya jumlah instans yang tersedia meningkatkan beban pada setiap instans yang tersisa. Seimbangkan stabilitas layanan dengan ketersediaan sumber daya saat mengonfigurasi parameter ini.

eas.termination_grace_period

Tidak

Periode terminasi graceful untuk instans, dalam detik. Nilai default: 30.

Layanan EAS menggunakan strategi pembaruan rolling. Instans pertama-tama memasuki status Terminating, di mana trafik dialihkan darinya. Instans kemudian menunggu periode yang ditentukan untuk menyelesaikan pemrosesan permintaan yang sedang berjalan sebelum dimatikan. Jika permintaan Anda membutuhkan waktu lama untuk diproses, Anda dapat meningkatkan nilai ini untuk memastikan semua permintaan selesai selama pembaruan.

Penting

Mengurangi nilai ini dapat memengaruhi stabilitas layanan. Mengatur terlalu tinggi dapat memperlambat proses pembaruan. Jangan ubah parameter ini kecuali Anda memiliki kebutuhan khusus.

scheduling

spread.policy

Tidak

Kebijakan distribusi untuk menjadwalkan instans layanan. Kebijakan yang didukung:

  • host: Menyebar instans di berbagai node.

  • zone: Menyebar instans di berbagai zona ketersediaan.

  • default: Menggunakan kebijakan penjadwalan default tanpa strategi distribusi aktif.

Contoh konfigurasi:

{
  "metadata": {
    "scheduling": {
      "spread": {
        "policy": "host"
      }
    }
}

resource_rebalancing

Tidak

Menentukan apakah akan mengaktifkan penyeimbangan ulang sumber daya. Nilai yang valid:

  • false (default): Menonaktifkan fitur ini.

  • true: Mengaktifkan EAS untuk secara berkala membuat instans probe pada sumber daya prioritas tinggi. Jika instans probe dijadwalkan berhasil, sistem membuat lebih banyak instans probe secara eksponensial hingga penjadwalan gagal. Instans probe yang berhasil dijadwalkan, setelah siap, menggantikan instans yang berjalan pada sumber daya prioritas rendah.

Fitur ini membantu menyelesaikan masalah berikut:

  • Selama pembaruan rolling, instans yang dihentikan dapat menempati sumber daya, memaksa instans baru untuk mulai di kelompok sumber daya publik sebelum dijadwalkan ulang ke kelompok sumber daya khusus.

  • Saat Anda menggunakan instans spot dan instans reguler, sistem secara berkala memeriksa ketersediaan instans spot. Jika tersedia, sistem memigrasikan instans dari instans reguler ke instans spot.

workload_type

Tidak

Untuk menerapkan layanan EAS sebagai pekerjaan, atur parameter ini ke elasticjob. Untuk informasi lebih lanjut tentang layanan Elastic Job, lihat Layanan Elastic Job.

resource_burstable

Tidak

Mengaktifkan fitur kolam sumber daya elastis untuk layanan EAS yang diterapkan di kelompok sumber daya khusus. Nilai yang valid:

  • true: Mengaktifkan fitur.

  • false: Menonaktifkan fitur.

shm_size

Tidak

Ukuran memori bersama untuk instans, dalam GB. Memori bersama menyediakan akses memori langsung tanpa replikasi atau transfer data.

Parameter cloud

Parameter

Wajib

Deskripsi

computing

instances

Tidak

Menentukan daftar spesifikasi instans untuk menerapkan layanan di kelompok sumber daya publik. Jika penawaran untuk spesifikasi instans gagal atau inventarisnya tidak mencukupi, sistem mencoba membuat layanan menggunakan spesifikasi instans berikutnya dalam urutan yang dikonfigurasi.

  • type: Jenis spesifikasi instans.

  • spot_price_limit:

    • Jika diatur, parameter ini mendefinisikan instans sebagai spot instans dengan batas harga maksimum yang ditentukan. Satuannya adalah USD.

    • Jika parameter ini dihilangkan, instans adalah instans pay-as-you-go reguler.

  • capacity: Jumlah maksimum instans jenis ini. Dapat berupa angka, seperti 500, atau persentase dalam string, seperti "20%". Jika batas ini tercapai, sistem berhenti membuat instans jenis ini, meskipun masih ada inventaris yang tersedia.

    Misalnya, jika layanan memiliki total 200 instans dan kapasitas untuk jenis instans A diatur ke "20%", layanan menggunakan maksimal 40 instans jenis A. Sistem membuat instans sisanya menggunakan spesifikasi lain.

disable_spot_protection_period

Tidak

Parameter ini hanya berlaku untuk spot instans. Nilai yang valid:

  • false (default): Setelah spot instans dibuat, ia memiliki periode perlindungan default 1 jam. Selama periode ini, instans tidak ditarik kembali meskipun harga pasar melebihi penawaran Anda.

  • true: Menonaktifkan periode perlindungan. Instans tanpa periode perlindungan biasanya sekitar 10% lebih murah daripada instans dengan periode perlindungan.

networking

vpc_id

Tidak

Menentukan VPC, vSwitch, dan grup keamanan untuk layanan EAS.

vswitch_id

Tidak

security_group_id

Tidak

Contoh:

{
    "cloud": {
        "computing": {
            "instances": [
                {
                    "type": "ecs.c8i.2xlarge",
                    "spot_price_limit": 1
                },
                {
                    "type": "ecs.c8i.xlarge",
                    "capacity": "20%"
                }
            ],
            "disable_spot_protection_period": false
        },
        "networking": {
            "vpc_id": "vpc-bp1oll7xawovg9*****",
            "vswitch_id": "vsw-bp1jjgkw51nsca1e****",
            "security_group_id": "sg-bp1ej061cnyfn0b*****"
        }
    }
}

Parameter kontainer

Untuk menerapkan layanan menggunakan gambar kustom, lihat Menerapkan layanan dengan gambar kustom.

Parameter

Wajib

Deskripsi

image

Ya

URI gambar kontainer untuk layanan model.

env

name

Tidak

Nama variabel lingkungan.

value

Tidak

Nilai variabel lingkungan.

command

Salah satu dari command atau script wajib diisi.

Perintah entry point untuk kontainer. Hanya perintah tunggal yang didukung. Untuk skrip kompleks, seperti cd xxx && python app.py, gunakan parameter script sebagai gantinya. Gunakan field ini untuk gambar yang tidak memiliki perintah /bin/sh.

script

Skrip entry point untuk kontainer. Gunakan \n atau titik koma (;) untuk memisahkan beberapa perintah.

port

Tidak

Port kontainer.

Penting
  • Hindari port 8080 dan 9090, yang dicadangkan untuk engine EAS.

  • Port ini harus sesuai dengan port yang didengarkan oleh aplikasi dalam command atau script Anda.

prepare

pythonRequirements

Tidak

Daftar paket Python yang akan diinstal sebelum instans layanan dimulai. Gambar harus memiliki perintah python dan pip di path sistemnya. Contoh:

"prepare": {
  "pythonRequirements": [
    "numpy==1.16.4",
    "absl-py==0.11.0"
  ]
}

pythonRequirementsPath

Tidak

Jalur ke file requirements.txt. Paket dari file ini diinstal sebelum instans layanan dimulai. Gambar harus memiliki perintah python dan pip di path sistemnya. File requirements.txt dapat disertakan dalam gambar atau dipasang dari penyimpanan eksternal. Contoh:

"prepare": {
  "pythonRequirementsPath": "/data_oss/requirements.txt"
}

Parameter jaringan

Parameter

Wajib

Deskripsi

gateway

Tidak

Menentukan gateway khusus untuk layanan EAS.

gateway_policy

Tidak

  • rate_limit: Jumlah maksimum permintaan per detik yang dapat diterima layanan.

    • enable: Menentukan apakah akan mengaktifkan pembatasan laju.

    • limit: Jumlah maksimum permintaan per detik.

      Catatan

      Layanan yang menggunakan gateway bersama memiliki batas default per layanan sebesar 1.000 QPS dan batas grup server sebesar 10.000 QPS. Gateway khusus tidak memiliki nilai default.

  • concurrency_limit: Jumlah maksimum permintaan yang sedang diproses secara konkuren. Pengaturan ini tidak didukung untuk gateway khusus yang menggunakan Application Load Balancer (ALB).

    • enable: Menentukan apakah akan mengaktifkan kontrol konkurensi.

    • limit: Jumlah maksimum permintaan konkuren.

Contoh konfigurasi:

{
    "networking": {
        "gateway_policy": {
            "rate_limit": {
                "enable": true,
                "limit": 100
            },
            "concurrency_limit": {
                "enable": true,
                "limit": 50
            }
        }
    }
}

Parameter sinker

Parameter

Wajib

Deskripsi

type

Tidak

Jenis penyimpanan untuk menyimpan catatan secara persisten. Jenis yang didukung:

  • maxcompute: MaxCompute

  • sls: Simple Log Service (SLS)

config

maxcompute.project

Tidak

Nama proyek MaxCompute.

maxcompute.table

Tidak

Nama tabel MaxCompute.

sls.project

Tidak

Nama proyek SLS.

sls.logstore

Tidak

Nama penyimpanan log SLS.

Bagian berikut memberikan contoh konfigurasi.

MaxCompute

"sinker": {
        "type": "maxcompute",
        "config": {
            "maxcompute": {
                "project": "cl****",
                "table": "te****"
            }
        }
    }

Simple Log Service

"sinker": {
        "type": "sls",
        "config": {
            "sls": {
                "project": "k8s-log-****",
                "logstore": "d****"
            }
        }
    }

Lampiran: Contoh konfigurasi JSON

Contoh JSON berikut menggunakan parameter yang dijelaskan di atas:

{
  "token": "****M5Mjk0NDZhM2EwYzUzOGE0OGMx****",
  "processor": "tensorflow_cpu_1.12",
  "model_path": "oss://examplebucket/exampledir/",
  "oss_endpoint": "oss-cn-beijing.aliyuncs.com",
  "model_entry": "",
  "model_config": "",
  "processor_path": "",
  "processor_entry": "",
  "processor_mainclass": "",
  "processor_type": "",
  "warm_up_data_path": "",
  "runtime": {
    "enable_crash_block": false
  },
  "unit": {
        "size": 2
    },
  "sinker": {
        "type": "maxcompute",
        "config": {
            "maxcompute": {
                "project": "cl****",
                "table": "te****"
            }
        }
    },
  "cloud": {
    "computing": {
      "instances": [
        {
          "capacity": 800,
          "type": "dedicated_resource"
        },
        {
          "capacity": 200,
          "type": "ecs.c7.4xlarge",
          "spot_price_limit": 3.6
        }
      ],
      "disable_spot_protection_period": true
    },
    "networking": {
            "vpc_id": "vpc-bp1oll7xawovg9t8****",
            "vswitch_id": "vsw-bp1jjgkw51nsca1e****",
            "security_group_id": "sg-bp1ej061cnyfn0b****"
        }
  },
  "autoscaler": {
    "min": 2,
    "max": 5,
    "strategies": {
      "qps": 10
    }
  },
  "storage": [
    {
      "mount_path": "/data_oss",
      "oss": {
        "endpoint": "oss-cn-shanghai-internal.aliyuncs.com",
        "path": "oss://bucket/path/"
      }
    }
  ],
  "confidential": {
        "trustee_endpoint": "xx",
        "decryption_key": "xx"
    },
  "metadata": {
    "name": "test_eascmd",
    "resource": "eas-r-9lkbl2jvdm0puv****",
    "instance": 1,
    "workspace_id": "1405**",
    "gpu": 0,
    "cpu": 1,
    "memory": 2000,
    "gpu_memory": 10,
    "gpu_core_percentage": 10,
    "qos": "",
    "cuda": "11.2",
    "enable_grpc": false,
    "enable_webservice": false,
    "rdma": 1,
    "rpc": {
      "batching": false,
      "keepalive": 5000,
      "io_threads": 4,
      "max_batch_size": 16,
      "max_batch_timeout": 50,
      "max_queue_size": 64,
      "worker_threads": 5,
      "rate_limit": 0,
      "enable_sigterm": false
    },
    "rolling_strategy": {
      "max_surge": 1,
      "max_unavailable": 1
    },
    "eas.termination_grace_period": 30,
    "scheduling": {
      "spread": {
        "policy": "host"
      }
    },
    "resource_rebalancing": false,
    "workload_type": "elasticjob",
    "shm_size": 100
  },
  "features": {
    "eas.aliyun.com/extra-ephemeral-storage": "100Gi",
    "eas.aliyun.com/gpu-driver-version": "tesla=550.127.08"
  },
  "networking": {
    "gateway": "gw-m2vkzbpixm7mo****"
  },
  "containers": [
    {
      "image": "registry-vpc.cn-shanghai.aliyuncs.com/xxx/yyy:zzz",
      "prepare": {
        "pythonRequirements": [
          "numpy==1.16.4",
          "absl-py==0.11.0"
        ]
      },
      "command": "python app.py",
      "port": 8000
    }
  ],
  "dockerAuth": "dGVzdGNhbzoxM*******"
}