All Products
Search
Document Center

DataWorks:Custom images

Last Updated:Feb 09, 2026

Buat custom image ketika lingkungan runtime bawaan DataWorks tidak memenuhi kebutuhan dependensi tugas Anda, seperti tugas PyODPS atau Shell yang memerlukan library Python seperti pandas atau jieba. Custom image mengemas dependensi yang telah dipra-instal ke dalam lingkungan yang dapat digunakan ulang dan terstandarisasi, sehingga menjamin konsistensi dan meningkatkan efisiensi.

Catatan penggunaan

  • Batasan versi:

    • Semua edisi mendukung pembuatan dan penggunaan custom image.

    • Hanya Edisi Profesional ke atas yang mendukung pembuatan image.

  • Batasan kelompok sumber daya: Fitur ini hanya mendukung serverless resource groups.

    Untuk kelompok sumber daya lama, gunakan O&M Assistant untuk menginstal dependensi eksternal.
  • Batasan izin: Anda memerlukan kebijakan AliyunDataWorksFullAccess atau ModifyResourceGroup.

    Untuk detail otorisasi, lihat Kelola akses tingkat produk dan konsol dengan kebijakan RAM.

Kuota dan batasan

  • Jumlah image: Batas custom image bervariasi berdasarkan edisi DataWorks.

    • Edisi Dasar dan Standar: 10.

    • Edisi Profesional: 50.

    • Edisi Perusahaan: 100.

  • Konkurensi build: Anda dapat membangun hingga dua image secara bersamaan per wilayah.

  • Persyaratan Gambar ACR:

    • Edisi instans: Hanya instans Alibaba Cloud ACR Edisi Perusahaan yang didukung.

    • Arsitektur instans: Hanya arsitektur AMD64 yang didukung.

    • Ukuran image: Satu image tidak boleh melebihi 5 GB.

    • Konfigurasi zona waktu: Instal paket tzdata untuk mencegah pengecualian kontainer akibat ketidakkonsistenan zona waktu.

  • Pembuatan image: Hanya custom image berbasis DataWorks official images yang mendukung build persistensi. Image yang mereferensikan image Alibaba Cloud ACR tidak mendukung fitur ini; image tersebut ditarik dan dideploy setiap kali tugas dijalankan.

  • Tipe node dan metode yang didukung:

    Tipe node

    Official image build

    ACR image build

    PyODPS2

    Supported

    Unsupported

    PyODPS3

    Supported

    Unsupported

    EMR Spark

    Supported

    Unsupported

    EMR Spark SQL

    Supported

    Unsupported

    EMR SHELL

    Supported

    Unsupported

    Shell

    Supported

    Supported

    Python

    Supported

    Supported

    Notebook

    Unsupported

    Supported

    CDH

    Supported

    Unsupported

    Assignment Node

    Supported

    Unsupported

Prosedur

1. Buat gambar kustom

Anda dapat membuat custom image dengan mereferensikan DataWorks Official Images atau Alibaba Cloud Container Registry Image. Parameter konfigurasi bervariasi tergantung pada jenis referensi yang dipilih:

Buat berdasarkan DataWorks official images

  1. Masuk ke Konsol DataWorks, lalu klik Image Management di panel navigasi kiri.

  2. Pada tab DataWorks Official Images, pilih image target sebagai dasar dan klik Create Custom Image di kolom Actions. Sistem akan mengisi informasi image target ke dalam kotak dialog. Konfigurasikan parameter lainnya sebagai berikut.

    Reference Type: Default adalah DataWorks Official Images. Image Namespace: Default adalah DataWorks Default. Image Repository: Default adalah DataWorks Default.

    Parameter

    Deskripsi

    Image Name/ID

    Image official target dipilih secara default. Anda dapat menggantinya sesuai kebutuhan.

    Visible Scope

    Konfigurasikan visibilitas custom image: Visible Only to Creator atau Visible to all.

    Module

    Custom image saat ini hanya didukung untuk DataStudio.

    Supported Task Type

    Pilih tipe tugas yang didukung berdasarkan jenis image. Saat menjalankan node tugas yang sesuai di DataStudio, image ini dapat dikonfigurasi sebagai runtime image.

    Installation Package

    Tambahkan paket pihak ketiga sesuai kebutuhan. Anda dapat memilih beberapa mode dan menginstal beberapa paket sekaligus. Metode berikut didukung:

    • Quick Install: Pilih Python2, Python3, atau Yum dari daftar drop-down paket untuk langsung memilih lingkungan dan sumber daya yang akan diinstal.

      Jika paket tidak terdaftar, beralihlah ke mode Script untuk instalasi manual.
    • Manual Input: Pilih Script dari daftar drop-down paket. Anda dapat memasukkan perintah instalasi secara manual di editor skrip. Gunakan contoh perintah berikut untuk mengunduh paket pihak ketiga.

      • Contoh pip: pip install xx (untuk Python 2).

      • Contoh pip3: /home/tops/bin/pip3 install 'urllib3<2.0' (untuk Python 3).

      • Contoh yum: yum install -y git.

      • Contoh wget: wget git.

        Untuk perintah instalasi lainnya, lihat Installation commands.
    Penting

    Untuk menginstal paket dari Internet, VPC yang terikat pada serverless resource group harus memiliki akses Internet.

  3. Klik OK untuk menyelesaikan pembuatan.

Buat berdasarkan Alibaba Cloud Container Registry Image (ACR Image)

Untuk membuat custom image dari image ACR, aktifkan Container Registry. Hanya instans ACR Edisi Perusahaan dengan arsitektur AMD64 yang didukung untuk membuat image DataWorks.

  1. Masuk ke Konsol DataWorks dan klik Image Management di panel navigasi kiri.

  2. Pada tab Custom Images, klik Create Image. Konfigurasikan parameter utama dalam kotak dialog:

    Parameter

    Deskripsi

    Reference Type

    Pilih Alibaba Cloud Container Registry Image.

    Image Instance ID

    Pilih instans Edisi Perusahaan yang dibuat di Alibaba Cloud Container Registry.

    Image Namespace

    Pilih namespace di bawah instans image.

    Image Repository

    Pilih repository image di bawah instans image.

    Image Version

    Pilih versi image (tag) dari repository yang dipilih untuk membuat custom image.

    VPC to Associate

    Pilih jaringan VPC yang terikat pada instans image. Untuk detail konfigurasi jaringan VPC, lihat Configure a VPC ACL.

    Penting

    Anda hanya dapat mengonfigurasi satu koneksi VPC antara DataWorks dan instans ACR.

    Synchronize to MaxCompute

    Default-nya adalah No. Opsi ini bergantung pada Image Instance yang dipilih. Opsi ini dapat dipilih hanya untuk instans ACR Edisi Standar ke atas; jika tidak, opsi ini dinonaktifkan.

    • Pilih Yes: Custom image DataWorks dibuat secara default, dan image MaxCompute dibangun secara sinkron saat image DataWorks dipublikasikan.

      Untuk informasi selengkapnya, lihat Membuat gambar kustom MaxCompute di lingkungan pengembangan pribadi.
    • Pilih No: Hanya custom image DataWorks yang dibuat; tidak akan dibangun secara sinkron sebagai image MaxCompute.

    Visible Scope

    Konfigurasikan visibilitas custom image: Visible Only to Creator atau Visible to all.

    Module

    Custom image saat ini hanya didukung untuk DataStudio.

    Supported Task Type

    Image ACR dijalankan menggunakan metode: Start command + user task code file path. Berikut adalah tipe tugas yang didukung beserta perintah start default-nya:

    • Shell

    • Python: Untuk menggunakan custom image yang dibuat dari image ACR Alibaba Cloud pada tugas Python, pastikan instans image ACR Anda berisi lingkungan Python; jika tidak, tugas Python tidak didukung.

    • Notebook

      • Untuk menggunakan custom image yang dibuat dari image ACR Alibaba Cloud pada tugas Notebook, gunakan image dasar DataWorks Notebook sebagai dasar image ACR Anda untuk menyediakan lingkungan runtime. Image dasar DataWorks Notebook: dataworks-public-registry.cn-shanghai.cr.aliyuncs.com/public/dataworks-notebook:py3.11-ubuntu22.04-20241202.

      • Pastikan lingkungan yang digunakan untuk membangun image memiliki kemampuan akses Internet untuk mengambil image dasar DataWorks Notebook.

  3. Klik OK untuk menyelesaikan pembuatan.

Buat berdasarkan instans lingkungan pengembangan pribadi

DataStudio baru mendukung pembuatan image baru dari lingkungan pengembangan pribadi. Untuk detailnya, lihat Create a DataWorks image from a personal development environment.

2. Uji dan publikasikan custom image

Pada tab Image Management > Custom Images di Konsol DataWorks, Publish image target. Anda hanya dapat mempublikasikan image yang telah berhasil diuji. Jika pengujian gagal, klik image > Modify di kolom Actions untuk memodifikasi konfigurasi image.

Perhatikan hal berikut saat menguji dan mempublikasikan:

  • Pilih serverless resource group saat menguji custom image.

  • Untuk image berbasis ACR atau lingkungan pengembangan pribadi, pastikan VPC serverless resource group sesuai dengan VPC kontainer image.

  • Jika custom image Anda mengambil paket pihak ketiga dari Internet dan pengujian gagal dalam waktu lama, periksa apakah VPC yang terikat pada kelompok sumber daya pengujian memiliki kemampuan akses Internet.

3. Asosiasikan image dengan ruang kerja

Setelah dipublikasikan, Anda dapat mengikat image ke ruang kerja.

  1. Pada tab Image Management > Custom Images di Konsol DataWorks, temukan custom image yang telah dipublikasikan.

  2. Klik image > Change Workspace di kolom Actions untuk mengikat custom image ke ruang kerja.

4. Gunakan image dalam tugas

Gunakan gambar di DataStudio baru

  1. Masuk ke DataStudio: Buka halaman Daftar Ruang Kerja DataWorks, alihkan ke wilayah target di bilah navigasi atas, temukan ruang kerja target, lalu klik Shortcuts > Data Studio di kolom Actions.

  2. Konfigurasi image: Di DataStudio, temukan node tugas yang akan diuji dengan custom image, klik Scheduling di sebelah kanan, lalu konfigurasikan properti sumber daya.

    • Resource Group: Pilih serverless resource group.

      Jika kelompok sumber daya target tidak ditampilkan, periksa apakah kelompok sumber daya tersebut telah diikat ke ruang kerja saat ini. Anda dapat membuka halaman Daftar Kelompok Sumber Daya, temukan kelompok sumber daya target, lalu klik Associate Workspace di kolom Actions untuk menyelesaikan pengikatan.
      Penting

      Kelompok sumber daya harus sesuai dengan kelompok sumber daya pengujian yang digunakan saat publikasi image.

    • Image: Pilih Custom Image yang telah dipublikasikan.

      Jika Anda mengganti image, Anda harus mempublikasikan node agar perubahan berlaku di lingkungan produksi.

      image

  3. Debug node: Di panel Run Configuration di sebelah kanan, konfigurasikan Compute Resource, Resource Group, Compute CUs, Image, dan Script Parameters, lalu klik Run di bilah alat atas.

  4. Deploy node: Klik Deploy di bilah alat atas untuk mempublikasikan node ke lingkungan produksi.

Gunakan image di DataStudio lama

  1. Masuk ke DataStudio: Masuk ke Konsol DataWorks. Setelah beralih ke wilayah target, klik Data Development and O&M > Data Development di panel navigasi kiri. Pilih ruang kerja yang sesuai dari daftar drop-down lalu klik Go to Data Development.

  2. Konfigurasi image: Di DataStudio, temukan node tugas yang akan diuji dengan custom image, klik Properties di sebelah kanan, lalu konfigurasikan properti sumber daya.

    • Resource Group: Pilih serverless resource group.

      Jika kelompok sumber daya target tidak ditampilkan, periksa apakah kelompok sumber daya tersebut telah diikat ke ruang kerja saat ini. Anda dapat membuka halaman Daftar Kelompok Sumber Daya, temukan kelompok sumber daya target, lalu klik Associate Workspace di kolom Actions untuk menyelesaikan pengikatan.
      Penting

      Kelompok sumber daya harus sesuai dengan kelompok sumber daya pengujian yang digunakan saat publikasi image.

    • Image: Pilih Custom Image yang telah dipublikasikan.

      Jika Anda mengganti image, Anda harus mempublikasikan node agar perubahan berlaku di lingkungan produksi.

      image

  3. Debug node: Klik Run with Parameters (image) di bilah alat atas, konfigurasikan Resource Group, CUs for Running, dan Image, lalu klik Run.

  4. Deploy node: Klik Save dan Submit di bilah alat atas untuk mempublikasikan node ke lingkungan produksi.

5. Bangun persistent image

Penting

Kami menyarankan membangun persistent image setelah verifikasi. Hal ini mencegah kegagalan tugas akibat perubahan versi tak terduga atau dependensi yang dimodifikasi.

Custom image standar dideploy ulang setiap kali dijalankan, sehingga meningkatkan waktu proses dan biaya. Persistent image dibangun sekali dan digunakan berulang, sehingga meningkatkan efisiensi dan konsistensi sekaligus mengurangi biaya. Pembuatan persistent image hanya didukung untuk custom image yang dibuat berdasarkan official image.

  1. Pada tab Image Management > Custom Images di Konsol DataWorks, temukan custom image yang telah dipublikasikan.

  2. Klik image > Create di kolom Actions untuk membangun custom image menjadi persistent image.

  3. Pada kotak dialog Resource Group for Which You Want to Create Image, konfigurasikan kelompok sumber daya yang akan digunakan untuk membuat gambar, lalu klik Continue.

    Penting

    Untuk menghindari kegagalan build akibat masalah jaringan, pastikan kelompok sumber daya sesuai dengan kelompok sumber daya pengujian yang dipilih saat publikasi custom image.

  4. Pembuatan image memerlukan waktu sekitar 5 hingga 10 menit, tergantung ukuran image. Setelah berhasil dibangun, status image target berubah menjadi Published (Created).

Penagihan

Pembuatan image dikenai biaya komputasi berdasarkan jumlah CU × durasi build. Sistem mengalokasikan 0,5 CU secara default. Untuk detail penagihan, lihat Standar penagihan serverless resource group.

Praktik terbaik untuk produksi

Ikuti rekomendasi berikut untuk custom image yang stabil dan efisien di produksi:

  • Persistent image: Kami menyarankan membangun persistent image untuk image yang telah dipublikasikan dan stabil. Hal ini menghindari instalasi ulang dependensi setiap kali tugas dijalankan, mempersingkat waktu startup, mengurangi biaya komputasi, dan meningkatkan stabilitas.

  • Konsistensi lingkungan: Pastikan konsistensi pengikatan VPC dan konfigurasi jaringan untuk serverless resource group yang digunakan dalam pengujian, pembuatan, dan penjadwalan produksi, terutama saat mengakses repository ACR privat atau Internet.

  • Penguncian versi: Saat menginstal dependensi melalui Script, kami sangat menyarankan untuk secara eksplisit menentukan nomor versi (misalnya, pip install pandas==1.5.3) guna menghindari perubahan perilaku tak terduga akibat pembaruan library upstream.

  • Rencana rollback: Jika tugas produksi gagal setelah pembaruan image, Anda dapat melakukan rollback ke versi sebelumnya melalui riwayat publikasi tugas atau mengarahkan ulang image ke versi lama yang stabil dalam konfigurasi penjadwalan.

Kasus penggunaan

Contoh ini menunjukkan cara menggunakan custom image untuk segmentasi kata dalam node PyODPS. Anda akan memproses data di tabel MaxCompute dan menyimpan hasilnya untuk node downstream. Anda dapat menginstal paket alat segmentasi jieba secara pra-instal dalam custom image, lalu menggunakan image ini dalam tugas PyODPS untuk memproses data dan menyimpan hasilnya ke tabel baru, sehingga terintegrasi mulus ke dalam alur penjadwalan downstream.

  1. Buat data uji.

    1. Buat ruang kerja DataWorks dan ikat sumber daya komputasi MaxCompute. Untuk detailnya, lihat Buat ruang kerja dan Manajemen sumber daya komputasi.

    2. Di DataStudio, buat node ODPS (DataStudio lama) atau node MaxCompute SQL (Data Studio baru), buat tabel uji, dan tambahkan data uji.

      Catatan

      Contoh berikut menggunakan parameter penjadwalan. Atur nama parameter menjadi bday dan nilai parameter menjadi $[yyyymmdd] di panel Scheduling di sebelah kanan.

      Buat tabel uji

      -- Create test table
         CREATE TABLE IF NOT EXISTS custom_img_test_tb
         (
             c_customer_id BIGINT NOT NULL,
             c_customer_text STRING NOT NULL,
             PRIMARY KEY (c_customer_id)
         )
         COMMENT 'Test table for custom image demo'
         PARTITIONED BY (ds STRING COMMENT 'Partition')
         LIFECYCLE 90;
      
         -- Insert test data
         INSERT INTO custom_img_test_tb PARTITION (ds='${bday}') (c_customer_id, c_customer_text) VALUES
         (1, 'The sky is getting dark and it looks like it will snow. Would you like a cup of wine?'),
         (2, 'The moon sets, crows caw, and frost fills the sky. I lie awake, facing the river maples and fishing lights.'),
         (3, 'Mountains and rivers seem to block the way. But among shady willows and bright flowers, another village appears.'),
         (4, 'I sleep in spring, unaware of the dawn. Everywhere I hear the birds sing.'),
         (5, 'Thoughts on a quiet night. Moonlight shines before my bed. I mistake it for frost on the ground.'),
         (6, 'The bright moon rises over the sea. We share this moment, though we are far apart.'),
         (7, 'The swallows that once graced the halls of nobles now fly into the homes of common people.'),
         (8, 'A line of egrets flies up to the blue sky. My window frames the ancient snow on the Western Hills.'),
         (9, 'When life is good, enjoy it to the fullest. Do not let the golden goblet face the moon empty.'),
         (10, 'Heaven gave me talent, so it must be used. A thousand pieces of gold, once spent, can be earned again.');
    3. Simpan dan deploy.

  2. Buat custom image.

    Lihat 1. Buat custom image. Parameter utama sebagai berikut:

    • Image Name/ID: Pilih dataworks_pyodps_task_pod, yaitu gambar resmi node DataWorks PyODPS.

    • Supported Task Type: Mendukung PyODPS2 dan PyODPS 3.

    • Packages: Pilih Python3 dan jieba.

  3. Publikasikan custom image dan modifikasi ruang kerja pemilik. Untuk detailnya, lihat Publikasikan custom image dan Modifikasi ruang kerja pemilik.

  4. Gunakan custom image dalam tugas penjadwalan.

    1. Di DataStudio, buat node PyODPS3 dan konfigurasikan konten berikut:

      Gunakan gambar kustom

      import jieba
      from odps import ODPS
      from odps.models import TableSchema as Schema, Column, Partition
      
      # Read table data
      table = o.get_table('custom_img_test_tb')
      partition_spec = f"ds={args['bday']}"
      with table.open_reader(partition=partition_spec) as reader:
          records = [record for record in reader]
      
      # Perform word segmentation on the extracted text
      participles = [' | '.join(jieba.cut(record['c_customer_text'])) for record in records]
      
      # Create target table
      if not o.exist_table("participle_tb"):
          schema = Schema(columns=[Column(name='word_segment', type='string', comment='Segmentation Result')], partitions=[Column(name='ds', type='string', comment='Partition Field')])
          o.create_table("participle_tb", schema)
      
      # Write segmentation results to the target table
      # Define output partition and table
      output_partition = f"ds={args['bday']}"
      output_table = o.get_table("participle_tb")
      
      # Create partition if it does not exist
      if not output_table.exist_partition(output_partition):
          output_table.create_partition(output_partition)
      
      # Write segmentation results to table
      record = output_table.new_record()
      with output_table.open_writer(partition=output_partition, create_partition=True) as writer:
          for participle in participles:
              record['word_segment'] = participle
              writer.write(record)
    2. Atur parameter utama berikut di konfigurasi penjadwalan di sebelah kanan:

      • Scheduling Parameter: Nama parameter bday, nilai parameter $[yyyymmdd].

      • Resource Group: Pilih serverless resource group, yang harus sama dengan kelompok sumber daya pengujian yang dipilih saat publishing the image.

      • Image: Pilih custom image yang telah dipublikasikan dan terikat ke ruang kerja saat ini.

    3. Debugging node.

      • Jika menggunakan DataStudio lama, klik Run with Parameters (image) di bilah alat atas, konfigurasikan Resource Group Name, CUs for Running, Image, dan Custom Parameters, lalu klik Run.

      • Jika menggunakan DataStudio baru, konfigurasikan Compute Resource, Resource Group, Compute CUs, Image, dan Script Parameters di panel Run Configuration di sebelah kanan, lalu klik Run di bilah alat atas.

    4. (Opsional) Buat kueri sementara (DataStudio lama) atau buat file SQL di direktori pribadi Anda (Data Studio baru), lalu gunakan SQL berikut untuk memeriksa apakah data telah dihasilkan di tabel output.

      -- Replace <Partition Date> with the specific date.
      SELECT * FROM participle_tb WHERE ds=<Partition Date>;
    5. Deploy node PyODPS ke lingkungan produksi.

      Catatan

      Modifikasi image di DataStudio tidak disinkronkan ke lingkungan produksi. Anda harus mempublikasikan tugas agar perubahan berlaku di produksi. Untuk detailnya, lihat Publikasikan tugas (DataStudio Lama) atau Publikasi Node/Workflow (DataStudio Baru).

  5. Bangun custom image menjadi persistent image. Untuk detailnya, lihat 5. Bangun persistent image.

FAQ

P: Kesalahan tugas Python: "urllib3 v2.0 hanya mendukung OpenSSL 1.1.1+."

J: urllib3 v2.0 hanya mendukung OpenSSL 1.1.1+. Anda dapat menurunkan spesifikasi urllib3 agar kompatibel dengan OpenSSL. Misalnya, tetapkan versi urllib3 saat menginstal paket pihak ketiga: /home/tops/bin/pip3 install urllib3==1.26.16.

Referensi

Perintah instalasi

Jika Anda menggunakan metode Script untuk mengonfigurasi perintah instalasi custom image, rujuk perintah berikut:

  • Jika bergantung pada node PyODPS 2, jalankan perintah berikut.

    pip install <package_name> -i https://pypi.tuna.tsinghua.edu.cn/simple
    pip install <package_name>
    Catatan

    Setelah menjalankan perintah, jika diminta untuk memperbarui versi PIP, jalankan pip install --upgrade pip.

  • Jika bergantung pada node PyODPS 3, jalankan perintah berikut.

    /home/tops/bin/pip3 install <package_name> -i https://pypi.tuna.tsinghua.edu.cn/simple
    /home/tops/bin/pip3 install <package_name>
    Catatan
    • Setelah menjalankan perintah, jika diminta untuk memperbarui versi PIP, jalankan /home/tops/bin/pip3 install --upgrade pip.

    • Jika muncul error /home/admin/usertools/tools/cmd-0.sh: line 3: /home/tops/bin/python3: No such file or directory, silakan submit a ticket untuk meminta aktivasi izin.

    Rujuk mirror publik Python berikut dan ganti sesuai kebutuhan.

    Organisasi

    Alamat mirror

    Alibaba Cloud (Aliyun)

    https://mirrors.aliyun.com/pypi/simple/

    Penting

    Mengambil paket Python dari Alibaba Cloud tidak memerlukan kemampuan akses Internet.

    Universitas Tsinghua (Tsinghua)

    https://pypi.tuna.tsinghua.edu.cn/simple

    University of Science and Technology of China (USTC)

    https://pypi.mirrors.ustc.edu.cn/simple/