Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントに移動。 情報
この例では、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 をプロビジョニングする
このステップでは、Remote Service CLI を使用して Apigee Edge に Apigee Adapter for Envoy アセットをプロビジョニングします。プロビジョニング コマンドは、API プロキシを Apigee Edge にデプロイし、Apigee に証明書を設定し、Remote Service がシステムから 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 をプロビジョニングします。
$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 ...
キーとシークレットの値は、リモート サービス プロキシから 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 | 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 プロキシをインストールして実行する
Envoy プロキシをインストールして実行する手順は次のとおりです。
- 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 プロダクトを構成した場合、割り当て上限は 1 分あたり 5 件のリクエストに設定されています。
httpbin
サービスを複数回呼び出して割り当てをトリガーするようにします。割り当てが枯渇すると、HTTP ステータス 403 エラーが返されます。 - Edge UI で Apigee Analytics にアクセスします。[Analyze] > [API Metrics] > [API Proxy Performance] に移動します。
- JWT トークンを生成して使用し、API 呼び出しを認証する。
- CLI を使用して、トークンの管理、作成し、バインディングを制御します。CLI の詳細については、リファレンスをご覧ください。