設定 .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 的存取權。