Panduan memulai API Gateway dan Cloud Run

Halaman ini menunjukkan cara menyiapkan API Gateway untuk mengelola dan mengamankan layanan backend Cloud Run.

Daftar Tugas

Gunakan daftar tugas berikut saat Anda mengerjakan tutorial. Semua tugas diperlukan untuk men-deploy API Gateway untuk layanan backend Cloud Run Anda.

  1. Buat atau pilih Google Cloud project.
  2. Jika Anda belum men-deploy Cloud Run Anda sendiri, deploy layanan contoh. Lihat langkah 7 di Sebelum Anda memulai.
  3. Aktifkan layanan API Gateway yang diperlukan.
  4. Buat deskripsi OpenAPI yang mendeskripsikan API Anda, dan konfigurasikan rute ke layanan backend Cloud Run Anda. Lihat Membuat konfigurasi API.
  5. Deploy gateway API menggunakan konfigurasi API Anda. Lihat Men-deploy gateway API.
  6. Melacak aktivitas ke layanan Anda. Lihat Melacak aktivitas API.
  7. Hindari menimbulkan biaya pada akun Google Cloud Anda. Lihat Pembersihan.

Sebelum memulai

  1. Di konsol Google Cloud , buka halaman Dasbor, lalu pilih atau buat project Google Cloud .

    Buka Dasbor

  2. Pastikan penagihan diaktifkan untuk project Anda.

    Mengaktifkan penagihan

  3. Catat project ID yang ingin Anda gunakan untuk tutorial ini. Di bagian selanjutnya dari halaman ini, project ID ini disebut sebagai PROJECT_ID.

  4. Download dan instal Google Cloud CLI.

    Download gcloud CLI

  5. Perbarui komponen gcloud:

    gcloud components update
  6. Tetapkan project default. Ganti PROJECT_ID dengan project ID Google Cloud Anda

    gcloud config set project PROJECT_ID

  7. Jika Anda belum men-deploy layanan Cloud Run Anda sendiri, ikuti langkah-langkah di Panduan memulai: Men-deploy Container Contoh Bawaan untuk memilih atau membuat project Google Cloud dan men-deploy backend contoh. Catat URL aplikasi, serta region dan project ID tempat aplikasi Anda di-deploy.

Mengaktifkan layanan yang diperlukan

Gateway API mengharuskan Anda mengaktifkan layanan Google berikut:

Nama Judul
apigateway.googleapis.com API Gateway API
servicemanagement.googleapis.com Service Management API
servicecontrol.googleapis.com Service Control API

Gunakan perintah berikut untuk mengaktifkan layanan ini:

gcloud services enable apigateway.googleapis.com
gcloud services enable servicemanagement.googleapis.com
gcloud services enable servicecontrol.googleapis.com

Untuk mengetahui informasi selengkapnya tentang layanan gcloud, lihat Layanan gcloud.

Membuat konfigurasi API

Sebelum API Gateway dapat digunakan untuk mengelola traffic ke backend Cloud Run yang di-deploy, API Gateway memerlukan konfigurasi API.

Anda dapat membuat konfigurasi API menggunakan deskripsi OpenAPI yang berisi anotasi khusus untuk menentukan perilaku API Gateway yang dipilih. Anda harus menambahkan kolom khusus Google yang berisi URL untuk setiap aplikasi Cloud Run agar API Gateway memiliki informasi yang diperlukan untuk memanggil aplikasi.

Untuk mengetahui detail selengkapnya tentang ekstensi OpenAPI yang didukung, lihat artikel berikut:

Untuk membuat konfigurasi API:

  1. Buat file teks bernama openapi-run.yaml. Untuk mempermudah, halaman ini merujuk pada deskripsi OpenAPI berdasarkan nama file tersebut, tetapi Anda dapat menamainya dengan nama lain jika mau.
  2. Salin konten file berikut ke dalam file openapi-run.yaml Anda:

    OpenAPI 2.0

    # openapi-run.yaml
    swagger: '2.0'
    info:
      title: API_ID optional-string
      description: Sample API on API Gateway with a Cloud Run backend
      version: 1.0.0
    schemes:
    - https
    produces:
    - application/json
    x-google-backend:
      address: APP_URL
    paths:
      /assets/{asset}:
        get:
          parameters:
            - in: path
              name: asset
              type: string
              required: true
              description: Name of the asset.
          summary: Assets
          operationId: getAsset
          responses:
            '200':
              description: A successful response
              schema:
                type: string
      /hello:
        get:
          summary: Cloud Run hello world
          operationId: hello
          responses:
            '200':
              description: A successful response
              schema:
                type: string
    • Di kolom title, ganti API_ID dengan nama API Anda dan ganti optional-string dengan deskripsi singkat pilihan Anda. Jika API Anda belum ada, perintah untuk membuat Konfigurasi API juga akan membuat API dengan nama yang Anda tentukan. Nilai kolom title digunakan saat membuat kunci API yang memberikan akses ke API ini. Lihat persyaratan ID API untuk mengetahui pedoman penamaan API.
    • Di kolom address di bagian x-google-backend, ganti APP_URL dengan URL sebenarnya dari layanan Cloud Run Anda (jalur lengkap API yang dipanggil). Misalnya: https://hello-abc1def2gh-uc.a.run.app.

    OpenAPI 3.x

    # openapi-run.yaml
    openapi: 3.0.4
    info:
      title: API_ID optional-string
      description: Sample API on API Gateway with a Cloud Run backend
      version: 1.0.0
    # Define reusable components in x-google-api-management
    x-google-api-management:
      backends:
        cloudrun_backend:
          address: APP_URL
          deadline: 30.0
          pathTranslation: APPEND_PATH_TO_ADDRESS
          protocol: "http/1.1"
    # Apply the backend configuration by referencing it by name. Set at the root so this applies to all operations unless overridden.
    x-google-backend: cloudrun_backend
    paths:
      /hello:
        get:
          summary: Greet a user
          operationId: hello
          responses:
            "200":
              description: A successful response
              content:
                application/json:
                  schema:
                    type: string
    • Di kolom title, ganti API_ID dengan nama API Anda dan ganti optional-string dengan deskripsi singkat pilihan Anda. Jika API Anda belum ada, perintah untuk membuat Konfigurasi API juga akan membuat API dengan nama yang Anda tentukan. Nilai kolom title digunakan saat membuat kunci API yang memberikan akses ke API ini. Lihat persyaratan ID API untuk mengetahui pedoman penamaan API.
    • Di kolom address, ganti APP_URL dengan URL sebenarnya dari layanan Cloud Run Anda (jalur lengkap API yang dipanggil). Misalnya: https://hello-687541448612.us-central1.run.app
  3. Masukkan perintah berikut, dengan:
    • CONFIG_ID menentukan nama konfigurasi API Anda.
    • API_ID menentukan nama API Anda. Jika API belum ada, perintah ini akan membuatnya.
    • PROJECT_ID menentukan nama project Google Cloud Anda.
    • SERVICE_ACCOUNT_EMAIL menentukan akun layanan yang digunakan untuk menandatangani token untuk backend dengan autentikasi yang dikonfigurasi. Untuk mengetahui informasi selengkapnya, lihat Membuat akun layanan.
    gcloud api-gateway api-configs create CONFIG_ID \
      --api=API_ID --openapi-spec=openapi2-run.yaml \
      --project=PROJECT_ID --backend-auth-service-account=SERVICE_ACCOUNT_EMAIL

    Operasi ini mungkin memerlukan waktu beberapa menit untuk selesai karena konfigurasi API disebarkan ke sistem hilir. Pembuatan konfigurasi API yang kompleks dapat memerlukan waktu hingga sepuluh menit agar berhasil diselesaikan.

  4. Setelah konfigurasi API dibuat, Anda dapat melihat detailnya dengan menjalankan perintah ini:
    gcloud api-gateway api-configs describe CONFIG_ID \
      --api=API_ID

Men-deploy gateway API

Sekarang Anda dapat men-deploy API di API Gateway. Men-deploy API di API Gateway juga menentukan URL eksternal yang dapat digunakan klien API untuk mengakses API Anda.

Jalankan perintah berikut untuk men-deploy konfigurasi API yang baru saja Anda buat ke API Gateway:

gcloud api-gateway gateways create GATEWAY_ID \
  --api=API_ID --api-config=CONFIG_ID \
  --location=GCP_REGION --project=PROJECT_ID

dengan:

  • GATEWAY_ID menentukan nama gateway.
  • API_ID menentukan nama API Gateway API yang terkait dengan gateway ini.
  • CONFIG_ID menentukan nama konfigurasi API yang di-deploy ke gateway.
  • GCP_REGION adalah Google Cloud region untuk gateway yang di-deploy.

  • PROJECT_ID menentukan nama project Google Cloud Anda.

Setelah berhasil diselesaikan, Anda dapat menggunakan perintah berikut untuk melihat detail tentang gateway:

gcloud api-gateway gateways describe GATEWAY_ID \
  --location=GCP_REGION --project=PROJECT_ID

Catat nilai properti defaultHostname dalam output perintah ini. Ini adalah bagian nama host dari URL gateway yang Anda gunakan untuk menguji deployment pada langkah berikutnya.

Menguji deployment API Anda

Sekarang Anda dapat mengirim permintaan ke API Anda menggunakan URL yang dihasilkan saat deployment gateway Anda.

Masukkan URL berikut di browser web Anda, dengan:

  • DEFAULT_HOSTNAME menentukan bagian nama host dari URL gateway yang di-deploy.
  • hello adalah jalur yang ditentukan dalam konfigurasi API Anda.
https://DEFAULT_HOSTNAME/hello

Contoh:

https://my-gateway-687541448612.us-central1.run.app/hello

Anda akan melihat container Cloud Run menjalankan aplikasi Anda di browser.

Berhasil! Gateway Anda mengelola akses ke layanan backend Cloud Run Anda.

Melacak aktivitas API

  1. Lihat grafik aktivitas untuk API Anda di halaman API Gateway di konsolGoogle Cloud . Klik API Anda untuk melihat grafik aktivitasnya di halaman Ringkasan. Mungkin perlu waktu beberapa saat agar permintaan ditampilkan dalam grafik.

  2. Lihat log permintaan untuk API Anda di halaman Logs Explorer. Link ke halaman Logs Explorer dapat ditemukan di halaman API Gateway di konsol Google Cloud .

    Setelah berada di halaman API Gateway:

    1. Pilih API yang akan dilihat.
    2. Klik tab Details.
    3. Klik link di bagian Log.

Pembersihan

Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan dalam panduan memulai ini, Anda dapat:

Atau, Anda juga dapat menghapus project Google Cloud yang digunakan untuk tutorial ini.