Selain tindakan administratif seperti membuat, memperbarui, dan menghapus layanan, developer juga sering ingin menguji layanan secara pribadi sebelum merilisnya. Opsi ini ditujukan untuk layanan Cloud Run, bukan tugas Cloud Run.
Sebelum memulai
Pastikan Anda memberikan izin untuk mengakses layanan yang Anda autentikasi. Anda harus memberikan peran Cloud Run Invoker kepada developer atau grup developer:
UI Konsol
Buka Konsol Google Cloud:
Pilih layanan, tetapi jangan klik.
Klik tab Izin di panel sebelah kanan. (Anda mungkin perlu mengklik Tampilkan Panel Info terlebih dahulu di pojok kanan atas.)
Klik Tambahkan anggota.
Di kolom Tambahkan anggota, masukkan email akun developer.
Pilih peran
Cloud Run Invoker
dari opsi Pilih peran di menu drop-down.Klik Simpan.
gcloud
Gunakan perintah gcloud run services add-iam-policy-binding
:
gcloud run services add-iam-policy-binding SERVICE \ --member='USER:EMAIL' \ --role='roles/run.invoker'
dengan
- SERVICE adalah nama layanan.
- USER adalah nilai
user
ataugroup
, bergantung pada apakah Anda memberikan otorisasi kepada satu developer atau grup. EMAIL adalah akun email.
Contoh:
gcloud run services add-iam-policy-binding myservice \ --member='user:test-user@gmail.com' \ --role='roles/run.invoker'
Menguji layanan pribadi
Menggunakan proxy Cloud Run di Google Cloud CLI
Cara termudah untuk menguji layanan pribadi adalah dengan menggunakan
proxy Cloud Run di Google Cloud CLI.
Proxy ini akan menjadi proxy layanan pribadi ke http://localhost:8080
(atau ke port yang ditentukan dengan --port
),
yang memberikan token akun aktif atau token lain yang Anda tentukan.
Hal ini memungkinkan Anda menggunakan browser web atau alat seperti curl
.
Cara ini direkomendasikan untuk menguji situs atau API secara pribadi di browser Anda.
Anda dapat melakukan proxy layanan secara lokal menggunakan perintah berikut:
gcloud run services proxy SERVICE --project PROJECT-ID
Menggunakan curl
Atau, Anda dapat menguji layanan pribadi tanpa proxy menggunakan alat
seperti curl
dan dengan meneruskan token autentikasi di header Authorization
:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL
Agar perintah curl
berfungsi, Anda harus meneruskan token ID yang valid untuk pengguna dengan izin run.routes.invoke
, seperti Cloud Run Admin atau Cloud Run Invoker. Lihat
Peran IAM Cloud Run untuk mengetahui
daftar lengkap peran dan izin yang terkait.
Guna mendapatkan token ID yang valid untuk identitas yang login ke gcloud CLI, gunakan gcloud auth print-identity-token
.
Anda dapat menggunakan token yang dibuat oleh gcloud CLI untuk memanggil permintaan HTTP di project apa pun selama akun Anda memiliki izin run.routes.invoke
di layanan. Untuk tujuan pengembangan, gunakan token ID yang dihasilkan gcloud CLI. Namun, perlu diperhatikan bahwa token tersebut tidak memiliki klaim audiens, sehingga rentan terhadap serangan relai. Dalam lingkungan produksi, gunakan token ID yang dikeluarkan untuk akun layanan dengan audience yang sesuai yang telah ditentukan. Pendekatan ini meningkatkan keamanan dengan membatasi penggunaan token hanya untuk layanan yang dimaksud.
Sebaiknya alokasikan kumpulan izin minimum yang diperlukan untuk mengembangkan dan menggunakan layanan Anda. Pastikan kebijakan IAM pada layanan Anda dibatasi untuk jumlah minimum pengguna dan akun layanan.