建立及部署新的 API Proxy

您已設定 Google Cloud 和混合式 UI,並安裝及設定執行階段,現在可以瞭解這些項目如何搭配運作。

本節將逐步說明下列事項:

  1. 使用 API Proxy 精靈,在 Apigee UI 中建立新的 API Proxy
  2. 使用 UI 將新 Proxy 部署至叢集

1. 使用混合式 UI 建立新的 API Proxy

本節說明如何使用 API Proxy 精靈,在 UI 中建立新的 API Proxy。

如要使用 API Proxy 精靈建立簡單的 API Proxy,請按照下列步驟操作:

  1. 在瀏覽器中開啟 Apigee UI
  2. 在主要檢視畫面中,依序選取「Develop」>「API Proxies」
  3. 從「環境」下拉式清單中,選取要建立新 API Proxy 的環境。本節假設環境名稱為「test」。您已在「步驟 5:新增環境」中建立至少一個環境。

    混合式使用者介面會顯示該環境的 API Proxy 清單。如果您尚未建立任何 Proxy,清單會是空白的。

  4. 按一下右上方的「+Proxy」。API Proxy 精靈會啟動。
  5. 選取「反向 Proxy」 (最常見),然後點選「下一步」

    系統隨即會顯示「Proxy details」(Proxy 詳細資料) 檢視畫面。

  6. 透過下列設定設定 Proxy:
    • Proxy 名稱:輸入「myproxy」。本節的其餘步驟會假設這是您 Proxy 的 ID。
    • Proxy 底層路徑:系統會自動設為「/myproxy」。Proxy Base Path 是用來向 API 發出要求的網址的一部分。Edge 會使用這個網址比對傳入要求,並將要求轉送至適當的 API Proxy。
    • (選用) 說明:輸入新 API Proxy 的說明,例如「Testing Apigee hybrid with a simple proxy」。
    • 目標 (現有 API):輸入「https://mocktarget.apigee.net」。這會定義 Apigee 在對 API Proxy 發出要求時叫用的目標網址。mocktarget 服務託管於 Apigee,並會傳回簡單的資料。不需要 API 金鑰或存取權杖。

    API 代理程式的詳細資料應如下所示:

  7. 點選「下一步」
  8. 在「政策」畫面中,選取「Pass through (no authorization)」(直接傳遞 (不授權)) 做為安全性選項。
  9. 點選「下一步」
  10. 在「摘要」畫面中,按一下「建立」

    Hybrid 會產生 Proxy (有時稱為「Proxy 組合」):

  11. 按一下「前往 Proxy 清單」

    Hybrid 會顯示「Proxy」檢視畫面,其中列出 API Proxy。新的 Proxy 應會顯示在清單頂端,並帶有灰色狀態指標,表示尚未部署。

2. 使用混合式 UI 將 Proxy 部署至叢集

建立新 Proxy 後,您必須部署 Proxy 才能試用。本節說明如何使用混合式 UI 部署新 Proxy。

如要在混合式使用者介面中部署 API Proxy,請按照下列步驟操作:

  1. 在混合式 UI 中,依序選取「開發」>「API Proxy」

    請務必選取「測試」環境。

    使用者介面會在 Proxy 清單中顯示新的 Proxy:

  2. 按一下「myproxy」Proxy。

    使用者介面會顯示該 Proxy 的「API Proxy 總覽」分頁。

    請注意,「部署」下方的「修訂版本」欄會顯示「未部署」。

  3. 在「修訂版本」欄中,展開下拉式選取器,選擇要部署的修訂版本。

    下拉式清單只會顯示「1」和「取消部署」。

  4. 從下拉式清單中選取要部署的修訂版本「1」。

    使用者介面會提示您確認部署作業:

  5. 按一下「Deploy」(部署)

    使用者介面會開始將新 Proxy 的修訂版本 1 部署到叢集。

    請注意,部署作業不會立即完成。Hybrid 的「最終一致性」部署模型表示,新部署作業會在短時間內推出至叢集,而不是立即推出。

雖然有幾種方法可在 UI 中檢查 Proxy 的部署狀態,但接下來的兩個步驟會說明如何呼叫您剛部署的 API Proxy,以及如何透過呼叫 Apigee API 檢查部署狀態。

3. 呼叫 API Proxy

請根據您是否可以更新用於建立環境群組的主機名稱 DNS 記錄,按照下列步驟操作。

如果無法更新主機名稱的 DNS

如果環境群組主機名稱未註冊,或您無法更新其 DNS 記錄,請按照下列步驟操作。在這些步驟中,您會取得 Ingress IP,並在 cURL 呼叫中直接使用,加上 --resolve 旗標:

  1. 匯出 Ingress IP:
    export INGRESS_IP=$(kubectl -n istio-system get service \
      istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
  2. 匯出安全 Ingress 通訊埠編號:
    export SECURE_INGRESS_PORT=$(kubectl -n istio-system get \
      service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].port}')
  3. 環境群組的主機別名匯出至變數:
    export HOSTALIAS=your_host_alias
  4. 呼叫 API Proxy。您可以使用 cURL 的 --resolve 旗標直接指定連入 IP:
    curl  -H Host:$HOSTALIAS --resolve \
      $HOSTALIAS:$SECURE_INGRESS_PORT:$INGRESS_IP  \
      https://$HOSTALIAS:$SECURE_INGRESS_PORT/myproxy -k

如果您可以更新主機名稱的 DNS

如果您在建立環境群組時使用的主機名稱已註冊,且可以更新其 DNS 記錄,指向外部 Ingress IP,請按照下列步驟操作:

  1. 將 Ingress 的外部 IP 匯出至變數:
    export INGRESS_IP=$(kubectl -n istio-system get service \
      istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
  2. 確認變數是否包含 IP 位址。例如:
    echo $INGRESS_IP
    34.118.196.202
  3. 請使用這個 IP 位址,在註冊機構或 DNS 供應商更新 DNS 記錄 (通常是 A 記錄或 CNAME 記錄)。DNS 記錄變更最多可能需要 1 小時才會生效。
  4. 環境群組的主機別名匯出至變數:
    export HOSTALIAS=your_host_alias
  5. 呼叫 API Proxy:
    curl -k https://$HOSTALIAS/myproxy

    例如:

    curl -v -k https://apitest.acme.com/myproxy

    如果呼叫成功,您會看到下列輸出內容:

    Hello, Guest!