Sandbox Cloud Run menyediakan lingkungan yang cepat, aman, dan terisolasi untuk menjalankan kode yang tidak tepercaya atau menjalankan alat, seperti agen AI, dalam layanan yang ada di lingkungan generasi kedua. Sandbox sangat dioptimalkan untuk latensi dan berjalan dalam instance yang sama dengan container Anda, serta berbagi CPU dan memori yang dialokasikan.
Halaman ini menjelaskan cara mengonfigurasi sandbox di container Anda. Untuk mengetahui detail tentang cara menulis kode untuk berinteraksi dengan sandbox menggunakan CLI, lihat Eksekusi kode di Cloud Run.
Sebelum memulai
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Instal dan lakukan inisialisasi gcloud CLI.
- Deploy layanan Cloud Run service di lingkungan eksekusi generasi kedua.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk mengonfigurasi dan men-deploy layanan Cloud Run, minta administrator untuk memberi Anda peran IAM berikut:
- Developer Cloud Run (
roles/run.developer) di layanan Cloud Run - Pengguna Akun Layanan (
roles/iam.serviceAccountUser) di identitas layanan
Jika Anda men-deploy layanan atau fungsi dari kode sumber, Anda juga harus memiliki peran tambahan yang diberikan kepada Anda di project dan akun layanan Cloud Build.
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.
Mengaktifkan sandbox
Setiap perubahan konfigurasi akan menghasilkan revisi baru. Revisi selanjutnya juga akan otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan pembaruan eksplisit untuk mengubahnya.
Saat Anda mengaktifkan sandbox, layanan Cloud Run Anda akan di-deploy di lingkungan eksekusi generasi kedua. Untuk mengaktifkan sandbox di layanan Cloud Run, gunakan Google Cloud CLI atau konfigurasi YAML:
gcloud
Untuk men-deploy atau memperbarui layanan, tentukan flag --sandbox-launcher:
Untuk men-deploy layanan baru, jalankan perintah berikut:
gcloud beta run deploy SERVICE --image IMAGE_URL --sandbox-launcher
Ganti kode berikut:
Untuk memperbarui layanan yang sudah ada, jalankan perintah berikut:
gcloud beta run services update SERVICE --sandbox-launcher
YAML
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda memperbarui layanan yang sudah ada, download konfigurasi YAML-nya:
gcloud run services describe SERVICE --format export > service.yaml
Perbarui file YAML Anda untuk menyertakan atribut
sandboxLauncheryang ditetapkan ketruedi dalam konfigurasi container Anda:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/launch-stage: BETA spec: template: spec: containers: - name: CONTAINER image: IMAGE_URL sandboxLauncher: true port: 8080Ganti kode berikut:
- SERVICE: nama layanan Cloud Run Anda.
- CONTAINER: nama container Anda.
- IMAGE_URL: 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 mengikuti formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
Buat atau perbarui layanan menggunakan perintah berikut:
gcloud run services replace service.yaml
Perintah
gcloud run services replacesecara default menggunakan fileservice.yamljika ada.
Sandbox berbagi CPU dan memori yang dialokasikan ke container host. Pastikan batas CPU dan memori container utama Anda dapat mengakomodasi aplikasi Anda dan sandbox aktif yang Anda jalankan secara bersamaan.
Menonaktifkan sandbox
Untuk menonaktifkan kemampuan meluncurkan sandbox di layanan Anda, gunakan Google Cloud CLI atau konfigurasi YAML:
gcloud
Perbarui layanan menggunakan flag --no-sandbox-launcher dengan menjalankan perintah berikut:
gcloud beta run services update SERVICE --no-sandbox-launcher
Ganti SERVICE dengan nama layanan Anda.
YAML
Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda memperbarui layanan yang sudah ada, download konfigurasi YAML-nya:
gcloud run services describe SERVICE --format export > service.yaml
Perbarui file YAML Anda untuk menghapus atribut
sandboxLauncherdi dalam konfigurasi container Anda:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - name: CONTAINER image: IMAGE_URL port: 8080Ganti kode berikut:
- SERVICE: nama layanan Cloud Run Anda.
- CONTAINER: nama container Anda.
- IMAGE_URL: 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 mengikuti formatLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
Buat atau perbarui layanan menggunakan perintah berikut:
gcloud run services replace service.yaml
Perintah
gcloud run services replacesecara default menggunakan fileservice.yamljika ada.
Melihat setelan sandbox
Untuk melihat setelan sandbox saat ini untuk layanan Cloud Run Anda:
Konsol
Di Google Cloud konsol, buka halaman Layanan Cloud Run:
Klik layanan untuk membuka halaman Detail layanan.
Klik tab Histori revisi.
Di tab Container, temukan setelan Peluncur sandbox untuk melihat apakah container sandbox diaktifkan atau dinonaktifkan.
gcloud
Gunakan perintah berikut:
gcloud beta run services describe SERVICE
Ganti SERVICE dengan nama layanan Anda.
Untuk memverifikasi bahwa container sandbox diaktifkan, temukan atribut
sandboxLauncher: truedalam konfigurasi yang ditampilkan.
Untuk menjalankan kode yang tidak tepercaya di sandbox dari layanan Anda, lihat Eksekusi kode di Cloud Run.