Halaman ini menjelaskan cara men-deploy image container ke layanan Cloud Run baru atau ke revisi baru dari layanan Cloud Run yang sudah ada.
Untuk contoh panduan men-deploy layanan baru, lihat Men-deploy contoh panduan memulai container.
Sebelum memulai
Jika Anda dikenai kebijakan organisasi pembatasan domain yang membatasi pemanggilan yang tidak terautentikasi untuk project, Anda perlu mengakses layanan yang di-deploy seperti yang dijelaskan di bagian Menguji layanan pribadi.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk 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.
Image dan container registry yang didukung
Anda dapat langsung menggunakan image container yang disimpan di Artifact Registry atau Docker Hub. Google merekomendasikan penggunaan Artifact Registry.
Anda dapat menggunakan image container dari registry publik atau pribadi lainnya (seperti JFrog Artifactory, Nexus, atau GitHub Container Registry), dengan menyiapkan repositori jarak jauh Artifact Registry.
Sebaiknya hanya pertimbangkan Docker Hub untuk men-deploy image container populer seperti Gambar Resmi Docker atau image OSS Bersponsor Docker. Untuk ketersediaan yang lebih tinggi, Google merekomendasikan untuk men-deploy image Docker Hub ini melalui repositori jarak jauh Artifact Registry.
Men-deploy layanan baru
Anda dapat menentukan image penampung dengan tag (misalnya, us-docker.pkg.dev/my-project/container/my-image:latest
) atau dengan ringkasan yang tepat (misalnya, us-docker.pkg.dev/my-project/container/my-image@sha256:41f34ab970ee...
).
Revisi pertama akan dibuat saat Anda men-deploy ke layanan untuk pertama kalinya. Perlu diperhatikan bahwa revisi tidak dapat diubah. Jika Anda men-deploy dari tag image container, tag tersebut akan di-resolve menjadi ringkasan dan revisi akan selalu menyalurkan ringkasan khusus ini.
Klik tab untuk mendapatkan petunjuk cara menggunakan alat pilihan Anda.
Konsol
Untuk men-deploy image container:
Klik Create service untuk menampilkan formulir Create service.
Di dalam formulir, pilih opsi deployment:
Jika Anda ingin men-deploy container secara manual, pilih Deploy one revision from an existing container image dan tentukan image container tersebut.
Jika Anda ingin mengotomatiskan deployment berkelanjutan, pilih Continuously deploy new applys from a source repository dan ikuti petunjuk untuk continuous deployment.
Masukkan nama layanan yang diperlukan. Nama layanan harus terdiri dari 49 karakter atau kurang dan harus unik per region dan project. Nama layanan tidak dapat diubah nanti dan akan terlihat secara publik.
Pilih wilayah tempat Anda ingin layanan berada. Pemilih region menunjukkan tingkat harga, ketersediaan pemetaan domain, dan menandai wilayah yang memiliki dampak karbon terendah.
Tetapkan alokasi CPU dan harga sesuai kebutuhan.
Di bagian Autoscaling, tentukan instance minimum dan maksimum.
Tetapkan setelan Ingress dalam formulir sesuai kebutuhan.
Di bagian Authentication, konfigurasikan hal berikut:
- Jika Anda membuat API atau situs publik, pilih
Allow unauthenticated invocations. Memilih opsi ini akan menetapkan peran IAM Invoker ke ID khusus
allUser
. Anda dapat menggunakan IAM untuk mengedit setelan ini nanti setelah membuat layanan. - Jika Anda menginginkan layanan aman yang dilindungi oleh autentikasi, pilih Require authentication.
- Jika Anda membuat API atau situs publik, pilih
Allow unauthenticated invocations. Memilih opsi ini akan menetapkan peran IAM Invoker ke ID khusus
Klik Container(s), volume, networking, security untuk menetapkan setelan opsional lainnya di tab yang sesuai:
Setelah selesai mengonfigurasi layanan, klik Create untuk men-deploy image ke Cloud Run dan tunggu hingga deployment selesai.
Klik link URL yang ditampilkan untuk membuka endpoint yang unik dan stabil dari layanan yang di-deploy.
gcloud
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
Untuk men-deploy image container:
Jalankan perintah berikut:
gcloud run deploy SERVICE --image IMAGE_URL
- Ganti SERVICE dengan nama layanan yang ingin dijadikan tujuan deployment. Nama layanan harus terdiri dari 49 karakter atau kurang dan harus unik per region dan project. Jika layanan belum ada, perintah ini akan membuat layanan selama deployment. Anda dapat menghilangkan parameter ini sepenuhnya, tetapi Anda akan diminta untuk memasukkan nama layanan jika mengabaikannya.
- 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 memiliki bentukLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
. Perlu diperhatikan bahwa jika Anda tidak memberikan flag--image
, perintah deploy akan mencoba men-deploy dari kode sumber.
Jika Anda membuat API atau situs publik, izinkan pemanggilan layanan yang tidak diautentikasi menggunakan tanda
--allow-unauthenticated
. Tindakan ini menetapkan peran IAM Cloud Run Invoker keallUsers
. Anda juga dapat menentukan--no-allow-unauthenticated
untuk melarang pemanggilan yang tidak diautentikasi. Jika menghapus salah satu flag ini, Anda akan diminta untuk mengonfirmasi kapan perintahdeploy
dijalankan.Tunggu hingga deployment selesai. Setelah berhasil diselesaikan, pesan berhasil akan ditampilkan beserta URL layanan yang di-deploy.
Perhatikan bahwa untuk men-deploy ke lokasi yang berbeda dari lokasi yang Anda tetapkan menggunakan properti
run/region
gcloud
, gunakan:gcloud run deploy SERVICE --region REGION
YAML
Anda dapat menyimpan spesifikasi layanan dalam file YAML
, lalu men-deploy-nya menggunakan gcloud CLI.
Buat file baru
service.yaml
dengan konten berikut:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - image: IMAGE
Ganti
- SERVICE dengan nama layanan Cloud Run Anda. Nama layanan harus terdiri dari 49 karakter atau kurang dan harus unik per region dan project.
- IMAGE dengan URL image container Anda.
Anda juga dapat menentukan konfigurasi lainnya, seperti variabel lingkungan atau batas memori.
Deploy layanan baru menggunakan perintah berikut:
gcloud run services replace service.yaml
Secara opsional, tampilkan layanan Anda ke publik jika ingin mengizinkan akses tanpa autentikasi ke layanan.
Cloud Code
Untuk men-deploy dengan Cloud Code, baca panduan IntelliJ dan Visual Studio Code.
Terraform
Jika Anda menggunakan Terraform, tentukan layanan Anda dalam konfigurasi Terraform, menggunakan resource google_cloud_run_v2_service
dari Google Cloud Platform Provider.
Buat file
main.tf
baru dengan konten ini:provider "google" { project = "PROJECT-ID" } resource "google_cloud_run_v2_service" "default" { name = "SERVICE" location = "REGION" client = "terraform" template { containers { image = "IMAGE" } } } resource "google_cloud_run_v2_service_iam_member" "noauth" { location = google_cloud_run_v2_service.default.location name = google_cloud_run_v2_service.default.name role = "roles/run.invoker" member = "allUsers" }
Ganti
- PROJECT-ID dengan ID project Google Cloud
- REGION dengan region Google Cloud
- SERVICE dengan nama layanan Cloud Run Anda. Nama layanan harus terdiri dari 49 karakter atau kurang dan harus unik per region dan project.
- 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
Konfigurasi ini memungkinkan akses publik (setara dengan
--allow-unauthenticated
). Untuk membuat layanan menjadi pribadi, hapus stanzagoogle_cloud_run_v2_service_iam_member
.Lakukan inisialisasi Terraform:
terraform init
Terapkan konfigurasi Terraform:
terraform apply
Konfirmasi bahwa Anda ingin menerapkan tindakan yang dijelaskan dengan memasukkan
yes
.
Library klien
Untuk men-deploy layanan baru dari kode:
REST API
Untuk men-deploy layanan baru, kirim permintaan HTTP POST
ke endpoint service
Cloud Run Admin API.
Misalnya, menggunakan curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X POST \ -d '{template: {containers: [{image: "IMAGE_URL"}]}}' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services?serviceId=SERVICE
Ganti:
- ACCESS_TOKEN dengan token akses yang valid untuk akun yang memiliki izin IAM untuk men-deploy layanan.
Misalnya, jika login ke gcloud, Anda dapat mengambil token akses menggunakan
gcloud auth print-access-token
. Dari dalam instance container Cloud Run, Anda dapat mengambil token akses menggunakan server metadata instance container. - IMAGE_URL dengan mereferensikan 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
. - SERVICE dengan nama layanan tempat Anda ingin men-deploy. Nama layanan harus terdiri dari 49 karakter atau kurang serta harus unik per region dan project.
- REGION dengan region Google Cloud layanan.
- PROJECT-ID dengan ID project Google Cloud.
Lokasi Cloud Run
Cloud Run bersifat regional, berarti infrastruktur yang
menjalankan layanan Cloud Run Anda terletak di region tertentu dan
dikelola oleh Google agar tersedia secara redundan di
semua zona dalam region tersebut.
Memenuhi persyaratan latensi, ketersediaan, atau ketahanan adalah faktor utama
untuk memilih region tempat layanan Cloud Run dijalankan.
Pada umumnya, Anda dapat memilih region yang paling dekat dengan pengguna Anda, tetapi Anda harus mempertimbangkan
lokasi dari produk Google Cloud
lain yang digunakan oleh layanan Cloud Run Anda.
Menggunakan produk Google Cloud secara bersamaan di beberapa lokasi dapat memengaruhi
latensi serta biaya layanan Anda.
Cloud Run tersedia di region berikut:
Tergantung harga Tingkat 1
asia-east1
(Taiwan)asia-northeast1
(Tokyo)asia-northeast2
(Osaka)europe-north1
(Finlandia) Rendah CO2europe-southwest1
(Madrid) Rendah CO2europe-west1
(Belgia) Rendah CO2europe-west4
(Belanda) Rendah CO2europe-west8
(Milan)europe-west9
(Paris) Rendah CO2me-west1
(Tel Aviv)us-central1
(Iowa) Rendah CO2us-east1
(South Carolina)us-east4
(North Virginia)us-east5
(Columbus)us-south1
(Dallas) Rendah CO2us-west1
(Oregon) Rendah CO2
Tergantung harga Tingkat 2
africa-south1
(Johannesburg)asia-east2
(Hong Kong)asia-northeast3
(Seoul, Korea Selatan)asia-southeast1
(Singapura)asia-southeast2
(Jakarta)asia-south1
(Mumbai, India)asia-south2
(Delhi, India)australia-southeast1
(Sydney)australia-southeast2
(Melbourne)europe-central2
(Warsawa, Polandia)europe-west10
(Berlin) Rendah CO2europe-west12
(Turin)europe-west2
(London, Inggris) Rendah CO2europe-west3
(Frankfurt, Jerman) Rendah CO2europe-west6
(Zurich, Swiss) Rendah CO2me-central1
(Doha)me-central2
(Dammam)northamerica-northeast1
(Montreal) Rendah CO2northamerica-northeast2
(Toronto) Rendah CO2southamerica-east1
(Sao Paulo, Brasil) Rendah CO2southamerica-west1
(Santiago, Cile) Rendah CO2us-west2
(Los Angeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)
Jika sudah membuat layanan Cloud Run, Anda dapat melihat region di dasbor Cloud Run di Konsol Google Cloud.
Saat melakukan deployment, agen layanan Cloud Run harus dapat mengakses container yang di-deploy, yang merupakan kasus default.
Setiap layanan memiliki URL unik dan permanen yang tidak berubah seiring waktu saat Anda men-deploy revisi baru padanya.
Men-deploy revisi baru dari layanan yang ada
Anda dapat men-deploy revisi baru menggunakan Google Cloud Console, command line gcloud
,
atau file konfigurasi YAML.
Perhatikan bahwa mengubah setelan konfigurasi akan menyebabkan pembuatan revisi baru, meskipun tidak ada perubahan pada image container. Setiap revisi yang dibuat tidak dapat diubah.
Klik tab untuk mendapatkan petunjuk cara menggunakan alat pilihan Anda.
Konsol
Untuk men-deploy revisi baru dari layanan yang sudah ada:
Temukan layanan yang ingin Anda perbarui dalam daftar layanan, lalu klik untuk membuka detail layanan tersebut.
Klik Edit and deploy new revision untuk menampilkan formulir deployment revisi.
Jika diperlukan, berikan URL ke image container baru yang ingin Anda deploy.
Konfigurasi penampung sesuai kebutuhan.
Tetapkan alokasi CPU dan harga sesuai kebutuhan.
Di bagian Capacity, tentukan memory limit dan CPU limit.
Tentukan waktu tunggu permintaan dan konkurensi sesuai kebutuhan.
Tentukan lingkungan eksekusi sesuai kebutuhan.
Di bagian Autoscaling, tentukan instance minimum dan maksimum.
Gunakan tab lain sesuai kebutuhan untuk mengonfigurasi:
Untuk mengirim semua traffic ke revisi baru, pilih Segera menayangkan revisi ini. Untuk meluncurkan revisi baru secara bertahap, hapus kotak centang tersebut. Hal ini menghasilkan deployment tanpa traffic yang dikirim ke revisi baru. Ikuti petunjuk untuk peluncuran bertahap setelah melakukan deployment.
Klik Deploy dan tunggu hingga deployment selesai.
gcloud
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
Untuk men-deploy image container:
Jalankan perintah:
gcloud run deploy SERVICE --image IMAGE_URL
- 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 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
.
Akhiran revisi ditetapkan secara otomatis untuk revisi baru. Jika ingin menyediakan akhiran revisi Anda sendiri, gunakan parameter gcloud CLI --revision-suffix.
Tunggu hingga deployment selesai. Setelah berhasil diselesaikan, pesan berhasil akan ditampilkan beserta URL layanan yang di-deploy.
YAML
Jika Anda perlu mendownload atau melihat konfigurasi layanan yang sudah ada, gunakan perintah berikut untuk menyimpan hasilnya ke file YAML:
gcloud run services describe SERVICE --format export > service.yaml
Dari file YAML konfigurasi layanan, ubah atribut turunan spec.template
apa pun sesuai kebutuhan untuk memperbarui setelan revisi, lalu deploy revisi baru:
gcloud run services replace service.yaml
Cloud Code
Untuk men-deploy revisi baru dari layanan yang ada dengan Cloud Code, baca panduan IntelliJ dan Visual Studio Code.
Terraform
Pastikan Anda telah menyiapkan Terraform seperti yang dijelaskan dalam contoh Men-deploy layanan baru.
Buat perubahan pada file konfigurasi.
Terapkan konfigurasi Terraform:
terraform apply
Konfirmasi bahwa Anda ingin menerapkan tindakan yang dijelaskan dengan memasukkan
yes
.
Library klien
Untuk men-deploy revisi baru dari kode:
REST API
Untuk men-deploy revisi baru, kirim permintaan HTTP PATCH
ke endpoint service
Cloud Run Admin API.
Misalnya, menggunakan curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X PATCH \ -d '{template: {containers: [{image: "IMAGE_URL"}]}}' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE
Ganti:
- ACCESS_TOKEN dengan token akses yang valid untuk akun yang
memiliki izin IAM untuk men-deploy revisi.
Misalnya, jika login ke gcloud, Anda dapat mengambil token akses menggunakan
gcloud auth print-access-token
. Dari dalam instance container Cloud Run, Anda dapat mengambil token akses menggunakan server metadata instance container. - IMAGE_URL dengan mereferensikan 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
. - SERVICE dengan nama layanan yang menjadi tujuan deployment Anda.
- REGION dengan region Google Cloud layanan.
- PROJECT-ID dengan ID project Google Cloud.
Lokasi Cloud Run
Cloud Run bersifat regional, berarti infrastruktur yang
menjalankan layanan Cloud Run Anda terletak di region tertentu dan
dikelola oleh Google agar tersedia secara redundan di
semua zona dalam region tersebut.
Memenuhi persyaratan latensi, ketersediaan, atau ketahanan adalah faktor utama
untuk memilih region tempat layanan Cloud Run dijalankan.
Pada umumnya, Anda dapat memilih region yang paling dekat dengan pengguna Anda, tetapi Anda harus mempertimbangkan
lokasi dari produk Google Cloud
lain yang digunakan oleh layanan Cloud Run Anda.
Menggunakan produk Google Cloud secara bersamaan di beberapa lokasi dapat memengaruhi
latensi serta biaya layanan Anda.
Cloud Run tersedia di region berikut:
Tergantung harga Tingkat 1
asia-east1
(Taiwan)asia-northeast1
(Tokyo)asia-northeast2
(Osaka)europe-north1
(Finlandia) Rendah CO2europe-southwest1
(Madrid) Rendah CO2europe-west1
(Belgia) Rendah CO2europe-west4
(Belanda) Rendah CO2europe-west8
(Milan)europe-west9
(Paris) Rendah CO2me-west1
(Tel Aviv)us-central1
(Iowa) Rendah CO2us-east1
(South Carolina)us-east4
(North Virginia)us-east5
(Columbus)us-south1
(Dallas) Rendah CO2us-west1
(Oregon) Rendah CO2
Tergantung harga Tingkat 2
africa-south1
(Johannesburg)asia-east2
(Hong Kong)asia-northeast3
(Seoul, Korea Selatan)asia-southeast1
(Singapura)asia-southeast2
(Jakarta)asia-south1
(Mumbai, India)asia-south2
(Delhi, India)australia-southeast1
(Sydney)australia-southeast2
(Melbourne)europe-central2
(Warsawa, Polandia)europe-west10
(Berlin) Rendah CO2europe-west12
(Turin)europe-west2
(London, Inggris) Rendah CO2europe-west3
(Frankfurt, Jerman) Rendah CO2europe-west6
(Zurich, Swiss) Rendah CO2me-central1
(Doha)me-central2
(Dammam)northamerica-northeast1
(Montreal) Rendah CO2northamerica-northeast2
(Toronto) Rendah CO2southamerica-east1
(Sao Paulo, Brasil) Rendah CO2southamerica-west1
(Santiago, Cile) Rendah CO2us-west2
(Los Angeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)
Jika sudah membuat layanan Cloud Run, Anda dapat melihat region di dasbor Cloud Run di Konsol Google Cloud.
Men-deploy image dari project Google Cloud lainnya
Anda dapat men-deploy image container dari project Google Cloud lainnya jika Anda menetapkan izin IAM yang benar:
Di konsol Google Cloud, buka project untuk layanan Cloud Run Anda.
Pilih Sertakan pemberian peran yang disediakan Google.
Salin email agen layanan Cloud Run. Class ini memiliki akhiran @serverless-robot-prod.iam.gserviceaccount.com
Buka project yang memiliki container registry yang ingin Anda gunakan.
Klik Add untuk menambahkan akun utama baru.
Di kolom New principals, tempel alamat email akun layanan yang telah Anda salin sebelumnya.
Di menu drop-down Select a role, jika Anda menggunakan Container Registry, pilih peran Storage -> Storage Object Viewer. Jika Anda menggunakan Artifact Registry, pilih peran Artifact Registry -> Artifact Registry Reader.
Deploy image container ke project yang berisi layanan Cloud Run.
Men-deploy image dari registry lain
Untuk men-deploy image container publik atau pribadi yang tidak disimpan di Artifact Registry atau Docker Hub, siapkan repositori jarak jauh Artifact Registry.
Repositori jarak jauh Artifact Registry memungkinkan Anda untuk:
- Deploy image container publik apa pun, misalnya GitHub Container Registry (
ghcr.io
). - Deploy image container dari repositori pribadi yang memerlukan autentikasi, misalnya, JFrog Artifactory atau Nexus.
Men-deploy beberapa container ke layanan (file bantuan)
Dalam deployment Cloud Run dengan file bantuan, ada satu masuk container yang menangani semua permintaan HTTPS yang masuk di PORT container yang Anda tentukan, dan ada satu atau lebih file bantuan container. Sidecar tidak dapat memproses permintaan HTTP yang masuk di port container masuk, tetapi dapat berkomunikasi satu sama lain dan dengan container ingress menggunakan port localhost. Porta {i>localhost<i} yang digunakan bervariasi tergantung pada kontainer yang Anda gunakan.
Dalam diagram berikut, container ingress berkomunikasi dengan file bantuan menggunakan localhost:5000
.
Anda dapat men-deploy hingga 10 container per instance, termasuk container ingress. Semua penampung dalam instance memiliki namespace jaringan yang sama dan juga dapat berbagi file menggunakan volume bersama dalam memori, seperti yang ditunjukkan dalam diagram.
Anda dapat men-deploy beberapa container di lingkungan eksekusi generasi pertama atau kedua.
Kasus penggunaan
Kasus penggunaan untuk file bantuan di layanan Cloud Run meliputi:
- Pemantauan, logging, dan pelacakan aplikasi
- Menggunakan Nginx, Envoy, atau Apache2 sebagai proxy di depan penampung aplikasi Anda
- Menambahkan filter autentikasi dan otorisasi (misalnya, Open Policy Agent)
- Menjalankan proxy koneksi keluar seperti proxy Alloy DB Auth
Men-deploy layanan dengan container file bantuan
Anda dapat men-deploy beberapa file bantuan ke layanan Cloud Run menggunakan Google Cloud Console, Google Cloud CLI, YAML, atau Terraform.
Klik tab untuk mendapatkan petunjuk cara menggunakan alat pilihan Anda.
Konsol
-
- Untuk men-deploy ke layanan yang ada, cari layanan dalam daftar layanan, dan klik untuk membukanya, lalu klik EDIT & DEPLOY NEW REVISION untuk menampilkan formulir deployment revisi.
- Untuk men-deploy ke layanan baru, klik Create service.
Untuk layanan baru,
- Berikan nama layanan dan URL ke image container masuk yang ingin di-deploy.
- Klik Container, volume, networking, security
Di kartu Edit penampung, konfigurasikan penampung masuk sesuai kebutuhan.
Klik Add container, lalu konfigurasi penampung file bantuan yang ingin Anda tambahkan bersama penampung masuk. Jika file bantuan bergantung pada penampung lain dalam layanan, tunjukkan hal ini di menu drop-down Pesanan start-up container. Ulangi langkah ini untuk setiap penampung file bantuan yang Anda deploy.
Untuk mengirim semua traffic ke revisi baru, pilih Segera menayangkan revisi ini. Untuk peluncuran bertahap, hapus centang pada kotak tersebut. Proses ini menghasilkan deployment yang tidak memungkinkan traffic dikirim ke revisi baru. Ikuti petunjuk untuk peluncuran bertahap setelah Anda melakukan deployment.
Klik Create untuk layanan baru atau Deploy untuk layanan yang ada, lalu tunggu hingga deployment selesai.
gcloud
Parameter container
di Google Cloud CLI sedang dalam Pratinjau.
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
Untuk men-deploy beberapa container ke layanan, jalankan perintah berikut:
gcloud beta run deploy SERVICE \ --container INGRESS_CONTAINER_NAME --image='INGRESS_IMAGE' \ --port='CONTAINER_PORT' \ --container SIDECAR_CONTAINER_NAME \ --image='SIDECAR_IMAGE'
Ganti:
- SERVICE dengan nama layanan yang menjadi tujuan deployment Anda. Anda dapat menghilangkan parameter ini sepenuhnya, tetapi Anda akan diminta untuk memasukkan nama layanan jika mengabaikannya.
- INGRESS_CONTAINER_NAME dengan nama untuk penampung yang menerima permintaan, misalnya
app
. - INGRESS_IMAGE dengan referensi ke image container yang akan menerima permintaan, misalnya
us-docker.pkg.dev/cloudrun/container/hello:latest
. - CONTAINER_PORT dengan port tempat container masuk memproses permintaan masuk. Tidak seperti layanan penampung tunggal, untuk layanan yang berisi file bantuan, tidak ada port default untuk penampung masuk. Anda harus mengonfigurasi port penampung secara eksplisit untuk penampung masuk dan hanya satu penampung yang dapat menampilkan port.
- SIDECAR_CONTAINER_NAME dengan nama untuk penampung file bantuan, misalnya,
sidecar
. - SIDECAR_IMAGE dengan referensi ke image container file bantuan
Jika Anda ingin mengonfigurasi setiap container di perintah deploy, berikan setiap konfigurasi container setelah parameter
container
, misalnya:gcloud beta run deploy SERVICE \ --container CONTAINER_1_NAME --image='INGRESS_IMAGE' \ --set-env-vars=KEY=VALUE \ --port='CONTAINER_PORT' \ --container SIDECAR_CONTAINER_NAME --image='SIDECAR_IMAGE' \ --set-env-vars=KEY_N=VALUE_N
Tunggu hingga deployment selesai. Setelah berhasil diselesaikan, pesan berhasil akan ditampilkan bersama dengan URL layanan yang di-deploy.
YAML
Petunjuk ini menunjukkan file YAML dasar untuk layanan Cloud Run dengan file bantuan.
Buat file bernama service.yaml
dan tambahkan kode berikut ke dalamnya:
apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: name: SERVICE_NAME spec: template: spec: containers: - image: INGRESS_IMAGE ports: - containerPort: CONTAINER_PORT - image: SIDECAR_IMAGE
Ganti
- SERVICE dengan nama layanan Cloud Run Anda. Nama layanan harus terdiri dari 49 karakter atau kurang.
- CONTAINER_PORT dengan port tempat container masuk memproses permintaan masuk. Tidak seperti layanan penampung tunggal, untuk layanan yang berisi file bantuan, tidak ada port default untuk penampung masuk. Anda harus mengonfigurasi port penampung secara eksplisit untuk penampung masuk dan hanya satu penampung yang dapat menampilkan port.
- INGRESS_IMAGE dengan referensi ke image container yang akan menerima permintaan, misalnya
us-docker.pkg.dev/cloudrun/container/hello:latest
. - SIDECAR_IMAGE dengan referensi ke image container file bantuan. Anda dapat menentukan beberapa file bantuan dengan menambahkan lebih banyak elemen ke array
containers
di YAML.
Setelah Anda memperbarui YAML untuk menyertakan container ingress dan file bantuan, deploy ke Cloud Run menggunakan perintah:
gcloud run services replace service.yaml
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Tambahkan hal berikut ke resource google_cloud_run_v2_service
di konfigurasi Terraform Anda.
resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "REGION"
ingress = "INGRESS_TRAFFIC_ALL"
template {
containers {
name = "INGRESS_CONTAINER_NAME"
ports {
container_port = CONTAINER_PORT
}
image = "INGRESS_IMAGE"
depends_on = ["SIDECAR_CONTAINER_NAME"]
}
containers {
name = "SIDECAR_CONTAINER_NAME"
image = "SIDECAR_IMAGE"
}
}
}
CONTAINER_PORT mewakili port tempat penampung masuk memproses permintaan masuk. Tidak seperti layanan satu container, untuk layanan yang berisi file bantuan, tidak ada port default untuk penampung masuk. Anda harus mengonfigurasi port penampung secara eksplisit untuk penampung masuk dan hanya satu penampung yang dapat menampilkan port.
Fitur penting yang tersedia untuk deployment dengan file bantuan
Anda dapat menentukan urutan pengaktifan penampung dalam deployment dengan beberapa container, jika Anda memiliki dependensi yang memerlukan beberapa container untuk dimulai sebelum penampung lainnya dalam deployment tersebut.
Jika Anda memiliki container yang bergantung pada container lain, Anda harus menggunakan healthcheck dalam deployment. Jika Anda menggunakan health check, Cloud Run akan mengikuti urutan startup container dan memeriksa kondisi setiap container, serta memastikan setiap container berhasil sebelum Cloud Run memulai container berikutnya sesuai urutan. Jika Anda tidak menggunakan health check, container yang responsif akan dimulai meskipun container yang menjadi dependensinya tidak berjalan.
Beberapa container dalam satu instance dapat mengakses volume dalam memori bersama, yang dapat diakses oleh setiap container menggunakan titik pemasangan yang Anda buat.
Langkah selanjutnya
Setelah men-deploy layanan baru, Anda dapat melakukan hal berikut:
- Peluncuran bertahap, revisi rollback, migrasi traffic
- Melihat log layanan
- Memantau performa layanan
- Menetapkan batas memori
- Menetapkan variabel lingkungan
- Mengubah keserentakan layanan
- Mengelola layanan
- Mengelola revisi layanan
- Contoh file bantuan OpenTelemetry Cloud Run
- Men-deploy hanya image tepercaya dengan Otorisasi Biner (Pratinjau)
Anda dapat mengotomatiskan build dan deployment layanan Cloud Run menggunakan Pemicu Cloud Build.
Anda juga dapat menggunakan Cloud Deploy untuk menyiapkan pipeline continuous-delivery guna men-deploy layanan Cloud Run ke beberapa lingkungan: