您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
這個範例說明如何搭配使用 Apigee Edge 和 Apigee Adapter for Envoy。
必要條件
| 事前準備: |
|---|
|
|
總覽
本範例說明如何搭配使用 Apigee Adapter for Envoy 與 Apigee Edge for Public Cloud。API Proxy 呼叫會透過 Envoy 傳輸,而 Envoy 會以原生應用程式的形式執行,並透過 Apigee Remote Service for Envoy 提供 API 管理服務。
佈建 Apigee Edge
在這個步驟中,您將使用 Remote Service CLI,將 Apigee Adapter for Envoy 資產佈建至 Apigee Edge。佈建指令會將 API Proxy 部署至 Apigee Edge,並在 Apigee 上設定憑證,以及產生憑證,供遠端服務從系統安全連線至 Apigee。
- 前往
$CLI_HOME目錄:cd $CLI_HOME
- 建立下列環境變數。這些變數會做為佈建指令碼的參數:
export ORG=organization_nameexport ENV=environment_nameexport USER=your_apigee_usernameexport 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 distroless | google/apigee-envoy-adapter:v2.0.0 |
| Ubuntu | google/apigee-envoy-adapter:v2.0.0-ubuntu |
| Ubuntu with 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 Proxy:
- 下載 Envoy 二進位檔 或建構二進位檔, 或使用 Docker。
- 使用您先前為
httpbin.org服務產生的範例設定檔執行 Envoy:envoy -c ./samples/envoy-config.yaml
測試安裝結果
- 設定 API 產品並取得 API 金鑰,詳情請參閱「如何取得 API 金鑰」。
- 呼叫
httpbin服務,不需使用 API 金鑰: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_KEYcurl -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" } }
後續步驟
API 流量httpbin現在由 Apigee 管理。以下列舉幾個建議您探索及試用的功能:
- 如果您已按照「如何取得 API 金鑰」一文的說明設定 API 產品,配額上限會設為每分鐘 5 項要求。請嘗試多呼叫幾次
httpbin服務,觸發配額。配額用盡時,系統會傳回 HTTP 狀態 403 錯誤。 - 在 Edge UI 中存取 Apigee Analytics。依序前往「Analyze」>「API Metrics」>「API Proxy Performance」。
- 產生及使用 JWT 權杖,驗證 API 呼叫。
- 使用 CLI 管理、建立權杖及控管繫結。如需 CLI 詳細資料,請參閱「參考資料」。