Men-deploy API ke gateway

Prasyarat

Sebelum dapat men-deploy konfigurasi API di API Gateway, pastikan Anda memiliki:

Persyaratan ID gateway

Banyak perintah gcloud yang ditampilkan di bawah mengharuskan Anda menentukan ID gateway, dalam bentuk: GATEWAY_ID. API Gateway menerapkan persyaratan berikut untuk ID gateway:

  • Harus memiliki panjang maksimum 49 karakter.
  • Hanya boleh berisi huruf kecil, angka, atau tanda pisah.
  • Tidak boleh diawali dengan tanda hubung.
  • Tidak boleh berisi garis bawah.

Menentukan endpoint konfigurasi API yang di-deploy

Saat Anda men-deploy konfigurasi API ke gateway, API Gateway akan membuat URL unik untuk gateway di domain gateway.dev. Kemudian, klien API Anda akan menggunakan URL dalam bentuk di bawah untuk mengakses konfigurasi API yang di-deploy:

https://GATEWAY_ID-HASH.REGION_CODE.gateway.dev

dengan GATEWAY_ID adalah nama gateway, HASH adalah kode hash unik yang dihasilkan saat Anda men-deploy API, dan REGION_CODE adalah kode untuk region GCP tempat Anda men-deploy gateway.

Contoh:

https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev

Men-deploy konfigurasi API ke gateway

Gunakan Google Cloud CLI untuk men-deploy konfigurasi API ke gateway. Saat men-deploy konfigurasi API, Anda harus menentukan nama API. Jika gateway belum ada untuk API, perintah ini juga akan membuatnya.

Untuk men-deploy konfigurasi API ke gateway:

  1. Validasi project ID yang ditampilkan dari perintah berikut untuk memastikan gateway tidak dibuat di project yang salah.

    gcloud config list project

    Jika Anda perlu mengubah project default, jalankan perintah berikut dan ganti PROJECT_ID dengan project ID Google Cloud tempat Anda ingin membuat layanan:

    gcloud config set project PROJECT_ID
  2. Lihat bantuan untuk perintah gateway create:

    gcloud api-gateway gateways create --help
  3. Jalankan perintah berikut untuk men-deploy konfigurasi API ke 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 ID gateway baru. Jika gateway belum ada, perintah ini akan membuatnya.
    • API_ID menentukan ID API API Gateway yang terkait dengan gateway ini.
    • CONFIG_ID menentukan ID konfigurasi API yang di-deploy ke gateway. Anda harus menentukan konfigurasi API saat membuat gateway.
    • GCP_REGION menentukan region GCP untuk gateway yang di-deploy.

    • PROJECT_ID menentukan project ID Google Cloud.

    Saat membuat gateway, gcloud akan menghasilkan informasi ke terminal.

  4. 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

    Perintah ini menampilkan hal berikut:

    apiConfig: projects/PROJECT_ID/locations/global/apis/API_ID/configs/CONFIG_ID
    createTime: '2020-02-05T13:44:12.997862831Z'
    defaultHostname: my-gateway-a12bcd345e67f89g0h.uc.gateway.dev
    displayName: GATEWAY_ID
    name: projects/PROJECT_ID/locations/GCP_REGION/gateways/GATEWAY_ID
    serviceAccount:
      email: gateway-111111@222222-tp.iam.gserviceaccount.com
    state: ACTIVE
    updateTime: '2020-02-05T13:45:00.844705087Z'

    Perhatikan nilai properti defaultHostname. Ini adalah bagian nama host dari URL gateway. Untuk mengakses konfigurasi API yang di-deploy ke gateway ini, Anda menggunakan URL dalam bentuk:

    https://my-gateway-a12bcd345e67f89g0h.uc.gateway.dev

Google Cloud CLI memiliki banyak opsi, termasuk yang dijelaskan dalam Referensi gcloud. Selain itu, untuk API Gateway, Anda dapat menetapkan opsi berikut saat membuat gateway:

  • --async: Segera kembalikan kontrol ke terminal, tanpa menunggu operasi selesai.
  • --display-name=NAME: Menentukan nama tampilan gateway, yang berarti nama yang ditampilkan di UI. Jangan gunakan spasi dalam nama. Sebagai gantinya, gunakan tanda hubung dan garis bawah. Nilai defaultnya adalah GATEWAY_ID.
  • --labels=KEY1=VALUE1,KEY2=VALUE2,...: Menentukan label yang terkait dengan gateway.

Mencantumkan gateway

Untuk mencantumkan gateway untuk project tertentu:

gcloud api-gateway gateways list --project=PROJECT_ID

Perintah ini menampilkan output dalam bentuk:

GATEWAY_ID        LOCATION       DISPLAY_NAME     STATE     CREATE_TIME          UPDATE_TIME
my-gateway        us-central1    my-gateway       ACTIVE    2021-01-07T00:04:19  2022-05-21T00:33:46

Untuk mencantumkan gateway untuk project dan region tertentu:

gcloud api-gateway gateways list --location=GCP_REGION --project=PROJECT_ID

Gunakan ekspresi filter untuk mencantumkan gateway yang terkait dengan API tertentu:

gcloud api-gateway gateways list \
  --filter="apiConfig:projects/PROJECT_ID/locations/global/apis/API_ID/*" \
  --project=PROJECT_ID

Atau, gunakan filter ini untuk mencantumkan gateway untuk konfigurasi API tertentu:

gcloud api-gateway gateways list \
  --filter="apiConfig:projects/PROJECT_ID/locations/global/apis/API_ID/configs/CONFIG_ID" \
  --project=PROJECT_ID

Gunakan project ID, region ID, dan gateway ID untuk mendapatkan informasi mendetail tentang gateway, termasuk identitas konfigurasi API yang di-deploy ke gateway:

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

Mengupdate gateway

Perbarui gateway ke:

  • Men-deploy konfigurasi API yang berbeda ke gateway
  • Memperbarui nama tampilan
  • Memperbarui label

Gunakan perintah gcloud berikut untuk memperbarui gateway yang ada, dengan UPDATE_OPTIONS diganti dengan flag dan nilai opsi gateway yang ingin Anda perbarui:

gcloud api-gateway gateways update GATEWAY_ID \
  UPDATE_OPTIONS --api=API_ID --location=GCP_REGION --project=PROJECT_ID  

Misalnya, untuk mengupdate konfigurasi API yang di-deploy ke gateway:

gcloud api-gateway gateways update GATEWAY_ID \
  --api-config=NEW_CONFIG_ID --api=API_ID --location=GCP_REGION --project=PROJECT_ID 

dengan NEW_CONFIG_ID menentukan konfigurasi API baru yang akan di-deploy ke gateway.

Untuk mengetahui daftar lengkap flag dan argumen update yang tersedia, lihat referensi gcloud api-gateway gateways update atau gunakan perintah berikut untuk melihat semua opsi update:

gcloud api-gateway gateways update --help

Menghapus gateway

Gunakan perintah gcloud berikut untuk menghapus gateway yang ada:

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

Langkah selanjutnya