Setelah Anda membuat layanan atau fungsi, Cloud Run akan menyediakan endpoint HTTPS untuk layanan tersebut. Anda dapat mengaktifkan layanan untuk berjalan sebagai respons terhadap permintaan HTTPS.
Semua layanan Cloud Run memiliki URL HTTPS yang stabil, yang mewakili endpoint HTTPS default untuk layanan, meskipun Anda juga dapat mengonfigurasi domain kustom.
Beberapa kasus penggunaan mencakup hal berikut:
- API web RESTful kustom
- Microservice pribadi
- Middleware HTTP atau reverse proxy untuk aplikasi web Anda
- Aplikasi web dalam bentuk paket
Membuat layanan publik
Pembuatan layanan publik di Cloud Run memerlukan hal berikut:
- Akses ke layanan dari internet publik
- URL yang ditujukan untuk penggunaan publik
Untuk memublikasikan layanan, setel layanan agar mengizinkan akses yang tidak diautentikasi (publik) saat Anda men-deploy, atau kapan saja setelah Anda men-deploy.
URL Layanan
Cloud Run menetapkan URL non-deterministik berbasis hash ke semua layanan. Jika panjang nama layanan memungkinkannya, Cloud Run juga menetapkan URL deterministik ke layanan.
Anda dapat menonaktifkan URL run.app
default ini.
Anda dapat mengambil URL layanan dengan mengklik nama layanan di Konsol Google Cloud atau dengan menjalankan perintah berikut di gcloud CLI:
gcloud run services describe SERVICE --format 'value(status.url)'
URL deterministik diprioritaskan saat ditampilkan.
URL Deterministik
URL deterministik memungkinkan Anda memprediksi URL layanan sebelum layanan dibuat, yang dapat berguna untuk komunikasi layanan ke layanan.
URL deterministik hanya tersedia untuk segmen DNS yang terdiri dari 63 karakter atau kurang. Segmen DNS berisi nama layanan, nomor project, dan tag traffic.
URL deterministik untuk layanan Cloud Run memiliki format berikut:
https://[TAG---]SERVICE_NAME-PROJECT_NUMBER.REGION.run.app
dengan:
- TAG adalah tag traffic opsional untuk revisi yang Anda minta.
- PROJECT_NUMBER adalah nomor project Google Cloud.
- SERVICE_NAME adalah nama layanan Cloud Run.
- REGION adalah nama region, seperti
us-central1
.
URL non-deterministik
URL non-deterministik tidak memiliki format deterministik, yang berarti bahwa karena kolom kedua URL adalah hash acak, Anda tidak dapat memprediksi URL lengkap sebelum men-deploy layanan. Namun, setelah Anda men-deploy layanan, URL akan tetap stabil.
URL non-deterministik untuk layanan Cloud Run memiliki format
https://[
TAG---]
SERVICE_IDENTIFIER.run.app
,
dengan TAG mengacu pada tag traffic opsional untuk revisi yang Anda
minta, dan SERVICE_IDENTIFIER adalah identitas yang dapat dikenali yang stabil dan unik
untuk layanan Cloud Run. Jangan mengurai
SERVICE_IDENTIFIER karena tidak memiliki format tetap, dan
logika untuk pembuatan SERVICE_IDENTIFIER dapat berubah.
Pengalihan HTTP ke HTTPS
Cloud Run mengalihkan semua permintaan HTTP ke HTTPS, tetapi menghentikan
TLS sebelum mencapai layanan web Anda. Jika layanan Anda menghasilkan resource web
yang merujuk ke resource web lain dengan URL (http://
) yang tidak aman, halaman Anda
mungkin akan menerima error atau peringatan konten campuran.
Gunakan protokol https
untuk semua URI web referensi atau akun
untuk perintah proxy dalam Permintaan HTTP seperti header HTTP
X-Forwarded-Proto
.
HTTP dan HTTP/2
Secara default, Cloud Run akan mendowngrade permintaan HTTP/2 ke HTTP/1 saat permintaan tersebut dikirim ke container. Jika ingin menetapkan layanan Anda secara eksplisit untuk menggunakan HTTP/2 secara keseluruhan, lihat Menggunakan HTTP/2.
Membuat layanan pribadi
Pembuatan layanan pribadi di Cloud Run mengharuskan Anda untuk membatasi akses ke layanan dengan memanfaatkan izin invoker IAM.
Anda juga dapat membatasi akses ke layanan menggunakan mekanisme otorisasi dan autentikasi tingkat aplikasi, misalnya, menggunakan Identity Platform.
Menguji layanan pribadi
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 command line berikut di lingkungan Linux, macOS, WSL (lebih disukai), atau cygwin:
gcloud run services proxy SERVICE --project PROJECT-ID
Anda juga dapat menguji layanan pribadi tanpa proxy menggunakan alat
seperti curl
, dengan meneruskan token autentikasi di header Authorization
:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL
Antar layanan pribadi
Layanan Cloud Run dapat memanggil layanan Cloud Run lain dengan autentikasi antar layanan.
Kode contoh yang memanggil layanan pribadi
Untuk mengetahui contoh kode yang menunjukkan cara mendapatkan token ID dan membuat permintaan HTTP ke layanan pribadi, lihat topik Mengautentikasi layanan ke layanan.
Menggunakan middleware untuk meningkatkan layanan Anda
Proxy HTTPS dapat memindahkan fungsi umum dari layanan HTTP, seperti cache, validasi permintaan, atau otorisasi. Untuk microservice, banyak proxy HTTP yang merupakan bagian dari solusi Gateway API atau mesh layanan seperti Istio.
Produk Google Cloud yang dapat Anda gunakan untuk meningkatkan layanan Cloud Run meliputi:
API Gateway, yang dapat Anda gunakan untuk membuat, mengamankan, dan memantau API untuk digunakan sebagai proxy ke layanan Cloud Run lainnya.
Firebase Hosting, yang dapat Anda gunakan untuk membangun frontend aplikasi web untuk digunakan dengan Cloud Run sebagai backend dinamis.
Memanggil fungsi dengan permintaan HTTPS
Secara default, semua fungsi yang dibuat di Cloud Run memiliki URL HTTPS run.app
, yang dapat digunakan untuk memicu fungsi. Fungsi yang dibuat dengan pemicu Eventarc juga akan memiliki URL HTTPS, kecuali jika Anda memilih tidak ikut dengan menggunakan menonaktifkan fitur URL run.app
.