設定 .proto
檔案和 gRPC API 設定檔後,請進行部署,讓 Cloud Endpoints 取得管理 API 所需的資訊。如要部署 Endpoints 設定,請使用 gcloud
endpoints services deploy
指令。這個指令使用了服務基礎架構,也就是 Google 的基礎服務平台。Endpoints 和其他服務都是使用這個基礎架構來建立和管理 API 及服務。本頁面說明如何將您的設定檔部署到 Endpoints。
必要條件
本頁假設您已經:
建立 Google Cloud專案,而且具備編輯者或擁有者角色。初次部署之後,您可以授予限制更嚴格的服務設定編輯者角色。詳情請參閱「授予及撤銷 API 的存取權」。
設定端點,包括:
如果您使用自訂網域名稱 (例如
example.com
),則必須先驗證網域名稱,才可以部署 gRPC 設定檔。
準備 Google Cloud CLI 以進行部署
您可以使用 gcloud
指令列工具部署設定。如要進一步瞭解指令,請參閱
gcloud 參考資料。
準備部署:
- 安裝並初始化 gcloud CLI。
- 更新 gcloud CLI:
gcloud components update
- 確認 gcloud CLI 已獲授權,可存取您的資料和服務:
gcloud auth login
系統將開啟新的瀏覽器分頁,並提示您選擇一個帳戶。
- 設定預設專案。將
[YOUR-PROJECT-ID]
替換為您的 GCP 專案 IDgcloud config set project [YOUR-PROJECT-ID]
- 如果您要將 API 後端部署到 Kubernetes 或 Kubernetes Engine,請透過以下指令取得新的使用者憑證,以用於應用程式預設憑證。您需要使用者憑證才能對
kubectl
進行授權。 系統將開啟新的瀏覽器分頁,並提示您選擇一個帳戶。gcloud auth application-default login
部署設定檔
- 確認您所在的目錄有
api_descriptor.pb
和api_config.yaml
檔案。 - 確認
gcloud
指令列工具目前使用的預設專案,就是您要部署 Endpoints 設定的 Google Cloud 專案。請利用下列指令傳回的專案 ID 進行驗證,以確保系統沒有將服務建立在錯誤的專案中。gcloud config list project
如要變更預設的專案,請執行下列指令:
gcloud config set project YOUR_PROJECT_ID
- 使用 Google Cloud CLI 部署
proto descriptor
檔案和設定檔:gcloud endpoints services deploy api_descriptor.pb api_config.yaml
Service Management 在建立並設定服務時,會把資訊輸出到終端機。部署完成後,您將看到類似以下的訊息:
Service Configuration [CONFIG_ID] uploaded for service [bookstore.endpoints.example-project.cloud.goog]
CONFIG_ID 是部署作業建立的 Endpoints 服務設定 ID。例如:
Service Configuration [2017-02-13r0] uploaded for service [bookstore.endpoints.example-project.cloud.goog]
在上方範例中,
2017-02-13r0
是服務設定 ID,bookstore.endpoints.example-project.cloud.goog
則是服務名稱。服務設定 ID 是由一個日期戳記和一個修訂版本編號所組成。如果您在同一天再次部署 Endpoints 設定,服務設定 ID 中的修訂編號將會增加。
如果服務的設定位於多個 YAML 檔案中,您可以將檔案全部傳送至 deploy
指令。例如,Bookstore 的基本設定在 api_config.yaml
中,但如果要替此服務啟用 HTTP 轉碼,您也可以部署包含其他轉碼功能相關設定的 api_config_http.yaml
:
gcloud endpoints services deploy api_descriptor.pb api_config.yaml api_config_http.yaml
請注意,如果您的 YAML 檔案中存在衝突值,則最後一個指定檔案中的值會覆寫其他檔案中的值。您可以在設定 gRPC 服務中,進一步瞭解 Endpoints 如何合併多個 YAML 檔案。
如果您收到錯誤訊息,請參閱排解 Endpoints 設定部署問題以瞭解如何排解錯誤。
重新部署
每次您變更 .proto
或服務設定 YAML 檔案中的某些內容後,請再次部署檔案,可擴充服務 Proxy (ESP) 才能取得您 API 服務設定的最新版本。如果您先前部署 ESP 時將 rollout
選項設為 managed
,則無須重新啟動或重新部署 ESP。rollout=managed
選項可將 ESP 設為使用最新部署的服務設定。指定此選項時,在您部署新服務設定後 5 分鐘內,ESP 會偵測到變更並自動開始使用新設定。建議您指定此選項而非讓 ESP 使用特定的設定 ID。
完成初始的 Endpoints 設定部署後,您可以將角色授予使用者、服務帳戶或群組,讓他們可以重新部署 Endpoints 設定。詳情請參閱授予及撤銷 API 的存取權。