Memanggil dengan Permintaan HTTPS

Anda dapat mengirim permintaan HTTPS dari apa pun yang dapat membuat permintaan HTTPS untuk memicu layanan yang dihosting Cloud Run. Perhatikan bahwa semua layanan Cloud Run memiliki URL HTTPS yang stabil.

Beberapa kasus penggunaan mencakup:

  • 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:

  • 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 deploy, atau kapan saja setelah Anda men-deploy.

Anda dapat menggunakan URL stabil yang ditetapkan secara otomatis yang disediakan saat deployment pertama layanan Anda sebagai URL publik di Cloud Run. Untuk menentukan URL layanan yang di-deploy:

gcloud run services describe SERVICE --format 'value(status.url)'

URL untuk layanan Cloud Run memiliki format https://[TAG---]SERVICE_IDENTIFIER.run.app, dengan TAG mengacu pada tag traffic 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.

Anda juga dapat menggunakan domain kustom Anda sendiri yang dipetakan ke layanan. Opsi ini akan otomatis memberikan sertifikat SSL terkelola.

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 perintah berikut:

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: