ここに表示されているのは Apigee Edge のドキュメントです。
Go to the
Apigee X のドキュメントに移動します。 info
この例では、Apigee Edge で Apigee Adapter for Envoy を使用する方法を示します。
前提条件
| 始める前に: |
|---|
|
|
概要
この例では、Apigee Edge for Public Cloud で Apigee Adapter for Envoy を使用する方法について説明します。API プロキシ呼び出しは、ネイティブ アプリケーションとして実行される Envoy を経由します。Edge は、Apigee Remote Service for Envoy を介して API 管理サービスを提供します。
次の図は、Apigee Edge インテグレーションの基本アーキテクチャを示しています。

Envoy プロキシと Remote Service はローカルで実行されています。 Envoy は対象のサービスとの間の API トラフィックを処理し、 Remote Service と通信します。Remote Service は、Apigee Edge Cloud とも通信して、API プロダクトとプロキシ情報を取得します。
Apigee Edge をプロビジョニングする
このステップでは、Remote Service CLI を使用して Apigee Edge に Apigee Adapter for Envoy アセット をプロビジョニングします。プロビジョニング コマンドは、API プロキシを Apigee Edge にデプロイし、 Apigee に証明書を設定して、Remote Service がシステムから 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 にリモート サービス プロキシをプロビジョニングします:
./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
キーとシークレットの値は、Remote Service Proxy から Apigee Edge へのリクエストを検証するために使用されます。
Apigee Remote Service for Envoy サービスを実行する
リモート サービスは、ネイティブ バイナリとして実行することも、Docker で実行することもできます。
サービスをネイティブで実行する
プロビジョニング コマンドから出力された構成ファイルを使用して、サービス バイナリを実行します。
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
Docker でサービスを実行する
Docker イメージはリリースタグ付きで公開されます。このインストールでは、最新バージョンを使用してください。次の 3 つのイメージのバリエーションから選択できます。
| バリエーション | 画像 |
|---|---|
| Google distroless | gcr.io/distroless/base |
| Ubuntu | google/apigee-envoy-adapter:v1.1.0-ubuntu |
| Boring Crypto を含む 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
詳しくは、サンプル コマンドをご覧ください。
Envoy プロキシをインストールして実行する
Envoy プロキシをインストールして実行する手順は次のとおりです。
- 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_KEYcurl -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 プロダクトを構成した場合、割り当て上限は 1 分あたり 5 件のリクエストに設定されています。
httpbinサービスを複数回呼び出して割り当てをトリガーするようにします。割り当てが枯渇すると、HTTP ステータス 403 エラーが返されます。 - Edge UI で Apigee Analytics にアクセスします。[Analyze] > [API Metrics] > [API Proxy Performance] に移動します。
- API 呼び出しを認証するために、JWT トークンを生成して使用します。
- CLI を使用して、トークンの管理、作成し、バインディングを制御します。CLI の詳細については、リファレンスをご覧ください。