Memanggil dengan Permintaan HTTPS

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:

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.