查看 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 整合的基本架構:
Envoy Proxy 和遠端服務在本機執行。 Envoy 會處理目標服務傳入及傳出的 API 流量,並與 遠端服務。遠端服務也會透過 與 Apigee Edge Cloud 搭配使用,擷取 API 產品和 Proxy 資訊
佈建 Apigee Edge
在這個步驟中,您將使用遠端服務 CLI 來佈建 Envoy 資產的 Apigee Adapter Apigee Edge佈建指令會將 API Proxy 部署至 Apigee Edge 並設定憑證 Apigee 並產生遠端服務要使用的憑證 將您的系統連線至 Apigee
- 前往
$CLI_HOME
目錄:cd $CLI_HOME
- 建立下列環境變數。這些變數的用途是
參數新增至佈建指令碼:
敬上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 密碼。 - 執行下列指令,在 Apigee Edge 上佈建遠端服務 Proxy:
./apigee-remote-service-cli provision --legacy --username $USER --password $PASSWORD \ --organization $ORG --environment $ENV > config.yaml
- 檢查
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:
- 下載 Envoy 二進位檔 或建構模型 或使用 Docker。
- 使用針對
httpbin.org
服務設定的範例設定檔執行 Envoy: 敬上envoy -c $REMOTE_SERVICE_HOME/samples/native/envoy-httpbin.yaml
測試安裝結果
- 呼叫
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
- 設定 API 產品並取得 API 金鑰,方法如下: 如何取得 API 金鑰。
- 使用金鑰發出 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 詳細資料,請參閱參考資料。