Jika runtime bawaan di Function Compute tidak memenuhi kebutuhan bisnis Anda, Anda dapat menggunakan fungsi citra kustom. Topik ini menjelaskan cara membuat fungsi citra kustom di konsol Function Compute atau menggunakan alat Serverless Devs.
Catatan penggunaan
Untuk membuat fungsi citra kustom di Function Compute, Anda harus menggunakan citra dari repositori Alibaba Cloud Container Registry (ACR) yang berada di wilayah yang sama dan dimiliki oleh Akun Alibaba Cloud yang sama. Untuk komputer yang menggunakan arsitektur ARM, seperti komputer Mac dengan chip Apple Silicon, Anda harus menentukan platform build citra sebagai Linux/amd64. Misalnya, jalankan perintah
docker build --platform linux/amd64 -t $IMAGE_NAME ..Ketika Function Compute mengurai nama domain citra dari instans ACR Edisi Perusahaan, sistem menggunakan alamat IP akses yang diselesaikan oleh server DNS default dari VPC yang dikonfigurasi untuk instans repositori citra atau diselesaikan secara otomatis oleh PrivateZone. Skenario berikut berlaku:
Skenario 1: Jika identifikasi Default Resolution tidak ada dalam daftar Access IP pada halaman Access Control instans ACR Enterprise, semua alamat IP dalam daftar tersebut diselesaikan secara otomatis oleh Cloud DNS PrivateZone. Dalam kasus ini, konfigurasi VPC apa pun dapat digunakan.

Skenario 2: Jika alamat IP dalam daftar Access IP pada halaman Access Control instans ACR Enterprise ditandai dengan identifikasi Default Resolution, alamat IP tersebut adalah alamat IP hasil resolusi default untuk virtual private cloud (VPC) tertentu. Misalnya, seperti yang ditunjukkan pada gambar berikut, Anda hanya dapat memilih VPC pertama.

Ketika menggunakan instans ACR Edisi Perusahaan, Anda hanya dapat memilih citra non-dipercepat. Setiap kali Anda memperbarui konfigurasi citra suatu fungsi, citra dipercepat terbaru akan dibuat berdasarkan citra asli yang baru dipilih. Jika citra dipercepat sudah ada, citra tersebut akan ditimpa. Jangan menghapus citra asli atau citra dipercepat. Jika tidak, pemanggilan fungsi akan gagal.
Jika citra yang dikonfigurasi untuk fungsi Anda berubah, Anda harus segera memperbarui fungsi Anda. Jika tidak, pemanggilan fungsi akan gagal.
Pastikan citra asli tersedia. Jika tidak, fungsi akan masuk ke status Gagal dan tidak dapat dipanggil. Function Compute menyimpan cache fungsi Anda untuk mempercepat cold start, tetapi pemanggilan fungsi tetap bergantung pada keberadaan citra asli.
Pastikan citra yang digunakan dalam fungsi Anda tidak ditimpa. Jika digest-nya ditimpa, Anda harus menerapkan ulang fungsi Anda menggunakan informasi citra terbaru. Function Compute mencatat tag dan digest versi citra yang Anda pilih saat pembuatan dan pembaruan fungsi. Jika versi citra diperbarui ke digest yang berbeda di tempat lain, pemanggilan fungsi akan gagal.
Prasyarat
Container Registry
- Catatan
ACR Edisi Personal ditujukan untuk pengembang individu dan tersedia sebagai uji coba gratis dengan kuota terbatas selama pratinjau publik. Tidak ada Service-Level Agreement (SLA) yang disediakan, dan batasan penggunaan berlaku. Untuk informasi lebih lanjut tentang batasan tersebut, lihat Catatan tentang pembuatan instans Edisi Personal.
Serverless Devs (diperlukan hanya jika Anda menggunakan Serverless Devs untuk membuat fungsi)
Buat fungsi di konsol
Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, pilih .
Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik Create Function.
Dalam kotak dialog yang muncul, pilih tipe GPU Function sesuai petunjuk berdasarkan skenario Anda, lalu klik Create GPU Function.
Pada halaman Create GPU Function, atur parameter berikut lalu klik Create.
Basic Configuration: Masukkan Function Name. Nama harus unik dalam akun dan wilayah yang sama, serta harus mengikuti konvensi penamaan.
Elastic Configuration: Pilih tipe instans. Anda tidak dapat menggunakan instans elastis dan instans terjadwal secara bersamaan. Setelah fungsi dibuat, Anda tidak dapat mengganti tipe instans.
Instans elastis
Item Konfigurasi
Deskripsi
Contoh
Instance Type
Pilih Elastic Instance. Instans diskalakan secara otomatis berdasarkan volume permintaan dan dikembalikan saat tidak ada permintaan. Anda ditagih berdasarkan penggunaan. Anda tidak dikenai biaya jika tidak menggunakan instans.
Instans Elastis
GPU Type
Pilih tipe GPU. Untuk informasi lebih lanjut tentang spesifikasi yang didukung oleh setiap tipe, lihat Tipe dan spesifikasi instans.
Seri Ada
Specifications
Atur spesifikasi GPU Memory, vCPU, Memory, dan Disk untuk fungsi sesuai kebutuhan. Setelah Anda mengatur spesifikasi, penggunaan setiap sumber daya yang dihasilkan oleh pemanggilan fungsi aktual diukur dengan mengalikan spesifikasi dengan durasi penggunaan. Untuk informasi lebih lanjut, lihat Ikhtisar penagihan.
CatatanData dapat ditulis ke semua direktori pada disk. Ruang disk bersifat bersama.
Siklus hidup disk sama dengan siklus hidup instans fungsi dasar. Ketika instans dikembalikan oleh sistem, data pada disk juga dihapus. Untuk menyimpan file secara persisten, Anda dapat memasang sistem file NAS atau bucket OSS. Untuk informasi lebih lanjut, lihat Konfigurasi sistem file NAS dan Konfigurasi sistem file OSS.
Memori GPU: 48 GB
vCPU: 8 vCPU
Memori: 64 GB
Disk: 512 MB (gratis, Function Compute menyediakan kuota gratis 512 MB untuk penggunaan disk)
Minimum Instances
Jika bisnis Anda sensitif terhadap latensi, atur Instans Minimum ke nilai lebih besar atau sama dengan 1 setelah memilih Elastic Instance. Hal ini mengunci sumber daya terlebih dahulu dan mengurangi latensi cold start.
CatatanSetelah Anda mengatur Instans Minimum ke nilai lebih besar atau sama dengan 1, jika tidak ada kebijakan autoscaling untuk instans minimum yang dikonfigurasi atau jika tidak ada kebijakan autoscaling yang aktif selama periode waktu tertentu, jumlah instans minimum saat ini adalah nilai yang Anda atur di sini.
Jika Anda mengonfigurasi beberapa kebijakan autoscaling, sistem menghitung Minimum Instances saat setiap kebijakan dipicu dan menggunakan nilai maksimum di antara kebijakan yang aktif sebagai Minimum Instances saat ini.
Untuk informasi lebih lanjut, lihat Bagaimana jumlah instans minimum saat ini dihitung?.
1
Instance Concurrency
Anda dapat mengonfigurasi satu instans fungsi GPU untuk memproses beberapa permintaan konkuren. Untuk informasi lebih lanjut, lihat Konfigurasi konkurensi instans.
Instans yang disediakan
Item Konfigurasi
Deskripsi
Contoh
Instance Type
Pilih Provisioned Instance. Instans dialokasikan ke fungsi dari kolam sumber daya terjadwal yang telah dibeli.
Gunakan instans yang disediakan untuk skenario yang memerlukan biaya yang dapat diprediksi, sensitif terhadap latensi bisnis, dan memiliki tingkat pemanfaatan sumber daya tinggi guna memastikan stabilitas bisnis.
Instans yang Disediakan
Provisioned Resource Pool
Kolam sumber daya terjadwal adalah kumpulan instans terjadwal yang dapat dialokasikan ke fungsi target. Jika kuota tersisa dari kolam sumber daya terjadwal Anda tidak mencukupi, klik Scale Out di kolom Operation dan ikuti petunjuk di layar untuk melakukan scale out. Untuk informasi lebih lanjut, lihat Kolam sumber daya terjadwal (Langganan).
Provisioned Resource Pool: fc-pool-****
GPU Type: Ada
Specifications
Atur spesifikasi GPU Memory, vCPU, Memory, dan Disk untuk fungsi sesuai kebutuhan. Setelah Anda mengatur spesifikasi, penggunaan setiap sumber daya yang dihasilkan oleh pemanggilan fungsi aktual diukur dengan mengalikan spesifikasi dengan durasi penggunaan. Untuk informasi lebih lanjut, lihat Ikhtisar penagihan.
CatatanData dapat ditulis ke semua direktori pada disk. Ruang disk bersifat bersama.
Siklus hidup disk sama dengan siklus hidup instans fungsi dasar. Ketika instans dikembalikan oleh sistem, data pada disk juga dihapus. Untuk menyimpan file secara persisten, Anda dapat memasang sistem file NAS atau bucket OSS. Untuk informasi lebih lanjut, lihat Konfigurasi sistem file NAS dan Konfigurasi sistem file OSS.
Memori GPU: 48 GB
vCPU: 8 vCPU
Memori: 64 GB
Disk: 512 MB (gratis, Function Compute menyediakan kuota gratis 512 MB untuk penggunaan disk)
Provisioned Instances
Alokasikan jumlah instans terjadwal ke fungsi target berdasarkan sumber daya dari kolam sumber daya terjadwal.
1
Instance Concurrency
Anda dapat mengonfigurasi satu instans fungsi GPU untuk memproses beberapa permintaan konkuren. Untuk informasi lebih lanjut, lihat Konfigurasi konkurensi instans.
20
Function Code: Konfigurasikan runtime dan informasi terkait kode untuk fungsi.
Parameter
Deskripsi
Contoh
Runtime
Gunakan Citra Contoh: Pilih citra contoh yang disediakan oleh Function Compute untuk menerapkan fungsi citra dengan cepat. Anda perlu memilih citra target dari daftar citra di bawah parameter Container Image.
Gunakan Citra dari ACR: Klik Select Image From ACR di bawah parameter Container Image. Di panel Pilih Citra Kontainer, pilih Instans Container Registry dan Repositori Citra ACR yang telah dibuat. Lalu, temukan citra target di daftar citra di bawah ini dan klik Pilih di kolom Tindakan.
CatatanAnda tidak dapat membuat fungsi menggunakan citra publik dari repositori ACR yang dimiliki akun lain.
Jika citra yang dikonfigurasi untuk fungsi Anda berubah, perbarui fungsi Anda segera. Jika tidak, pemanggilan fungsi akan gagal. Untuk informasi lebih lanjut, lihat Catatan penggunaan.
Ketika menggunakan instans Edisi Perusahaan, Anda hanya dapat memilih citra non-dipercepat. Jangan menghapus citra asli atau citra dipercepat. Jika tidak, pemanggilan fungsi akan gagal. Untuk informasi lebih lanjut, lihat Catatan penggunaan.
Ketika menggunakan instans Edisi Perusahaan, alamat citra dalam format nama domain kustom tidak didukung.
Anda tidak dapat membuat fungsi menggunakan citra dari repositori di instans ACR Edisi Perusahaan (Standar dan Lanjutan) yang mengaktifkan akselerasi citra dalam mode Index-only Mode.
Karena ACR memperkenalkan fitur Index-only Mode, citra di repositori citra yang baru dibuat dengan akselerasi citra diaktifkan di instans ACR Edisi Perusahaan (Dasar) tidak dapat digunakan untuk membuat fungsi. Namun, citra di repositori citra dipercepat yang sudah ada di instans ACR Edisi Perusahaan (Dasar) masih dapat digunakan untuk membuat fungsi. Untuk informasi lebih lanjut tentang Index-only Mode, lihat Muat citra kontainer sesuai permintaan.
Container Image
Pilih citra target.
Citra Contoh Aplikasi Web SpringBoot
Startup Command
Perintah startup untuk program. Jika Anda tidak mengonfigurasi perintah startup, Entrypoint/CMD dari citra akan digunakan secara default.
Tidak ada
Listener Port
Port tempat server HTTP dalam kode Anda mendengarkan.
9000
Execution Timeout
Atur periode waktu tunggu. Waktu tunggu eksekusi default Execution Timeout adalah 60 detik, dan maksimum 86.400 detik.
60
Instance Prefetch: Untuk skenario inferensi AI, konfigurasikan Instance Prefetch guna memuat model terlebih dahulu dan mengurangi waktu respons permintaan awal yang lama.
Item Konfigurasi
Deskripsi
Contoh
Pra-ambil instans
Instance Prefetch
Dengan mengonfigurasi hook Initializer, Anda dapat memuat model dengan menjalankan skrip tertentu atau memanggil antarmuka setelah instans fungsi berhasil dimulai dan sebelum memproses permintaan. Hal ini memuat model terlebih dahulu dan mengoptimalkan cold start.
Untuk informasi lebih lanjut tentang hook Initializer, lihat Konfigurasi siklus hidup instans.
Aktifkan
Timeout
Atur periode waktu tunggu untuk hook Initializer.
60
Prefetch Program Type
Anda dapat mengonfigurasi dua jenis hook Initializer untuk memuat model: Execute Instruction dan Invoke Code.
Jalankan Instruksi
Instruction Content
Konfigurasikan isi instruksi yang akan dijalankan. Anda dapat menggunakan implementasi Shell kustom, seperti
/bin/bash,/bin/sh,/bin/csh, dan/bin/zsh. Pastikan lingkungan runtime fungsi mendukung implementasi Shell yang sesuai.Lihat Implementasi hook
Permissions, Network, and Storage: Konfigurasikan peran akses fungsi, jaringan, dan pemasangan penyimpanan.
Item Konfigurasi
Deskripsi
Contoh
Function Role
Function Compute menggunakan peran RAM ini untuk menghasilkan kunci sementara guna mengakses sumber daya Alibaba Cloud Anda dan meneruskan kunci tersebut ke kode Anda. Untuk informasi lebih lanjut, lihat Gunakan peran fungsi untuk memberikan izin Function Compute mengakses layanan Alibaba Cloud lainnya.
mytestrole
Allow Access To VPC
Aktifkan fitur ini untuk mengizinkan fungsi mengakses sumber daya di VPC. Untuk informasi lebih lanjut, lihat Konfigurasi jaringan.
Diaktifkan
VPC
Parameter ini wajib diisi jika Anda mengatur Allow Access To VPC ke Yes. Buat VPC baru atau pilih ID VPC yang ingin Anda akses dari daftar tarik-turun.
fc.auto.create.vpc.1632317****
VSwitch
Parameter ini wajib diisi jika Anda mengatur Allow Access To VPC ke Yes. Buat vSwitch baru atau pilih ID vSwitch dari daftar tarik-turun.
fc.auto.create.vswitch.vpc-bp1p8248****
Security Group
Parameter ini wajib diisi jika Anda mengatur Allow Access To VPC ke Yes. Buat grup keamanan baru atau pilih grup keamanan dari daftar tarik-turun.
fc.auto.create.SecurityGroup.vsw-bp15ftbbbbd****
Allow Default NIC To Access Internet
Menentukan apakah fungsi diizinkan mengakses Internet melalui kartu antarmuka jaringan default.
PentingJika Anda menggunakan fitur alamat IP publik statis, Anda harus menonaktifkan Allow Default NIC To Access Internet. Jika tidak, alamat IP publik statis yang dikonfigurasi tidak akan berlaku. Untuk informasi lebih lanjut, lihat Konfigurasi alamat IP publik statis.
Diaktifkan
Mount NAS File System
Konfigurasikan sistem file NAS untuk fungsi agar dapat menyimpan data secara persisten yang dibagikan di antara fungsi, seperti model yang digunakan bersama oleh beberapa fungsi inferensi.
Jika Anda memilih konfigurasi otomatis, sistem menggunakan sistem file NAS tujuan umum bernama Alibaba-Fc-V3-Component-Generated secara default. Jika tidak ditemukan sistem file NAS yang memenuhi syarat di bawah akun saat ini, sistem akan membuatnya secara otomatis.
Diaktifkan
Mount OSS Object Storage
Pasang penyimpanan objek OSS untuk fungsi agar dapat menyimpan log, file bisnis, dan data lainnya secara persisten. Untuk informasi lebih lanjut, lihat Konfigurasi penyimpanan objek OSS.
Diaktifkan
Logs and Tracing Analysis
Item Konfigurasi
Deskripsi
Contoh
Logging
Atur fitur ini untuk menyimpan log eksekusi fungsi secara persisten di Simple Log Service. Hal ini membantu Anda men-debug kode, menganalisis kesalahan, dan menganalisis data. Untuk informasi lebih lanjut, lihat Konfigurasi fitur pencatatan log.
Automatic Configuration: Secara otomatis memilih proyek log yang dimulai dengan
serverless-<region_id>.Hanya satu proyek log semacam itu yang dibuat di setiap wilayah. Jika sistem menemukan bahwa proyek log ini sudah ada di wilayah saat ini, proyek tersebut akan digunakan langsung.
Custom Configuration: Anda harus menentukan secara manual Log Project dan Logstore tujuan.
Diaktifkan
More Configurations
Item Konfigurasi
Deskripsi
Contoh
Time Zone
Pilih zona waktu untuk fungsi. Setelah Anda mengatur zona waktu, variabel lingkungan bernama TZ akan ditambahkan secara otomatis ke fungsi. Nilainya adalah zona waktu tujuan yang Anda atur.
UTC
Tags
Atur tag untuk fungsi guna mengelola fungsi berdasarkan kelompok. Anda harus mengatur kunci tag dan nilai tag.
kunci : nilai
Resource Group
Pilih kelompok sumber daya tempat fungsi tersebut berada. Gunakan kelompok sumber daya untuk mengelola fungsi berdasarkan kelompok.
Default-Resource-Group
Environment Variables
Gunakan variabel lingkungan untuk menyesuaikan perilaku fungsi secara fleksibel tanpa mengubah kode. Untuk informasi lebih lanjut, lihat Konfigurasi variabel lingkungan.
{ "BUCKET_NAME": "MY_BUCKET", "TABLE_NAME": "MY_TABLE" }
Setelah fungsi dibuat, Anda dapat melihat dan memperbaruinya di daftar fungsi.
Saat memperbarui fungsi, Anda hanya dapat mengubah port pendengar yang dikonfigurasi. Anda tidak dapat menghapus atau menambahkan port pendengar. Jika port pendengar dikonfigurasi saat membuat fungsi, port tersebut akan dipertahankan saat memperbarui fungsi jika Anda tidak menentukan yang baru.
Gunakan Serverless Devs untuk membuat fungsi
Anda dapat menggunakan Serverless Devs untuk membangun dan mendorong citra kontainer serta menerapkan fungsi dengan satu perintah.
Jalankan perintah berikut untuk menginisialisasi proyek.
sudo s initIkuti petunjuk untuk memilih akun Alibaba Cloud, templat citra kustom, dan bahasa pemrograman. Topik ini menggunakan Node.js sebagai contoh. Lalu, atur nama proyek, pilih wilayah untuk penerapan, dan masukkan informasi citra ACR Anda.
Jalankan perintah berikut untuk masuk ke direktori proyek.
cd start-fc3-custom-container-nodejsEdit file
s.yaml. Untuk informasi lebih lanjut tentang parameter dalam file YAML, lihat Spesifikasi YAML.Kode contoh berikut menunjukkan sebuah contoh.
Dalam contoh ini,
imageadalah citra ACR Anda. Ganti <your namespace>, <your image>, dan <your tag> dengan nama namespace, nama repositori citra, dan versi citra yang sebenarnya. Jika Anda memasukkan informasi citra ACR yang benar saat menginisialisasi proyek di Langkah 1, Anda tidak perlu memodifikasinya di sini.edition: 3.0.0 name: hello-world-app # access: Menentukan informasi kunci yang diperlukan oleh aplikasi saat ini. # Untuk informasi tentang cara mengonfigurasi kunci, lihat https://www.serverless-devs.com/serverless-devs/command/config # Untuk informasi tentang urutan penggunaan kunci, lihat https://www.serverless-devs.com/serverless-devs/tool#Key-usage-order-and-specifications access: "default" vars: # Variabel global region: "cn-hangzhou" resources: hello_world: # Untuk melakukan operasi hanya pada layanan hello_world, tambahkan hello_world ke perintah. Contoh: # Bangun hanya hello_world: s hello_world build # Jika Anda menjalankan s build langsung tanpa menentukan hello_world, alat akan membangun semua layanan yang setingkat dengan hello_world dalam file YAML (seperti next_function yang dikomentari di bawah) dalam urutan tertentu. component: fc3 # Nama komponen actions: # Logika eksekusi kustom pre-deploy: # Jalankan sebelum penerapan - component: fc3 build --dockerfile ./code/Dockerfile # Komponen yang akan dijalankan. Format: "component: NamaKomponen Perintah Parameter" props: region: ${vars.region} # Untuk informasi lebih lanjut tentang cara menggunakan variabel, lihat https://docs.serverless-devs.com/serverless-devs/yaml#Variable-assignment functionName: "start-nodejs-ufrz" runtime: "custom-container" description: 'hello world by serverless devs' timeout: 30 memorySize: 512 cpu: 0.5 diskSize: 512 code: ./code customContainerConfig: image: 'registry.${vars.region}.aliyuncs.com/<your namespace>/<your image>:<your tag>' # Citra ACR Anda. Ganti <your namespace>, <your image>, dan <your tag> dengan nama namespace, nama repositori citra, dan versi citra yang sebenarnya. # triggers: # - triggerName: httpTrigger # Nama pemicu # triggerType: http # Jenis pemicu # description: 'xxxx' # qualifier: LATEST # Versi layanan yang dipicu # triggerConfig: # authType: anonymous # Jenis autentikasi. Nilai yang valid: anonymous, function # disableURLInternet: false # Menentukan apakah akses publik ke URL dinonaktifkan # methods: # Metode HTTP yang didukung oleh pemicu HTTP. Nilai yang valid: GET, POST, PUT, DELETE, HEAD # - GET # - POSTJalankan perintah berikut untuk menerapkan proyek.
sudo s deployContoh keluaran:
Langkah-langkah untuk [deploy] dari [hello-world-app] ==================== DEPRECATED: Pembangun lama telah usang dan akan dihapus pada rilis mendatang. BuildKit saat ini dinonaktifkan; aktifkan dengan menghapus variabel lingkungan DOCKER_BUILDKIT=0. Mengirim konteks build ke daemon Docker 5,12 kB Langkah 1/7 : FROM node:14-buster 14-buster: Menarik dari library/node 2ff1d7c41c74: Sudah ada b253aeafeaa7: Sudah ada 3d2201bd995c: Sudah ada 1de76e268b10: Sudah ada d9a8df589451: Sudah ada 6f51ee005dea: Sudah ada 5f32ed3c3f27: Sudah ada 0c8cc2f24a4d: Sudah ada 0d27a8e86132: Sudah ada Digest: sha256:a158d3b9b4e3fa813fa6c8c590b8f0a860e015ad4e59bbce5744d2f6fd8461aa Status: Gambar baru untuk node:14-buster telah diunduh ---> 1d12470fa662 Langkah 2/7 : WORKDIR /usr/src/ ---> Menjalankan di 70a8e2e4d1ea Menghapus kontainer sementara 70a8e2e4d1ea ---> 0d67b8fa2901 Langkah 3/7 : COPY package*.json ./ ---> 09eb15f8770a Langkah 4/7 : RUN npm install ---> Menjalankan di 8ae492be973b Langkah 5/7 : COPY . . ---> 7560c7b14431 Langkah 6/7 : EXPOSE 9000 ---> Menjalankan di 66b38e54ced0 Menghapus kontainer sementara 66b38e54ced0 ---> f73cce48d2ae Langkah 7/7 : ENTRYPOINT [ "node", "server.js" ] ---> Menjalankan di 2fb2f83fd6c0 Menghapus kontainer sementara 2fb2f83fd6c0 ---> fe51ae71448c Berhasil dibangun fe51ae71448c Berhasil diberi tag registry.cn-hangzhou.aliyuncs.com/z****/z****:latest [2024-01-29 16:33:06][INFO][hello_world] mendapatkan instanceName= dan region=cn-hangzhou dari registry.cn-hangzhou.aliyuncs.com/z****/z**** [2024-01-29 16:33:06][INFO][hello_world] mencoba docker push registry.cn-hangzhou.aliyuncs.com/z****/z**** ... PERINGATAN! Kata sandi Anda akan disimpan tanpa enkripsi di /root/.docker/config.json. Konfigurasikan helper kredensial untuk menghilangkan peringatan ini. Lihat https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Berhasil Menggunakan tag default: latest Push merujuk ke repositori [registry.cn-hangzhou.aliyuncs.com/z****/z****] 85c1ec915b45: Dipush 37c36543a431: Dipush e4afd7f70434: Dipush 0d5f5a015e5d: Layer sudah ada 3c777d951de2: Layer sudah ada f8a91dd5fc84: Layer sudah ada cb81227abde5: Layer sudah ada e01a454893a9: Layer sudah ada c45660adde37: Layer sudah ada fe0fb3ab4a0f: Layer sudah ada f1186e5061f2: Layer sudah ada b2dba7477754: Layer sudah ada latest: digest: sha256:6bf1ed4119d197a46c99082577632957056cb625f2ee0276d2af53f60d22837d ukuran: 2841 [hello_world] selesai (688,45 dtk) Hasil untuk [deploy] dari [hello-world-app] ==================== region: cn-hangzhou cpu: 0,5 customContainerConfig: image: registry.cn-hangzhou.aliyuncs.com/z****/z**** resolvedImageUri: registry.cn-hangzhou.aliyuncs.com/z****/z****@sha256:6bf1ed4119d197a46c99082577632957056cb625f2ee0276d2af53f60d22837d description: hello world by serverless devs diskSize: 512 functionName: start-nodejs-ufrz handler: handler instanceConcurrency: 1 internetAccess: true lastUpdateStatus: Successful memorySize: 512 role: runtime: custom-container state: Active timeout: 30 Log lengkap dari proses ini dapat ditemukan di: /root/.s/logs/0129162246Jalankan perintah berikut untuk menguji fungsi.
sudo s invoke -e "{\"key\":\"val\"}"Contoh keluaran:
Langkah-langkah untuk [invoke] dari [hello-world-app] ==================== ========= Log pemanggilan FC dimulai ========= FC Invoke Start RequestId: 1-65b764db-15eb737f-0c67ab5cd968 FC Invoke Start RequestId: 1-65b764db-15eb737f-0c67ab5cd968 hello world! FC Invoke End RequestId: 1-65b764db-15eb737f-0c67ab5cd968 Durasi: 42,27 ms, Durasi Ditagih: 43 ms, Ukuran Memori: 512 MB, Memori Maksimal Digunakan: 47,77 MB ========= Log pemanggilan FC berakhir ========= Invoke instanceId: c-65b764db-15fa2aa8-bc50f7839399 Checksum Kode: undefined Qualifier: LATEST RequestId: 1-65b764db-15eb737f-0c67ab5cd968 Hasil Pemanggilan: OK [hello_world] selesai (4,96 dtk) Log lengkap dari proses ini dapat ditemukan di: /root/.s/logs/0129164202
Referensi
Menggunakan fungsi citra kustom memerlukan waktu tambahan untuk mengunduh dan mengekstrak citra kontainer. Untuk mengurangi latensi cold start, lihat Praktik terbaik untuk mengurangi latensi cold start di Function Compute.
Anda juga dapat memanggil API untuk membuat fungsi. Untuk informasi lebih lanjut, lihat CreateFunction.
Untuk informasi tentang skenario dan perbedaan antara runtime bawaan, runtime kustom, dan runtime citra kustom di Function Compute, lihat Pilih runtime.