從您的網域名稱提供 API

本頁面說明如何使用您的自訂網域 (如 example.com) 提供 API。

除了使用自己的網域名稱之外,另一種方法是使用 Google 管理的網域名稱。詳情請參閱使用 Google 所管理的網域

事前準備

將 API 專案設定為使用您的網域名稱

請按照相關分頁的操作說明執行。

App Engine

如要將 API 專案設定為使用通過驗證的網域,請按照為應用程式新增自訂網域一文中提供的操作說明進行。

Compute Engine

如需使用 Compute Engine 執行個體提供 API,建議在整個執行個體群組使用一個負載平衡器。您需要保留網域名稱的外部 IP 位址,並將該外部 IP 位址用於負載平衡器。

如要使用網域名稱提供 API:

  1. 您的專案至少需保留一個靜態外部 IP 位址:

    前往「外部 IP 位址」頁面

    1. 為預留的 IP 位址指定名稱
    2. 在「Type」(類型) 部分,按一下 [Global] (全域)
    3. 在「Attached to」(已附加至) 部分,按一下「None」(無)。稍後您可以將 IP 位址附加至負載平衡器。
  2. 進入您的網域供應商帳戶並編輯網域設定。您必須建立包含您 API 名稱的「A 記錄」,例如 myapi.example.com (其中資料欄位包含外部 IP 位址)
  3. 建立一個執行個體群組,將執行您的 API 和可擴充服務 Proxy (ESP) 的執行個體列入其中:

    前往「建立新的執行個體群組」(Create a New Instance group) 頁面

    1. 為群組命名,並新增說明。
    2. 從「Zone」(區域) 清單中,按一下 API 執行個體使用的區域。
    3. 在「Instance definition」(執行個體定義) 清單中,按一下 [Select existing instances] (選取現有的執行個體)
    4. 在「VM Instances」(VM 執行個體) 欄位中,新增執行 API 的 VM 執行個體。
    5. 按一下 [建立]。
  4. 建立並設定 HTTP(S) 負載平衡器:

    前往「建立新 HTTP(S) 負載平衡器」(Create a New HTTP(S) load balancer) 頁面

    1. 依序點選 [Define a Backend Service] (定義後端服務) > [Create or select a backend service] (建立或選取後端服務)
      後端設定
    2. 為這個後端服務設定命名並新增說明。
    3. 在「Protocol」欄位中,選取要透過該負載平衡器支援的通訊協定:HTTPHTTPS
    4. 在「Instance group」(執行個體群組) 清單中,按一下執行個體群組。
    5. 在「Port Numbers」(通訊埠編號) 欄位中,輸入 8080
    6. 按一下 [Health check] (健康狀態檢查),設定健康狀態檢查:
      • 輸入健康狀態檢查設定的名稱。
      • 指派通訊埠 8080
      • 如要接受剩餘的預設值,請按一下 [Save] (儲存)
    7. 暫時接受其餘設定的預設值。 之後您可以視需要變更,例如新增其他通訊埠。
    8. 您不需要在「Host and path rules」(主機與路徑規則) 中設定任何項目;您可以使用預設「Any unmatched」(任何不相符的項目)篩選器,將所有項目轉送至後端 API。也就是說,系統會使用上述步驟定義的通訊埠 8080 (預設通訊埠),將所有傳入負載平衡器的流量導向 API。
    9. 按一下「前端設定」
      前端設定
      • 在「Protocol」欄位中,選取要透過該負載平衡器支援的通訊協定:HTTPHTTPS
      • 在「IP」 清單中,按一下您之前建立的外部 IP 位址。
      • 針對 HTTPS 通訊協定,您需要使用安全資料傳輸層 (SSL)。在「Certificate」(憑證) 清單中,按一下您想要的憑證。
      • 或者,如果您想支援其他通訊協定,請按一下 [Add frontend IP and port] (新增前端 IP 與通訊埠),指定通訊協定、相同的外部 IP 位址和不同的通訊埠。
    10. 如要建立已完整設定的負載平衡器,請按一下「建立」。若無法使用「Create」按鈕,請檢查您剛剛設定的元件:每個設定元件旁都應出現一個勾號。若未出現勾號,表示您尚未完成該項設定。
    11. DNS 變更生效後,您就可以使用負載平衡器將要求傳送至您的 API。

GKE

若要透過 Google Kubernetes Engine (GKE) 網域提供 API,需將網域 DNS 設定設為回傳的外部 IP 位址,將 ESP 公告為服務。請注意,GKE 會自動執行負載平衡。

如要將 API 公告為服務:

  1. 若您尚未針對 API 後端設定 Kubernetes 服務,請先完成此步驟。使用與以下內容相似的內容,建立服務設定檔 service.yaml
                apiVersion: v1
                kind: Service
                metadata:
                  name: echo
                spec:
                  ports:
                  - port: 80
                    targetPort: 8081
                    protocol: TCP
                  selector:
                    app: echo-app
                  type: LoadBalancer
                  
    • 根據您的後端標籤變更 selector 標籤 (在此範例中是 app: echo-app)
    • 確認 targetPort 與您在 API 後端設定的 ESP 所使用的通訊埠一致。ESP 預設使用通訊埠 8081
  2. 部署 Kubernetes 服務:
                kubectl apply -f service.yaml
                
  3. 查看您公告服務所指派的外部 IP 位址:
                kubectl get services
                
    輸出內容會顯示類似下列的 EXTERNAL-IP 位址:
                NAME         CLUSTER-IP     EXTERNAL-IP      PORT(S)    AGE
                hello-node   10.X.XXX.202   10X.XXX.XX.123   8080/TCP   1m
          
  4. 將產生的外部 IP 從臨時 IP 變更為靜態 IP。

    前往「外部 IP 位址」頁面

    1. 從清單中選取外部 IP 位址。
    2. 在「Type」(類型) 清單中,按一下 [Static] (靜態)
  5. 進入您的網域供應商帳戶並編輯網域設定。您必須建立包含您 API 名稱的「A 記錄」,例如 myapi.example.com,且其資料欄位中包含外部 IP 位址。

後續步驟