您目前查看的是 Apigee Edge 說明文件。
參閱 Apigee X說明文件。 資訊
本範例說明如何搭配使用 Apigee Edge 和 Apigee Adapter for Envoy。
必要條件
事前準備: |
---|
|
總覽
本範例說明如何搭配使用 Apigee Edge for Public Cloud 和 Apigee Adapter for Envoy。API Proxy 呼叫會透過 Envoy 流向以原生應用程式執行,Edge 則透過 Apigee Remote Service for Envoy 提供 API 管理服務。
佈建 Apigee Edge
在這個步驟中,您將使用遠端服務 CLI 為 Envoy 資產佈建 Apigee 轉接器,並將其佈建至 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:
$CLI_HOME/apigee-remote-service-cli provision --legacy --mfa $MFA \ --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml
如果您要升級,請使用此指令搭配
--force-proxy-install
標記,為 Apigee 進行佈建:$CLI_HOME/apigee-remote-service-cli provision --legacy --force-proxy-install --mfa $MFA \ --username $USER --password $PASSWORD --organization $ORG --environment $ENV > config.yaml
- 檢查
config.yaml
檔案的內容。內容應如下所示:# Configuration for apigee-remote-service-envoy (platform: SaaS) # generated by apigee-remote-service-cli provision on 2020-08-26 09:43:41 apiVersion: v1 kind: ConfigMap metadata: name: apigee-remote-service-envoy namespace: apigee data: config.yaml: | tenant: internal_api: https://istioservices.apigee.net/edgemicro remote_service_api: https://my-username-test.apigee.net/remote-service org_name: my-org env_name: my-env key: f7e09c32f827cab87b8ce43842ed8467ffd2c58e6f795241e38fe7b1aec7664 secret: 1cb5cca00dfb433cb80b32837451fce4bf694633cddbb73d704517e12b35e75 ...
金鑰和密鑰值會用於驗證從遠端服務 Proxy 傳送至 Apigee Edge 的要求。
為 Envoy 服務執行 Apigee 遠端服務
您可以以原生二進位檔或 Docker 執行遠端服務。
原生執行服務
使用佈建指令輸出的設定檔,執行服務二進位檔:
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
在 Docker 上執行服務
Docker 映像檔會搭配版本標記發布。請使用最新版本進行安裝。有三種圖片變化版本可供選擇:
內容多變 | 圖片 |
---|---|
Google distroless | google/apigee-envoy-adapter:v2.0.0 |
Ubuntu | google/apigee-envoy-adapter:v2.0.0-ubuntu |
Ubuntu 搭配 Boring Crypto | google/apigee-envoy-adapter:v2.0.0-boring |
舉例來說,如要透過磁碟區掛接,將本機 config.yaml
做為 /config.yaml
執行刮刮卡,請使用下列指令:
docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v2.0.0
建立設定檔範例
使用 CLI 產生 Envoy 設定檔:
- 確認您位於
$ENVOY_HOME
目錄。 - 列出可用的設定範本:
$CLI_HOME/apigee-remote-service-cli samples templates
執行範例指令。針對 TEMPLATE,請替換為支援的 Envoy 範本:
$CLI_HOME/apigee-remote-service-cli samples create --template TEMPLATE -c ./config.yaml
這個指令會建立
./samples/envoy-config.yaml
檔案。
詳情請參閱「Samples 指令」。
安裝並執行 Envoy Proxy
請按照下列步驟安裝及執行 Envoy 代理程式:
- 下載 Envoy 二進位檔或建構該二進位檔,或使用 Docker。
- 使用先前為
httpbin.org
服務產生的範例設定檔,執行 Envoy:envoy -c ./samples/envoy-config.yaml
測試安裝結果
- 按照「如何取得 API 金鑰」一文所述,設定 API 產品並取得 API 金鑰。
- 在沒有 API 金鑰的情況下呼叫
httpbin
服務:curl -i http://localhost:8080/headers -H "HOST:httpbin.org"
這項服務目前是由 Apigee 管理,由於您並未提供 API 金鑰,呼叫會傳回下列錯誤。
curl -i http://localhost:8080/headers -H "HOST:httpbin.org" 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 呼叫:
export APIKEY=YOUR_API_KEY
curl -i http://localhost:8080/headers \ -H "HOST:httpbin.org" -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 金鑰」一文的說明設定 API 產品,配額限制就會設為每分鐘 5 個要求。請再試著呼叫
httpbin
服務幾次,以觸發配額。配額用盡時,系統會傳回 HTTP 狀態 403 錯誤。 - 在 Edge UI 中存取 Apigee Analytics。依序前往「Analyze」>「API Metrics」>「API Proxy Performance」。
- 產生及使用 JWT 權杖來驗證 API 呼叫。
- 使用 CLI 管理、建立符記,以及控制繫結。如需 CLI 詳細資料,請參閱參考資料。