您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。 資訊
這個範例說明如何將 Apigee Adapter for Envoy 與 Apigee Edge 搭配使用。
必備條件
事前準備: |
---|
總覽
這個範例說明如何將 Envoy 適用的 Apigee Adapter for Envoy 與公用雲端的 Apigee Edge 搭配使用。API Proxy 呼叫透過 Envoy 以原生應用程式的形式透過 Edge 執行,並透過 Apigee Remote Service for Envoy 提供 API 管理服務。
佈建 Apigee Edge
在這個步驟中,您將使用遠端服務 CLI,將 Apigee Adapter for Envoy 資產佈建至 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 的要求。
執行 Apigee Remote Service for Envoy 服務
您可以將遠端服務做為原生二進位檔執行,或在 Docker 上執行。
原生執行服務
使用佈建指令輸出的設定檔,執行服務二進位檔:
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
在 Docker 上執行服務
Docker 映像檔是透過發布標記發布。如要進行安裝,請使用最新版本。共有三種圖片變化版本可供選擇:
內容多變 | 映像檔 |
---|---|
Google 不發行 | google/apigee-envoy-adapter:v2.0.0 |
Ubuntu | google/apigee-envoy-adapter:v2.0.0-ubuntu |
含有 Boring Crypto 的 Ubuntu | 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
檔案。
詳情請參閱範例指令。
安裝並執行 Envoy Proxy
請按照下列步驟安裝並執行 Envoy Proxy:
- 下載 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 數據分析。依序前往「Analyze」>「API Metrics」>「API Proxy Performance」。
- 產生並使用 JWT 權杖來驗證 API 呼叫。
- 使用 CLI 管理、建立權杖及控管繫結。如要進一步瞭解 CLI,請參閱參考資料。