建立及部署新的 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 代理程式的環境。本節假設環境名稱為「test」。您已在步驟 5:新增環境中建立至少一個環境。

    混合型 UI 會顯示該環境的 API Proxy 清單。如果您尚未建立任何 Proxy,清單會是空白的。

  4. 按一下右上方的「+ Proxy」。API Proxy 精靈會開始執行。
  5. 選取「Reverse proxy」(反向 Proxy) (最常見),然後點選「Next」

    系統會顯示「Proxy details」檢視畫面。

  6. 按照下列設定設定 Proxy:
    • Proxy Name:輸入「myproxy」。本節的其餘步驟假設這是您的 Proxy ID。
    • Proxy Base Path:自動設為「/myproxy」。「Proxy Base Path」是用於向 API 提出要求的網址的一部分。Edge 會使用網址比對並轉送傳入的要求,將其轉送至適當的 API Proxy。
    • (選用) 說明:輸入新 API Proxy 的說明,例如「使用簡易 Proxy 測試 Apigee 混合式服務」。
    • 目標 (現有 API):輸入「https://mocktarget.apigee.net」。這會定義 Apigee 在對 API Proxy 提出要求時,要叫用的目標網址。mocktarget 服務由 Apigee 代管,並傳回簡單資料。不需要 API 金鑰或存取權杖。

    API Proxy 的詳細資料應如下所示:

  7. 點選「下一步」
  8. 在「政策」畫面中,選取「傳送 (不需授權)」做為安全選項。
  9. 點選「下一步」
  10. 在「摘要」畫面中,按一下「建立」

    Hybrid 會產生 Proxy (有時稱為「Proxy 套件」):

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

    Hybrid 會顯示「Proxies」檢視畫面,列出 API Proxy 清單。新 Proxy 應位於清單頂端,並顯示灰色狀態指標,表示尚未部署。

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

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

如何在混合式 UI 中部署 API Proxy:

  1. 在混合式 UI 中,依序選取「Develop」>「API Proxies」

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

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

  2. 按一下「myproxy」Proxy。

    UI 會顯示該 Proxy 的「API Proxy 總覽」分頁。

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

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

    下拉式清單只會顯示「1」和「Undeploy」。

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

    UI 會提示您確認部署作業:

  5. 按一下「Deploy」

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

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

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

3. 呼叫 API Proxy

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

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

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

  1. 匯出輸入 IP:
    export INGRESS_IP=$(kubectl -n istio-system get service \
      istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
  2. 匯出安全入口通訊埠編號:
    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 記錄以指向外部入口 IP,請按照下列步驟操作:

  1. 將輸入端的外部 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!