Menggunakan HTTPS/2 (layanan)

Untuk layanan Cloud Run, secara default Cloud Run melakukan downgrade permintaan HTTP/2 ke HTTP/1 saat permintaan tersebut dikirim ke container. Jika Anda ingin menyetel layanan Anda secara eksplisit agar menggunakan HTTP/2 end-to-end, tanpa downgrade, Anda dapat mengonfigurasinya untuk HTTP/2. Halaman ini menunjukkan cara melakukan konfigurasi.

Untuk informasi selengkapnya tentang cara memanggil layanan menggunakan HTTP, baca Memanggil dengan Permintaan HTTPS.

Sebelum Anda mengonfigurasi

Layanan Cloud Run Anda harus menangani permintaan dalam format HTTP/2 cleartext (h2c). Infrastruktur penayangan frontend Google menghentikan TLS, lalu meneruskan traffic h2c ke Cloud Run dan ke penampung Anda melalui saluran terenkripsi.

Untuk mengonfirmasi bahwa layanan Anda mendukung permintaan h2c, uji layanan secara lokal menggunakan perintah cURL ini:

curl -i --http2-prior-knowledge http://localhost:PORT

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan guna mengonfigurasi dan men-deploy layanan Cloud Run, minta administrator untuk memberi Anda peran IAM berikut:

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.

Menyetel dan mengupdate HTTP/2 end-to-end

Setiap perubahan konfigurasi akan menghasilkan revisi baru. Tiap revisi berikutnya juga akan secara otomatis mengandung perubahan konfigurasi tersebut, kecuali jika Anda membuat update yang eksplisit untuk perubahan secara khusus.

Anda dapat menentukan penggunaan HTTP/2 end-to-end menggunakan konsol Google Cloud, command line gcloud, atau file YAML saat Anda membuat layanan baru atau men-deploy revisi baru:

Konsol

  1. Di konsol Google Cloud, buka Cloud Run:

    Buka Cloud Run

  2. Klik Deploy container dan pilih Service untuk mengonfigurasi layanan baru. Jika Anda mengonfigurasi layanan yang sudah ada, klik layanan, lalu klik Edit dan deploy revisi baru.

  3. Jika Anda mengonfigurasi layanan baru, isi halaman setelan layanan awal, lalu klik Container, volume, networking, security untuk memperluas halaman konfigurasi layanan.

  4. Klik tab Networking.

    gambar

    • Pilih kotak centang Aktifkan koneksi http/2
  5. Klik Buat atau Deploy.

gcloud

Anda dapat memperbarui layanan yang diberikan untuk menggunakan HTTP/2 dengan mengikuti perintah berikut:

gcloud run services update SERVICE --use-http2

Ganti SERVICE dengan nama layanan Anda.

Anda juga dapat menyiapkan layanan Anda menggunakan HTTP/2 selama deployment menggunakan perintah:

gcloud run deploy --image IMAGE_URL --use-http2

Ganti IMAGE_URL dengan referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, maka repositori REPO_NAME harus sudah dibuat. URL memiliki bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG

YAML

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang sudah ada, download konfigurasi YAML-nya:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Memperbarui ports dengan nama h2c dan containerPort dengan port pilihan Anda, seperti yang ditunjukkan dalam contoh berikut:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          name: REVISION
        spec:
          containers:
          - image: IMAGE_URL
            ports:
            - name: h2c
              containerPort: 8080

    Ganti

    • SERVICE dengan nama layanan Cloud Run Anda
    • IMAGE_URL dengan referensi ke container image, contohnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • REVISION dengan nama revisi baru atau hapus (jika ada). Jika Anda memberikan nama revisi baru, nama tersebut harus memenuhi kriteria berikut:
      • Dimulai denganSERVICE-
      • Hanya berisi huruf kecil, angka, dan -
      • Tidak diakhiri dengan -
      • Tidak melebihi 63 karakter
  3. Buat atau perbarui layanan menggunakan perintah berikut:

    gcloud run services replace service.yaml

Terraform

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

Tambahkan kode google_cloud_run_v2_service berikut ke resource di konfigurasi Terraform Anda, pada template.containers. Jika container Anda memproses permintaan HTTP di port selain 8080, ganti 8080 dengan kode port tersebut.

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-h2c"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
      # Enable HTTP/2
      ports {
        name           = "h2c"
        container_port = 8080
      }
    }
  }
}

Lihat setelan http/2

Untuk melihat setelan http/2 untuk layanan Cloud Run Anda saat ini:

Konsol

  1. Di konsol Google Cloud, buka Cloud Run:

    Buka Cloud Run

  2. Klik layanan yang Anda minati untuk membuka halaman Detail layanan.

  3. Klik tab Revisi.

  4. Di sebelah kanan panel detail, setelan http/2 tercantum di tab Networking.

gcloud

  1. Gunakan perintah berikut:

    gcloud run services describe SERVICE
  2. Cari setelan http/2 di konfigurasi yang ditampilkan.