Jika runtime bawaan di Function Compute tidak memenuhi kebutuhan bisnis Anda, Anda dapat membuat fungsi kontainer kustom. Topik ini menjelaskan cara membuat fungsi kontainer kustom melalui Konsol Function Compute atau menggunakan alat Serverless Devs.
Catatan penggunaan
Untuk membuat fungsi kontainer kustom di Function Compute, Anda harus menggunakan gambar dari Alibaba Cloud Container Registry yang berada dalam wilayah dan Akun Alibaba Cloud yang sama. Jika Anda membuat gambar pada komputer dengan arsitektur Apple silicon atau ARM lainnya, tentukan platform build sebagai linux/amd64. Contoh:
docker build --platform linux/amd64 -t $IMAGE_NAME ..Function Compute melakukan resolusi nama domain untuk gambar Alibaba Cloud Container Registry Enterprise Edition menggunakan resolusi default VPC yang dikonfigurasi atau alamat IP akses yang secara otomatis diselesaikan oleh Konfigurasikan kontrol akses VPC.
Skenario 1: Jika indikator Default Resolution tidak ditampilkan untuk alamat IP apa pun pada halaman Access Control instans, semua alamat IP dalam daftar Access IP secara otomatis diselesaikan oleh Alibaba Cloud DNS PrivateZone. Dalam kasus ini, konfigurasi VPC apa pun dapat digunakan.

Skenario 2: Jika pada halaman Access Control instans ACR Enterprise Edition, daftar Access IP berisi alamat IP yang ditandai dengan Default Resolution—yaitu alamat IP resolusi default dari suatu VPC—Anda hanya dapat memilih VPC pertama, seperti yang ditunjukkan pada gambar berikut.

Saat menggunakan instans Edisi Perusahaan, Anda hanya dapat memilih gambar non-akselerasi. Setiap kali Anda memperbarui konfigurasi gambar fungsi, sistem akan menghasilkan gambar akselerasi baru berdasarkan gambar asli terbaru yang Anda pilih, menimpa gambar akselerasi yang sudah ada. Jangan menghapus gambar asli atau akselerasi karena pemanggilan fungsi akan gagal.
Pastikan Anda segera memperbarui fungsi jika gambar yang dikonfigurasi untuknya berubah. Jika tidak, pemanggilan fungsi akan gagal.
Pastikan gambar asli tersedia. Jika tidak, fungsi akan masuk ke status Failed dan tidak dapat dipanggil. Meskipun Function Compute menyimpan cache fungsi Anda untuk mengurangi cold start, pemanggilan tetap memerlukan gambar asli.
Pastikan gambar yang digunakan dalam fungsi Anda tidak ditimpa dengan digest yang berbeda. Jika hal ini terjadi, Anda harus menerapkan ulang fungsi dengan informasi gambar terbaru. Function Compute mencatat tag dan digest dari versi gambar yang Anda pilih saat pembuatan dan pembaruan fungsi. Jika tag gambar diperbarui di tempat lain sehingga mengarah ke digest baru, pemanggilan fungsi akan gagal.
Prasyarat
Container Registry
- Catatan
Edisi Personal Alibaba Cloud Container Registry (ACR) ditujukan untuk pengembang individu. Edisi ini ditawarkan sebagai uji coba gratis dengan kuota selama masa beta publik. Edisi ini tidak mencakup Service Level Agreement (SLA) atau kompensasi atas kerugian, serta memiliki batasan penggunaan. Untuk informasi lebih lanjut tentang batasan penggunaan, lihat Buat instans Edisi Personal.
Serverless Devs (diperlukan hanya jika Anda membuat fungsi menggunakan Serverless Devs)
Buat fungsi di konsol
Masuk ke Konsol Function Compute. Di panel navigasi kiri, pilih .
Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik Create Function.
Dalam kotak dialog yang muncul, pilih tipe GPU Function sesuai skenario Anda, lalu klik Create GPU Function.
Pada halaman Create GPU Function, konfigurasikan parameter berikut dan klik Create.
Basic Configurations: Masukkan Function Name. Nama harus unik dalam satu Akun Alibaba Cloud dan wilayah yang sama, serta mengikuti konvensi penamaan.
Scaling Policy: Pilih tipe instans. Anda tidak dapat menggunakan instans yang disediakan dan instans sesuai permintaan secara bersamaan. Tipe instans tidak dapat diubah setelah fungsi dibuat.
Instans sesuai permintaan
Item Konfigurasi
Deskripsi
Contoh
Instance Type
Pilih On-demand Instance. Instans diskalakan secara otomatis berdasarkan volume permintaan dan dilepas saat tidak ada permintaan. Anda dikenai biaya berdasarkan penggunaan aktual.
Instans Sesuai Permintaan
GPU Card Type
Pilih tipe kartu GPU.
Seri Ada
Specifications
Tetapkan spesifikasi GPU Memory, vCPU, Memory, dan Disk untuk fungsi sesuai kebutuhan bisnis Anda. Setelah menetapkan spesifikasi, penggunaan setiap sumber daya dihitung dengan mengalikan spesifikasi dengan durasi penggunaan.
CatatanSemua direktori pada disk dapat ditulis. Ruang disk dibagi bersama.
Disk terikat pada masa aktif instans fungsi dasar. Saat sistem mereklaim instans, data pada disk akan hilang. Jika Anda memerlukan penyimpanan persisten, Anda dapat memasang sistem file NAS atau Bucket OSS.
Memori GPU: 48 GB
vCPU: 8 vCPU
Memori: 64 GB
Disk: 512 MB (tidak dikenai biaya, Function Compute menyediakan kuota gratis ruang disk sebesar 10 GB)
Minimum Instances
Jika bisnis Anda sensitif terhadap latensi, setelah memilih Elastic Instance, kami menyarankan agar Anda menetapkan jumlah minimum instans menjadi 1 atau lebih untuk mengunci sumber daya terlebih dahulu dan mengurangi latensi cold start.
CatatanSetelah Anda menetapkan Jumlah Instans Minimum menjadi 1 atau lebih, jika tidak ada kebijakan elastis untuk jumlah minimum instans yang dikonfigurasi atau jika tidak ada kebijakan elastis yang aktif dalam suatu periode, jumlah minimum instans saat ini adalah nilai yang Anda tetapkan di sini.
Jika beberapa kebijakan elastis dikonfigurasi, sistem menghitung Minimum Number Of Instances yang diperlukan saat setiap kebijakan dipicu. Sistem kemudian menggunakan nilai tertinggi di antara kebijakan aktif sebagai Minimum Number Of Instances saat ini.
1
Concurrency Per Instance
Anda dapat mengonfigurasi beberapa permintaan konkuren untuk satu instans fungsi GPU. Artinya, satu instans dapat memproses beberapa permintaan secara bersamaan.
Instans yang disediakan
Item Konfigurasi
Deskripsi
Contoh
Instance Type
Pilih Provisioned Instance. Instans dialokasikan ke fungsi dari kolam sumber daya yang disediakan yang telah dibeli sebelumnya.
Instans yang disediakan direkomendasikan untuk skenario di mana biaya yang dapat diprediksi, latensi rendah, dan pemanfaatan sumber daya tinggi penting untuk memastikan stabilitas bisnis.
Instans yang Disediakan
Provisioned Resource Pool
Kolam sumber daya yang disediakan adalah kumpulan instans yang disediakan yang dapat dialokasikan ke fungsi target. Jika kapasitas kolam sumber daya yang disediakan Anda tidak mencukupi, klik Scale-out di kolom Actions dan ikuti petunjuk di layar untuk memperluasnya. Untuk informasi lebih lanjut, lihat Kolam sumber daya resident (langganan).
Provisioned Resource Pool: fc-pool-****
GPU Card Type: Ada
Specifications
Tetapkan spesifikasi GPU Memory, vCPU, Memory, dan Disk untuk fungsi sesuai kebutuhan bisnis Anda. Setelah menetapkan spesifikasi, penggunaan setiap sumber daya dihitung dengan mengalikan spesifikasi dengan durasi penggunaan. Untuk informasi lebih lanjut, lihat Ikhtisar penagihan.
CatatanSemua direktori pada disk dapat ditulis. Ruang disk dibagi bersama.
Disk terikat pada masa aktif instans fungsi dasar. Saat sistem mereklaim instans, data pada disk akan hilang. Jika Anda memerlukan penyimpanan persisten, Anda dapat memasang sistem file NAS atau Bucket OSS.
Memori GPU: 48 GB
vCPU: 8 vCPU
Memori: 64 GB
Disk: 512 MB (tidak dikenai biaya, Function Compute menyediakan kuota gratis ruang disk sebesar 10 GB)
Number Of Provisioned Instances
Alokasikan sejumlah instans yang disediakan ke fungsi target berdasarkan sumber daya yang tersedia di kolam sumber daya yang disediakan.
1
Concurrency Per Instance
Anda dapat mengonfigurasi beberapa permintaan konkuren untuk satu instans fungsi GPU. Artinya, satu instans dapat memproses beberapa permintaan secara bersamaan. Untuk informasi lebih lanjut, lihat Konfigurasikan konkurensi instans.
20
Code: Konfigurasikan lingkungan runtime dan pengaturan terkait kode fungsi.
Parameter
Deskripsi
Contoh
Runtime
Gunakan contoh gambar: Pilih contoh gambar yang disediakan oleh Function Compute untuk menerapkan fungsi kontainer kustom dengan cepat. Anda harus memilih gambar target dari daftar di bawah parameter Container Image.
Gunakan gambar registri kontainer: Klik Select ACR image di bawah parameter Container Image. Di panel Select container image, pilih Instans registri kontainer dan Repository image. Lalu, temukan gambar target di daftar gambar di bawah dan klik Select di kolom Actions.
CatatanAnda tidak dapat membuat fungsi menggunakan gambar publik dari instans Alibaba Cloud Container Registry milik akun lain.
Pastikan Anda segera memperbarui fungsi jika gambar yang dikonfigurasi untuknya berubah. Jika tidak, pemanggilan fungsi akan gagal. Untuk informasi lebih lanjut,
Saat menggunakan instans Edisi Perusahaan, Anda hanya dapat memilih gambar non-akselerasi. Jangan menghapus gambar asli atau akselerasi, karena pemanggilan fungsi akan gagal.
Instans Edisi Perusahaan tidak mendukung alamat gambar dalam format nama domain kustom.
Anda tidak dapat membuat fungsi menggunakan gambar dari repositori yang mengaktifkan akselerasi gambar dalam mode index-only. Hal ini berlaku untuk instans Container Registry Enterprise Edition (Standard dan Advanced).
Setelah Alibaba Cloud Container Registry memperkenalkan fitur index-only mode, Anda tidak dapat lagi membuat fungsi menggunakan gambar dari repositori yang baru dibuat di instans Enterprise Edition (Basic) jika akselerasi gambar diaktifkan. Namun, Anda masih dapat menggunakan gambar dari repositori akselerasi yang sudah ada di instans tersebut.
Container Image
Pilih gambar target.
Contoh Gambar Aplikasi Web SpringBoot
Startup Command
Perintah startup untuk program. Jika tidak ditentukan, Function Compute menggunakan Entrypoint atau CMD dari gambar secara default.
Tidak ada
Listening Port
Port tempat server HTTP dalam kode Anda mendengarkan.
9000
Execution Timeout Period
Tetapkan periode timeout. Periode Timeout Eksekusi default-nya 60 detik, dengan maksimum 86.400 detik.
60
Instance Prefetch: Dalam skenario inferensi AI, Anda dapat mengonfigurasi pra-ambil instans untuk memanaskan model terlebih dahulu, sehingga menghilangkan latensi cold start pada permintaan pertama.
Item Konfigurasi
Deskripsi
Contoh
Instance Prefetch
Instance Prefetch
Konfigurasikan hook Initializer untuk memanaskan instans dan mengoptimalkan cold start. Hook menjalankan skrip tertentu atau memanggil antarmuka untuk memuat model setelah instans fungsi dimulai tetapi sebelum memproses permintaan.
Diaktifkan
Timeout
Tetapkan periode timeout untuk hook Initializer.
60
Prefetch Program Type
Anda dapat mengonfigurasi dua jenis hook Initializer untuk memanaskan model: Execute Instruction dan Invoke Code.
Execute Instruction
Instruction Content
Konfigurasikan konten 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 shell yang dipilih.Izin, Jaringan, dan Penyimpanan: Konfigurasikan peran eksekusi fungsi, jaringan, dan pemasangan penyimpanan.
Item Konfigurasi
Deskripsi
Contoh
Execution Role
Function Compute mengasumsikan peran RAM ini untuk menghasilkan kredensial sementara guna mengakses sumber daya Alibaba Cloud dan meneruskannya ke kode. Untuk informasi lebih lanjut, lihat .
mytestrole
VPC Access
Mengizinkan fungsi mengakses sumber daya dalam VPC. Untuk informasi lebih lanjut, lihat .
Aktifkan
VPC
VPC Access Diperlukan saat Akses VPC diatur ke Ya. Buat VPC baru atau pilih ID VPC untuk diakses dari daftar drop-down.
fc.auto.create.vpc.1632317****
vSwitch
VPC Access Diperlukan saat Akses VPC diatur ke Ya. Buat vSwitch baru atau pilih ID vSwitch dari daftar drop-down.
fc.auto.create.vswitch.vpc-bp1p8248****
Security Group
VPC Access Diperlukan saat Akses VPC diatur ke Ya. Buat grup keamanan baru atau pilih dari daftar drop-down Grup Keamanan.
fc.auto.create.SecurityGroup.vsw-bp15ftbbbbd****
Allow Default NIC to Access Internet
Pilih Ya atau Tidak untuk mengizinkan fungsi mengakses Internet melalui antarmuka jaringan default.
PentingSaat menggunakan fitur alamat IP publik tetap, Anda harus menonaktifkan Allow Function to Access the Internet via Default NIC. Jika tidak, alamat IP publik tetap yang dikonfigurasi tidak berlaku. Untuk informasi lebih lanjut, lihat .
Aktifkan
NAS Mounting
Pasang Konfigurasikan sistem file NAS ke fungsi untuk penyimpanan persisten data yang dibagikan di antara fungsi, seperti model yang dibagikan oleh beberapa fungsi inferensi.
Jika Anda memilih Konfigurasi Otomatis, sistem menggunakan sistem file NAS tujuan umum bernama Alibaba-Fc-V3-Component-Generated yang sudah ada secara default. Jika tidak ada sistem file NAS yang memenuhi syarat di bawah akun saat ini, sistem akan membuatnya secara otomatis.
Aktifkan
OSS Mounting
Pasang OSS ke fungsi untuk penyimpanan persisten log, file bisnis, dan lainnya. Untuk informasi lebih lanjut, lihat .
Aktifkan
Pencatatan dan Pelacakan
Item Konfigurasi
Deskripsi
Contoh
Fitur Log
Konfigurasikan opsi ini untuk menyimpan log eksekusi fungsi secara persisten ke Log Service, memudahkan debugging kode, troubleshooting, dan analisis data. Untuk informasi lebih lanjut, lihat .
Konfigurasi Otomatis: Secara otomatis memilih Proyek Log yang dimulai dengan
serverless-<region_id>.Hanya satu Proyek Log semacam itu yang dibuat per wilayah. Jika sistem mendeteksi Proyek Log yang sudah ada di wilayah saat ini, proyek tersebut digunakan langsung.
Konfigurasi Kustom: Anda harus menentukan secara manual Log Project dan Logstore target.
Aktifkan
Other Configurations
Item Konfigurasi
Deskripsi
Contoh
Timezone
Pilih zona waktu untuk fungsi. Setelah menetapkan zona waktu, variabel lingkungan TZ akan ditambahkan secara otomatis dengan nilai yang diatur ke zona waktu target.
UTC
Tags
Tetapkan Konfigurasikan tag untuk fungsi guna memudahkan manajemen kelompok. Anda harus menetapkan kunci tag dan nilai tag.
kunci : nilai
Resource Group
Pilih Konfigurasikan kelompok sumber daya untuk fungsi guna mengelola fungsi berdasarkan kelompok.
Kelompok Sumber Daya Default
Environment Variables
Gunakan variabel lingkungan untuk menyesuaikan perilaku fungsi secara fleksibel tanpa mengubah kode.
{ "BUCKET_NAME": "MY_BUCKET", "TABLE_NAME": "MY_TABLE" }
Setelah fungsi dibuat, Anda dapat melihat dan memperbaruinya di halaman Daftar Fungsi.
Saat memperbarui fungsi, Anda dapat mengubah port pendengar yang dikonfigurasi, tetapi tidak dapat menambah atau menghapus port. Jika Anda mengonfigurasi port pendengar saat membuat fungsi, sistem akan mempertahankan konfigurasi port asli jika Anda tidak menentukan port pendengar selama pembaruan.
Buat fungsi dengan Serverless Devs
Anda dapat menggunakan Serverless Devs untuk membuat dan mendorong gambar kontainer serta menerapkan fungsi dalam satu alur perintah.
Jalankan perintah berikut untuk menginisialisasi proyek.
sudo s initIkuti petunjuk untuk memilih Akun Alibaba Cloud, templat gambar kustom, dan bahasa pemrograman (topik ini menggunakan Node.js sebagai contoh). Lalu, tetapkan nama proyek, pilih wilayah deployment, dan masukkan informasi gambar Alibaba Cloud Container Registry 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 berikut memberikan contoh.
Dalam contoh ini,
imagemerujuk pada gambar Alibaba Cloud Container Registry Anda. Ganti <your namespace>, <your image>, dan <your tag> dengan namespace, nama repository image, dan tag gambar aktual Anda. Jika Anda sudah memasukkan informasi gambar yang benar saat menginisialisasi proyek di Langkah 1, Anda tidak perlu mengubahnya di sini.edition: 3.0.0 name: hello-world-app # access menentukan konfigurasi kunci yang diperlukan oleh aplikasi saat ini: # Untuk konfigurasi kunci, lihat: https://www.serverless-devs.com/serverless-devs/command/config # Untuk 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 modul bisnis hello_world, tambahkan hello_world ke baris perintah. Misalnya: # Untuk hanya membangun hello_world: s hello_world build # Jika Anda menjalankan s build langsung tanpa menentukan hello_world, tool akan membangun semua modul bisnis yang setara dengan hello_world dalam file YAML saat ini (jika ada modul saudara lainnya, seperti next_function yang dikomentari di bawah) dalam urutan tertentu component: fc3 # Nama komponen actions: # Logika eksekusi kustom pre-deploy: # Jalankan sebelum deploy - component: fc3 build --dockerfile ./code/Dockerfile # Komponen yang dijalankan, dalam format “component: nama_komponen parameter_perintah” props: region: ${vars.region} # Untuk penggunaan variabel, lihat: https://docs.serverless-devs.com/serverless-devs/yaml#%E5%8F%98%E9%87%8F%E8%B5%8B%E5%80%BC 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>' # Gambar ACR Anda. Ganti <your namespace>, <your image>, dan <your tag> dengan nama namespace, nama repository image, dan tag gambar aktual. # triggers: # - triggerName: httpTrigger # Nama pemicu # triggerType: http # Jenis pemicu # description: 'xxxx' # qualifier: LATEST # Versi layanan yang dipicu # triggerConfig: # authType: anonymous # Jenis autentikasi. Nilai valid: anonymous, function # disableURLInternet: false # Menentukan apakah akan menonaktifkan URL akses jaringan publik # methods: # Metode HTTP yang didukung oleh pemicu HTTP. Nilai valid: GET, POST, PUT, DELETE, HEAD # - GET # - POSTJalankan perintah berikut untuk menerapkan proyek.
sudo s deployOutput berikut adalah contohnya:
Steps for [deploy] of [hello-world-app] ==================== DEPRECATED: The legacy builder is deprecated and will be removed in a future release. BuildKit is currently disabled; enable it by removing the DOCKER_BUILDKIT=0 environment-variable. Sending build context to Docker daemon 5.12kB Step 1/7 : FROM node:14-buster 14-buster: Pulling from library/node 2ff1d7c41c74: Already exists b253aeafeaa7: Already exists 3d2201bd995c: Already exists 1de76e268b10: Already exists d9a8df589451: Already exists 6f51ee005dea: Already exists 5f32ed3c3f27: Already exists 0c8cc2f24a4d: Already exists 0d27a8e86132: Already exists Digest: sha256:a158d3b9b4e3fa813fa6c8c590b8f0a860e015ad4e59bbce5744d2f6fd8461aa Status: Downloaded newer image for node:14-buster ---> 1d12470fa662 Step 2/7 : WORKDIR /usr/src/ ---> Running in 70a8e2e4d1ea Removing intermediate container 70a8e2e4d1ea ---> 0d67b8fa2901 Step 3/7 : COPY package*.json ./ ---> 09eb15f8770a Step 4/7 : RUN npm install ---> Running in 8ae492be973b Step 5/7 : COPY . . ---> 7560c7b14431 Step 6/7 : EXPOSE 9000 ---> Running in 66b38e54ced0 Removing intermediate container 66b38e54ced0 ---> f73cce48d2ae Step 7/7 : ENTRYPOINT [ "node", "server.js" ] ---> Running in 2fb2f83fd6c0 Removing intermediate container 2fb2f83fd6c0 ---> fe51ae71448c Successfully built fe51ae71448c Successfully tagged registry.cn-hangzhou.aliyuncs.com/z****/z****:latest [2024-01-29 16:33:06][INFO][hello_world] get instanceName= and region=cn-hangzhou from registry.cn-hangzhou.aliyuncs.com/z****/z**** [2024-01-29 16:33:06][INFO][hello_world] try to docker push registry.cn-hangzhou.aliyuncs.com/z****/z**** ... WARNING! Your password will be stored unencrypted in /root/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded Using default tag: latest The push refers to repository [registry.cn-hangzhou.aliyuncs.com/z****/z****] 85c1ec915b45: Pushed 37c36543a431: Pushed e4afd7f70434: Pushed 0d5f5a015e5d: Layer already exists 3c777d951de2: Layer already exists f8a91dd5fc84: Layer already exists cb81227abde5: Layer already exists e01a454893a9: Layer already exists c45660adde37: Layer already exists fe0fb3ab4a0f: Layer already exists f1186e5061f2: Layer already exists b2dba7477754: Layer already exists latest: digest: sha256:6bf1ed4119d197a46c99082577632957056cb625f2ee0276d2af53f60d22837d size: 2841 [hello_world] completed (688.45s) Result for [deploy] of [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 A complete log of this run can be found in: /root/.s/logs/0129162246Jalankan perintah berikut untuk men-debug fungsi.
sudo s invoke -e "{\"key\":\"val\"}"Output berikut adalah contohnya:
Steps for [invoke] of [hello-world-app] ==================== ========= FC invoke Logs begin ========= 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 Duration: 42.27 ms, Billed Duration: 43 ms, Memory Size: 512 MB, Max Memory Used: 47.77 MB ========= FC invoke Logs end ========= Invoke instanceId: c-65b764db-15fa2aa8-bc50f7839399 Code Checksum: undefined Qualifier: LATEST RequestId: 1-65b764db-15eb737f-0c67ab5cd968 Invoke Result: OK [hello_world] completed (4.96s) A complete log of this run can be found in: /root/.s/logs/0129164202