您正在查看 Apigee Edge 說明文件。
前往 Apigee X 說明文件。info
本範例說明如何搭配使用 Apigee Edge 和 Envoy 專用的 Apigee 轉接器。
必要條件
事前準備: |
---|
|
總覽
本範例說明如何搭配使用 Apigee Edge for Public Cloud 和 Apigee Adapter for Envoy。API Proxy 呼叫會透過 Envoy 以原生應用程式的形式執行,並透過 Edge 的 Apigee Remote Service 提供 API 管理服務。
下圖為 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 --mfa $MFA --username $USER --password $PASSWORD \ --organization $ORG --environment $ENV > config.yaml
其中
$MFA
是 Apigee 多重驗證授權權杖。 - 檢查
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 | gcr.io/distroless/base |
Ubuntu | google/apigee-envoy-adapter:v1.1.0-ubuntu |
搭配 BoringCrypto 的 Ubuntu | google/apigee-envoy-adapter:v1.1.0-boring |
舉例來說,如要透過掛載的磁碟機執行此映像檔,並使用本機 config.yaml
做為 /config.yaml
,請使用下列指令:
docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v1.1.0
建立設定檔範例
使用 apigee-remote-service-cli samples create
指令產生範例設定檔。
在本例中,您需要以下產生的檔案:
envoy-config.yaml
:HTTP 服務的部署設定。
如要產生樣本,請按照下列步驟操作:
- 前往
$CLI_HOME
目錄。 執行這個指令來產生檔案:
./apigee-remote-service-cli samples create --template native -c ./config.yaml
以下檔案會輸出至
./samples
目錄:ls samples envoy-config.yaml
詳情請參閱「Samples 指令」。
安裝並執行 Envoy Proxy
請按照下列步驟安裝及執行 Envoy Proxy:
- 下載 Envoy 二進位檔或建構該二進位檔,或使用 Docker。
- 使用先前為
httpbin.org
服務產生的範例設定檔,執行 Envoy:envoy -c $CLI_HOME/samples/envoy-config.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 金鑰」一文的說明設定 API 產品,配額限制就會設為每分鐘 5 個要求。請再試著呼叫
httpbin
服務幾次,以觸發配額。配額用盡時,系統會傳回 HTTP 狀態 403 錯誤。 - 在 Edge UI 中存取 Apigee 數據分析。依序前往「Analyze」>「API Metrics」>「API Proxy Performance」。
- 產生及使用 JWT 權杖來驗證 API 呼叫。
- 使用 CLI 管理、建立符記,以及控制繫結。如需 CLI 詳細資訊,請參閱參考資料。