Halaman ini menjelaskan cara mengonfigurasi port container, perintah entrypoint, dan argumen untuk layanan Cloud Run.
Saat Cloud Run memulai container, Cloud Run akan menjalankan
perintah entrypoint default dan argumen perintah default image. Jika Anda ingin
mengganti entrypoint default dan argumen perintah image, Anda dapat menggunakan
kolom command
dan args
dalam konfigurasi container. Kolom command
menentukan perintah sebenarnya yang dijalankan oleh container. Kolom args
menentukan
argumen yang diteruskan ke perintah tersebut.
Perhatikan bahwa Anda dapat memiliki maksimal 1.000 argumen per penampung untuk setiap layanan.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna mengonfigurasi dan men-deploy layanan Cloud Run, minta administrator untuk memberi Anda peran IAM berikut:
-
Cloud Run Developer (
roles/run.developer
) di layanan Cloud Run -
Service Account User (
roles/iam.serviceAccountUser
) di identitas layanan
Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat peran IAM Cloud Run dan izin IAM Cloud Run. Jika layanan Cloud Run Anda berinteraksi dengan Google Cloud API, seperti Library Klien Cloud, lihat panduan konfigurasi identitas layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat izin deployment dan mengelola akses.
Mengonfigurasi port container
Perubahan konfigurasi apa pun akan menghasilkan revisi baru. Revisi berikutnya juga akan secara otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan update yang eksplisit untuk mengubahnya.
Untuk layanan Cloud Run, Cloud Run memasukkan variabel lingkungan PORT
ke dalam container. Jika Anda men-deploy beberapa penampung ke layanan, ini adalah penampung ingress. Penampung memproses port
yang ditentukan oleh variabel lingkungan PORT
, bukan pada port hardcode
tertentu. Jika tidak memungkinkan, konfigurasikan pemrosesan untuk terjadi di port
yang mengirim permintaan ke penampung. Perhatikan bahwa setelan port tidak berlaku untuk
tugas Cloud Run.
Konsol
Di konsol Google Cloud, buka Cloud Run:
Klik Deploy container dan pilih Service untuk mengonfigurasi layanan baru. Jika Anda mengonfigurasi layanan yang sudah ada, klik layanan, lalu klik Edit dan deploy revisi baru.
Jika Anda mengonfigurasi layanan baru, isi halaman setelan layanan awal, lalu klik Container, volume, networking, security untuk memperluas halaman konfigurasi layanan.
Klik tab Container.
- Tentukan port tujuan pengiriman permintaan yang Anda inginkan,
jika bukan nilai default
8080
. Tindakan ini juga menetapkan variabel lingkunganPORT
.
- Tentukan port tujuan pengiriman permintaan yang Anda inginkan,
jika bukan nilai default
Klik Buat atau Deploy.
gcloud
Anda dapat memperbarui konfigurasi port layanan menggunakan perintah berikut:
gcloud run services update SERVICE --port PORT
Ganti
- SERVICE dengan nama layanan.
- PORT dengan port untuk mengirim permintaan. Perhatikan bahwa
port defaultnya adalah
8080
.
Anda juga dapat mengonfigurasi port selama deployment menggunakan perintah:
gcloud run deploy --image IMAGE_URL --port PORT
Ganti IMAGE_URL dengan referensi ke image container,
contohnya, us-docker.pkg.dev/cloudrun/container/hello:latest
. Jika Anda menggunakan Artifact Registry,
repositori REPO_NAME harus
sudah dibuat. URL memiliki bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
YAML
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
gcloud run services describe SERVICE --format export > service.yaml
Perbarui atribut
containerPort:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: metadata: name: REVISION spec: containers: - image: IMAGE_URL ports: - containerPort: PORT
Ganti:
- SERVICE dengan nama layanan Cloud Run Anda
- IMAGE_URL dengan referensi ke image container, misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. - PORT dengan port untuk mengirim permintaan
- REVISION dengan nama revisi baru atau hapus (jika ada). Jika Anda memberikan nama revisi baru, nama tersebut harus memenuhi kriteria berikut:
- Dimulai dengan
SERVICE-
- Hanya berisi huruf kecil, angka, dan
-
- Tidak diakhiri dengan
-
- Tidak melebihi 63 karakter
- Dimulai dengan
Ganti layanan dengan konfigurasinya yang baru menggunakan perintah berikut:
gcloud run services replace service.yaml
Mengonfigurasi entrypoint dan argumen
Perubahan konfigurasi apa pun akan menghasilkan revisi baru. Revisi berikutnya juga akan secara otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan update yang eksplisit untuk mengubahnya.
Perintah dan argumen container yang ditentukan akan menggantikan
ENTRYPOINT
dan CMD
image default.
Anda dapat menetapkan perintah dan argumen entrypoint menggunakan konsol Google Cloud, Google Cloud CLI, atau menggunakan file YAML saat Anda membuat layanan baru atau men-deploy revisi baru:
Konsol
Di konsol Google Cloud, buka Cloud Run:
Klik Deploy container dan pilih Service untuk mengonfigurasi layanan baru. Jika Anda mengonfigurasi layanan yang sudah ada, klik layanan, lalu klik Edit dan deploy revisi baru.
Jika Anda mengonfigurasi layanan baru, isi halaman setelan layanan awal, lalu klik Container, volume, networking, security untuk memperluas halaman konfigurasi layanan.
Klik tab Container.
- Tetapkan perintah yang Anda inginkan untuk dijalankan container, jika bukan perintah yang ditentukan dalam container, kemudian tentukan argumen untuk perintah entrypoint secara opsional.
Klik Buat atau Deploy.
gcloud
Untuk memperbarui perintah dan argumen awal untuk layanan yang ada:
gcloud run services update SERVICE --command COMMAND --args ARG1,ARG-N
Ganti
- COMMAND dengan perintah yang digunakan untuk memulai container jika Anda tidak menggunakan perintah default.
- ARG1 dengan argumen yang Anda kirim ke perintah container, gunakan daftar yang dipisahkan koma untuk argumen yang lebih dari satu.
Untuk menetapkan entrypoint dan argumen selama deployment layanan baru atau yang sudah ada:
gcloud run deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N
Ganti IMAGE_URL dengan referensi ke image container,
contohnya, us-docker.pkg.dev/cloudrun/container/hello:latest
. Jika Anda menggunakan Artifact Registry,
maka repositori REPO_NAME harus
sudah dibuat. URL berbentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
Untuk menghapus perintah dan argumen entrypoint yang telah Anda tetapkan (pulihkan ke default container), sediakan string kosong seperti berikut:
gcloud run deploy --image IMAGE_URL --command "" --args ""
YAML
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
gcloud run services describe SERVICE --format export > service.yaml
Update atribut
command
danargs
:spec: containers: - image: IMAGE_URL command: - COMMAND args: - "ARG1" - "ARG-N"
Ganti
- IMAGE_URL dengan referensi ke image container
misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL berbentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
- COMMAND dengan perintah yang digunakan untuk memulai container jika Anda tidak menggunakan perintah default.
- ARG1 dengan argumen yang Anda kirim ke perintah container. Jika Anda menggunakan beberapa argumen, tentukan setiap argumen di barisnya masing-masing, contohnya, seperti yang ditunjukkan, ARG-N.
- IMAGE_URL dengan referensi ke image container
misalnya,
Ganti layanan dengan konfigurasinya yang baru menggunakan perintah berikut:
gcloud run services replace service.yaml
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Resource google_cloud_run_v2_service
berikut menentukan
perintah dan argumen. Ganti /server
dengan perintah yang digunakan untuk memulai container Anda,
dan tambahkan argumen apa pun yang diperlukan ke array args
.
Menggunakan tanda sama dengan atau koma dalam argumen
Jika Anda menggunakan tanda sama dengan dalam argumen, sediakan tanda sama dengan menggunakan format berikut:
gcloud run deploy \
--args="--repo-allowlist=github.com/example/example_demo"
Jika argumen Anda menggunakan koma, lihat mengonfigurasi variabel lingkungan untuk mengetahui lebih lengkap mengenai cara meng-escape variabel tersebut.
Mengonfigurasi urutan awal container untuk deployment file bantuan
Untuk menentukan urutan pengaktifan container dalam deployment sidecar, Anda harus menggunakan fitur dependensi container. Anda menentukan container yang memiliki dependensi dan mencantumkan container yang menjadi dependensinya: container tersebut dimulai terlebih dahulu. Container yang tidak memiliki dependensi apa pun selalu dimulai terlebih dahulu dan secara serentak.
Anda harus menggunakan pemeriksaan healthcheck startup jika ingin berhasil menggunakan fitur ini. Pemeriksaan startup memungkinkan Cloud Run memeriksa kondisi container dependen, sehingga memastikan container berhasil lulus sebelum memulai container berikutnya. Jika Anda tidak menggunakan healthcheck, container akan dimulai dalam urutan yang ditentukan meskipun container yang menjadi dependensinya gagal dimulai.
Perhatikan bahwa penampung ingress memiliki pemeriksaan health check startup default.
Anda dapat menggunakan konsol Google Cloud, Google Cloud CLI, atau YAML untuk menentukan urutan startup:
Konsol
Di konsol Google Cloud, buka halaman Cloud Run:
- Untuk layanan yang ada, klik layanan dalam daftar, lalu pilih Edit dan deploy revisi baru untuk menampilkan formulir deployment revisi.
- Untuk layanan baru, klik Deploy container dan pilih Service untuk menampilkan formulir Create service.
Untuk layanan baru, tentukan nama layanan, URL penampung masuk, alokasi CPU, kontrol masuk, dan autentikasi. Di tab Container(s), volumes, networking, security, lakukan hal berikut:
- Konfigurasikan penampung traffic masuk.
- Untuk menambahkan setiap penampung lain yang Anda deploy, klik Tambahkan penampung.
- Untuk semua penampung kecuali penampung traffic masuk, konfigurasi health check startup. Penampung ingress memiliki health check startup default.
- Jika container memerlukan container lain untuk dimulai terlebih dahulu sebelum dapat dimulai, gunakan menu Urutan pengaktifan penampung untuk memilih penampung yang harus dimulai terlebih dahulu.
Untuk layanan yang sudah ada, ikuti langkah-langkah berikut:
- Untuk semua penampung kecuali penampung traffic masuk, konfigurasi health check startup. Penampung ingress memiliki health check startup default.
- Setiap penampung ditampilkan dengan menu Urutan startup penampung-nya sendiri. Jika container memerlukan container lain untuk dimulai terlebih dahulu sebelum dapat dimulai, gunakan menu Urutan pengaktifan penampung untuk memilih container yang harus dimulai terlebih dahulu.
Selesaikan konfigurasi lain yang diperlukan, lalu klik Buat untuk layanan baru atau Deploy untuk layanan yang ada. Tunggu hingga deployment selesai.
gcloud
Sebelum menggunakan Google Cloud CLI untuk menentukan urutan startup, Anda harus mengonfigurasi healthcheck startup untuk semua container kecuali container ingress. Container traffic masuk memiliki health check startup default. Anda tidak dapat mengonfigurasi pemeriksaan kesehatan menggunakan Google Cloud CLI.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Untuk men-deploy beberapa penampung ke layanan dengan urutan startup yang ditentukan, jalankan perintah:
gcloud run deploy SERVICE \ --container CONTAINER_1_NAME --image='INGRESS_IMAGE' --port='CONTAINER_PORT' \ --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \ --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAMECONTAINER_2_NAME
- Ganti SERVICE dengan nama layanan yang menjadi tujuan deployment. Anda dapat menghilangkan parameter ini sepenuhnya, tetapi Anda akan diminta untuk memasukkan nama layanan jika mengabaikannya.
- Ganti CONTAINER_PORT dengan port tempat container ingress memproses permintaan masuk. Tidak seperti layanan container tunggal, untuk layanan yang berisi sidecar, tidak ada port default untuk penampung ingress. Anda harus mengonfigurasi port container secara eksplisit untuk container ingress dan hanya satu container yang dapat mengekspos port.
- Ganti INGRESS_IMAGE dengan referensi ke image container yang
harus menerima permintaan, misalnya,
us-docker.pkg.dev/cloudrun/container/hello:latest
. Ganti SIDECAR_IMAGE dengan referensi ke image container file bantuan
Jika Anda ingin mengonfigurasi setiap penampung dalam perintah deployment, berikan konfigurasi setiap penampung setelah parameter
container
.
YAML
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:
gcloud run services describe SERVICE --format export > service.yaml
Perbarui atribut
container-dependencies
:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: name: SERVICE spec: template: metadata: annotations: run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'
Ganti
- CONTAINER1 dengan nama container pertama yang bergantung pada satu container atau lebih. Perhatikan bahwa Anda dapat menetapkan nama container dalam YAML: Cloud Run akan secara otomatis membuat nama jika nama tidak ditentukan.
- CONTAINER2 dengan nama container yang harus dimulai sebelum CONTAINER1.
- CONTAINER3 dengan nama container kedua yang bergantung pada satu container atau lebih.
Dalam contoh yang ditampilkan dalam cuplikan YAML, CONTAINER2 dimulai terlebih dahulu, CONTAINER1 dimulai kedua, dan CONTAINER3 dimulai terakhir.
Ganti layanan dengan konfigurasinya yang baru menggunakan perintah berikut:
gcloud run services replace service.yaml
Menampilkan setelan penampung
Agar dapat melihat setelan container saat ini untuk layanan Cloud Run Anda:
Konsol
Di konsol Google Cloud, buka Cloud Run:
Klik layanan yang Anda minati untuk membuka halaman Detail layanan.
Klik tab Revisi.
Pada panel detail di sebelah kanan, setelan container tercantum di bagian tab Container.
gcloud
Gunakan perintah berikut:
gcloud run services describe SERVICE
Temukan setelan container dalam konfigurasi yang ditampilkan.