將 API 部署至閘道

本頁說明如何將 API 部署至 API Gateway。

必要條件

將 API 部署至 API Gateway 前,請務必完成下列事項:

閘道 ID 規定

下列許多 gcloud CLI 指令都需要您指定閘道 ID,格式為:GATEWAY_ID。API Gateway 會強制實行下列閘道 ID 規定:

  • 長度上限為 49 個字元。
  • 只能使用小寫英文字母、數字或破折號。
  • 開頭不得為破折號。
  • 不得含有底線。

定義已部署 API 設定的端點

將 API 設定部署至閘道時,API Gateway 會在 gateway.dev 網域中為閘道建立專屬網址。API 用戶端隨後會使用下列格式的網址,存取已部署的 API 設定:

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

其中 GATEWAY_ID 是閘道名稱,HASH 是部署 API 時產生的專屬雜湊碼,REGION_CODE 則是部署閘道的 Cloud 位置代碼。

例如:

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

將 API 部署至閘道

如要將 API 部署至閘道,請按照下列步驟操作:

Google Cloud 控制台

  1. 前往 Google Cloud 控制台的「API Gateway」頁面。

    前往 API Gateway

  2. 按一下「建立閘道」

    系統會顯示「建立閘道」頁面。

  3. 在「選取 API」中,選取「選取 API」欄位中的「建立新的 API」
  4. 在「Display Name」(顯示名稱) 欄位中,輸入 API 的顯示名稱。
  5. 在「API ID」欄位中,輸入 API 的 ID。如需 API 命名指南,請參閱「API ID 規定」。
  6. (選用) 為 API 新增標籤。
  7. 在「API 設定」部分,選取「選取設定」欄位中的「建立新的 API 設定」
  8. 在「上傳 API 規格」欄位中,上傳 .yaml.json 檔案。如需 API 定義,請參閱 OpenAPI 2.0 和 OpenAPI 3.x 檔案格式。
  9. 在「Display Name」(顯示名稱) 欄位中,輸入 API 設定的顯示名稱。
  10. 在「選取服務帳戶」清單中,選取所需服務帳戶。API Gateway 會使用這個服務帳戶做為身分。
  11. (選用) 為 API 設定新增標籤。
  12. 在「閘道詳細資料」部分,輸入閘道的顯示名稱。
  13. 在「Location」(位置) 欄位中,選取要部署閘道的 Google Cloud 區域。
  14. (選用) 為 API Gateway 新增標籤。
  15. 按一下「建立閘道」
  16. 新建立的 API 會顯示在 API Gateway 首頁。

Google Cloud CLI

  1. 請利用下列指令傳回的專案 ID 進行驗證,以確保系統沒有將閘道建立在錯誤的專案中。

    gcloud config list project

    如要變更預設的專案,請執行下列指令,並將 PROJECT_ID 改成要建立服務的 Google Cloud 專案 ID:

    gcloud config set project PROJECT_ID
  2. 查看 gateway create 指令的說明:

    gcloud api-gateway gateways create --help
  3. 執行下列指令,將 API 設定部署至閘道:

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

    其中:

    • GATEWAY_ID 指定新閘道的 ID。如果閘道不存在,這項指令會自動建立該閘道。
    • API_ID 會指定與這個閘道相關聯的 API Gateway API ID。
    • CONFIG_ID 會指定部署至閘道的 API 設定 ID。建立閘道時,您必須指定 API 設定。
    • GCP_REGION 會指定已部署閘道的 Cloud 位置。

    gcloud CLI 會在建立閘道時,將資訊輸出至終端機。

  4. 成功完成後,您可以使用下列指令查看閘道詳細資料:

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

    這項指令會傳回下列內容:

    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'

    請記下 defaultHostname 屬性的值。這是閘道網址的主機名稱部分。如要存取部署至這個閘道的 API 設定,請使用以下格式的網址:

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

gcloud CLI 支援許多選項,包括 gcloud 參考資料中所述的選項。此外,建立 API Gateway 閘道時,您可以設定下列選項:

  • --async:立即將控制權傳回終端機,不必等待作業完成。
  • --display-name=NAME:指定閘道的顯示名稱,也就是 UI 中顯示的名稱。名稱不得包含空格。請改用連字號和底線。預設值為 GATEWAY_ID
  • --labels=KEY1=VALUE1,KEY2=VALUE2,...:指定與閘道相關聯的標籤。

列出閘道

本節說明如何查看 Google Cloud 專案中部署的所有 API Gateway 清單。

Google Cloud 控制台

在 Google Cloud 控制台中,依序前往「API Gateway」(API 閘道) >「Gateways」(閘道) 頁面。

前往「閘道」頁面

Google Cloud CLI

如要列出特定專案的閘道,請按照下列步驟操作:

gcloud api-gateway gateways list 

這項指令會傳回下列格式的輸出內容:

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

如要列出特定專案和區域的閘道:

gcloud api-gateway gateways list --location=GCP_REGION 

使用 filter 運算式列出與特定 API 相關聯的閘道:

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

或者,您也可以使用這個 filter,列出特定 API 設定的閘道:

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

使用區域和閘道 ID 取得閘道的詳細資訊,包括部署至閘道的 API 設定身分:

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

更新閘道

將閘道更新為:

  • 將其他 API 設定部署至閘道
  • 更新顯示名稱
  • 更新標籤

Google Cloud 控制台

請按照下列步驟更新 API Gateway 詳細資料:

  1. 前往 Google Cloud 控制台的「API Gateway」頁面。

    前往 API Gateway

  2. 按一下必要的 API。
  3. 按一下「閘道」分頁標籤。
  4. 按一下所需閘道。
  5. 按一下「編輯」
  6. 編輯「顯示名稱」或「標籤」
  7. 選取所需的「API 設定」,或按一下「建立新的 API 設定」,然後建立設定,如 這裡所示。
  8. 按一下「Update」
  9. 按一下 返回閘道清單頁面。
  10. 在閘道清單頁面中,您可以查看更新後的閘道。

Google Cloud CLI

使用下列 gcloud CLI 指令更新現有閘道,其中 UPDATE_OPTIONS 會替換為要更新的閘道選項旗標和值:

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

舉例來說,如要更新部署至閘道的 API 設定,請執行下列操作:

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

其中 NEW_CONFIG_ID 指定要部署至閘道的新 API 設定。

如需可用更新標記和引數的完整清單,請參閱 gcloud api-gateway gateways update 參考資料,或使用下列指令查看所有更新選項:

gcloud api-gateway gateways update --help

刪除閘道

本節說明如何刪除現有的 API Gateway。請按照下列步驟,從 Google Cloud 專案中永久移除閘道及其相關設定。

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,依序前往「API Gateway」(API 閘道) >「Gateways」(閘道) 頁面。

    前往「閘道」頁面

  2. 按一下「更多」,然後按一下「刪除」,即可刪除所選的 API Gateway。

Google Cloud CLI

使用下列 gcloud CLI 指令刪除現有閘道:

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

後續步驟