<ph type="x-smartling-placeholder"></ph>
現在、Apigee Edge のドキュメントが表示されています。
Apigee X のドキュメント。 詳細
この例では、Apigee Edge で Apigee Adapter for Envoy を使用する方法を示します。
前提条件
始める前に、次のことを行います。 |
---|
概要
この例では、Apigee Edge for Public Cloud で Apigee Adapter for Envoy を使用する方法について説明します。API プロキシ呼び出しは、Edge で API を提供するネイティブ アプリケーションとして実行される Envoy を経由します。 管理サービスにアクセスすることもできます。
次の図は、Apigee Edge 統合の基本アーキテクチャを示しています。
Envoy プロキシとリモート サービスがローカルで実行されている。 Envoy は、ターゲット サービスとの間の API トラフィックを処理し、 リモート サービス。リモート サービスは通信もリクエストし、 Apigee Edge Cloud と連携して、API プロダクトとプロキシの情報を取得します。
Apigee Edge をプロビジョニングする
このステップでは、Remote Service CLI を使用して Apigee Adapter for Envoy アセットをプロビジョニングします。 Apigee Edge に統合します。プロビジョニング コマンドで API プロキシが Apigee Edge にデプロイされ、 Google Cloud 上の証明書も 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 にリモート サービス プロキシをプロビジョニングします。
./apigee-remote-service-cli provision --legacy --username $USER --password $PASSWORD \ --organization $ORG --environment $ENV > config.yaml
config.yaml
ファイルの内容を確認します。次のようになります。# Configuration for apigee-remote-service-envoy # generated by apigee-remote-service-cli provision on 2020-06-06 11:55:52 tenant: internal_api: https://istioservices.apigee.net/edgemicro remote_service_api: https://my-org-test.apigee.net/remote-service org_name: my-org env_name: test key: ecaa56d4101701cb877670909f3614219091b00ce559842e1b584a34b7c6a3e4 secret: 0c66638bb865c1e13019990ea42da66b097d02a6ba333f050fb27cef20259d98
キーとシークレットの値は、Remote Service Proxy からのリクエストを検証するために使用されます。 Apigee Edge に統合します。
Apigee Remote Service for Envoy サービスを実行する
リモート サービスはネイティブ バイナリとして実行することも、 ビルドできます。
サービスをネイティブで実行する
プロビジョニング コマンドで出力された構成ファイルを使用して、サービス バイナリを実行します。
$REMOTE_SERVICE_HOME/apigee-remote-service-envoy -c config_file_path/config.yaml
Docker でサービスを実行する
Docker イメージはリリースタグ付きで公開されます。このインストールでは、最新バージョンを使用してください。次の 3 つのイメージのバリエーションから選択できます。
パターン | 画像 |
---|---|
scratch | google/apigee-envoy-adapter:v1.0.0 |
Ubuntu | google/apigee-envoy-adapter:v1.0.0-ubuntu |
Boring Crypto を含む Ubuntu | google/apigee-envoy-adapter:v1.0.0-boring |
たとえば、ボリューム マウントを介してローカルの config.yaml
を /config.yaml
として利用できる状態でスクラッチ イメージを実行するには、次のコマンドを使用します。
docker run -v ./config.yaml:/config.yaml google/apigee-envoy-adapter:v1.0.0
Envoy プロキシをインストールして実行する
Envoy プロキシをインストールして実行する手順は次のとおりです。
- Envoy のバイナリをダウンロードするか、それをビルドするか、Docker を使用します。
httpbin.org
サービス用に設定されたサンプル構成ファイルを使用して Envoy を実行します。envoy -c $REMOTE_SERVICE_HOME/samples/native/envoy-httpbin.yaml
インストールのテスト
httpbin
を呼び出す service: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 プロダクトを構成した場合、割り当て上限は 1 分あたり 5 件のリクエストに設定されています。
httpbin
サービスを複数回呼び出して割り当てをトリガーするようにします。割り当てを超過すると、次のエラーが表示されます。HTTP/1.1 429 Too Many Requests
- Edge UI で Apigee Analytics にアクセスします。[Analyze] > [API Metrics] > [API Proxy Performance] に移動します。
- JWT トークンを生成して使用し、API 呼び出しを認証する。
- CLI を使用して、トークンの管理、作成し、バインディングを制御します。CLI の詳細については、リファレンスをご覧ください。