搭配 Apigee Edge 使用 Envoy 適用的 Apigee 轉接程式

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

這個範例說明如何搭配使用 Apigee Adapter for Envoy 與 Apigee Edge。

必要條件

事前準備:

總覽

本範例說明如何搭配使用 Apigee Adapter for Envoy 搭配公用雲端的 Apigee Edge。API (應用程式介面) Proxy 呼叫流經 Envoy 為原生應用程式,透過 Edge 提供 API 執行 支援 Envoy 的 Apigee Remote Service。

下圖顯示 Apigee Edge 整合的基本架構:

概略
    以原生方式與 Apigee Edge Cloud 通訊的 Envoy Adapter 檢視畫面,
    管理層、執行階段層和 GCP 服務

Envoy Proxy 和遠端服務在本機執行。 Envoy 會處理目標服務傳入及傳出的 API 流量,並與 遠端服務。遠端服務也會透過 與 Apigee Edge Cloud 搭配使用,擷取 API 產品和 Proxy 資訊

佈建 Apigee Edge

在這個步驟中,您將使用遠端服務 CLI 來佈建 Envoy 資產的 Apigee Adapter Apigee Edge佈建指令會將 API Proxy 部署至 Apigee Edge 並設定憑證 Apigee 並產生遠端服務要使用的憑證 將您的系統連線至 Apigee

  1. 前往 $CLI_HOME 目錄:
    cd $CLI_HOME
  2. 建立下列環境變數。這些變數的用途是 參數新增至佈建指令碼:
    export ORG=organization_name
    export ENV=environment_name
    export USER=your_apigee_username
    export PASSWORD=your_apigee_password
    敬上

    其中:

    變數 說明
    organization_name 您的 Apigee 機構名稱。
    environment_name 貴機構中環境的名稱。
    your_apigee_username 您的 Apigee 帳戶使用者名稱。使用者名稱通常是電子郵件地址。
    your_apigee_password 您的 Apigee 密碼。
  3. 執行下列指令,在 Apigee Edge 上佈建遠端服務 Proxy:
    ./apigee-remote-service-cli provision --legacy --username $USER --password $PASSWORD \
        --organization $ORG --environment $ENV > config.yaml
  4. 檢查 config.yaml 檔案的內容。如下所示:
    # Configuration for apigee-remote-service-envoy
    # generated by apigee-remote-service-cli provision on 2020-06-06 11:55:52
    tenant:
      internal_api: https://istioservices.apigee.net/edgemicro
      remote_service_api: https://my-org-test.apigee.net/remote-service
      org_name: my-org
      env_name: test
      key: ecaa56d4101701cb877670909f3614219091b00ce559842e1b584a34b7c6a3e4
      secret: 0c66638bb865c1e13019990ea42da66b097d02a6ba333f050fb27cef20259d98

    金鑰和密鑰值會用來驗證遠端服務 Proxy 發出的要求 Apigee Edge

執行 Apigee Remote Service for Envoy 服務

您可以透過原生二進位檔形式執行遠端服務 或是在 Docker 中執行

以原生方式執行服務

使用佈建指令輸出的設定檔執行服務二進位檔:

$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml

在 Docker 上執行服務

Docker 映像檔以發布標記發布。如要執行這項安裝作業,請使用最新版本。有 有三種圖片變化版本可供選擇:

內容多變 圖片
刮痕 google/apigee-envoy-adapter:v1.0.0
Ubuntu google/apigee-envoy-adapter:v1.0.0-ubuntu
Ubuntu 搭配 Boring Crypto google/apigee-envoy-adapter:v1.0.0-boring

舉例來說,如要使用本機 config.yaml 執行刮刮卡,則可用值為 /config.yaml 執行下列指令:

docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v1.0.0

安裝並執行 Envoy Proxy

請按照下列步驟安裝及執行 Envoy Proxy:

  1. 下載 Envoy 二進位檔建構模型 或使用 Docker
  2. 使用針對 httpbin.org 服務設定的範例設定檔執行 Envoy:
    envoy -c $REMOTE_SERVICE_HOME/samples/native/envoy-httpbin.yaml
    敬上

測試安裝結果

  1. 呼叫 httpbin 服務:
    curl -i http://localhost:8080/httpbin/headers
    

    這項服務目前是由 Apigee 管理,而且您未提供 API 金鑰。 呼叫會傳回下列錯誤。

    curl -i http://localhost:8080/httpbin/headers
    HTTP/1.1 403 Forbidden
    date: Tue, 12 May 2020 17:51:36 GMT
    server: envoy
    content-length: 0
    x-envoy-upstream-service-time: 11
  2. 設定 API 產品並取得 API 金鑰,方法如下: 如何取得 API 金鑰
  3. 使用金鑰發出 API 呼叫:
    export APIKEY=YOUR_API_KEY
    curl -i http://localhost:8080/httpbin/headers -H "x-api-key: $APIKEY"

    呼叫應該會成功並顯示 200 狀態,並在回應中傳回標頭清單。 例如:

    curl -i httpbin.default.svc.cluster.local/headers -H "x-api-key: kyOTalNNLMPfOSy6rnVeclmVSL6pA2zS"
    HTTP/1.1 200 OK
    server: envoy
    date: Tue, 12 May 2020 17:55:34 GMT
    content-type: application/json
    content-length: 828
    access-control-allow-origin: *
    access-control-allow-credentials: true
    x-envoy-upstream-service-time: 301
    
    {
      "headers": {
        "Accept": "*/*",
        "Content-Length": "0",
        "Host": "httpbin.default.svc.cluster.local",
        "User-Agent": "curl/7.70.0-DEV",
        "X-Api-Key": "kyOTalNNLMPfOSy6rneclmVSL6pA2zS",
        "X-Apigee-Accesstoken": "",
        "X-Apigee-Api": "httpbin.default.svc.cluster.local",
        "X-Apigee-Apiproducts": "httpbin",
        "X-Apigee-Application": "httpbin",
        "X-Apigee-Authorized": "true",
        "X-Apigee-Clientid": "kyOTalNNLMPfOSy6rVeclmVSL6pA2zS",
        "X-Apigee-Developeremail": "user@example.com",
        "X-Apigee-Environment": "test",
        "X-Apigee-Organization": "my-org",
        "X-Apigee-Scope": "",
        "X-B3-Parentspanid": "1476f9a2329bbdfa",
        "X-B3-Sampled": "0",
        "X-B3-Spanid": "1ad5c19bfb4bc96f",
        "X-B3-Traceid": "6f329a34e8ca07811476f9a2329bbdfa"
      }
    }

後續步驟

傳送至 httpbin 服務的 API 流量現在是由 Apigee 管理。以下 以下提供一些可探索和嘗試的功能:

  • 如果您已按照 如何取得 API 金鑰、 配額限制設定為每分鐘 5 次要求。請嘗試呼叫「httpbin」服務 再幾次觸發配額當您超出配額時,系統會顯示以下錯誤訊息:
    HTTP/1.1 429 Too Many Requests
  • 在 Edge UI 中存取 Apigee 數據分析。前往「分析」>「API 指標 >API (應用程式介面) Proxy 效能
  • 產生並使用 JWT 權杖來驗證 API 呼叫。
  • 使用 CLI 管理、建立權杖及控管繫結。如需 CLI 詳細資料,請參閱參考資料