Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントをご覧ください。
Edge Microgateway v 3.3.x
概要
この設定ガイドの手順を完了すると、API リクエストを処理できる、完全に構成済みの Edge Edge インストール環境が完成します。Edge Microgateway を介してバックエンド ターゲットに安全な API 呼び出しを行って設定をテストします。また、 Microgateway に Spike Arrest プラグインを追加する方法についても学習します。
このガイドは次のパートに分かれています。
- 前提条件: Edge Microgateway のインストール
- パート 1: Edge Microgateway の構成
- パート 2: Apigee Edge でエンティティを作成する
- パート 3: Edge Microgateway の操作
- パート 4: Edge Microgateway の保護
- パート 5: Spike Arrest プラグインを追加する
- パート 6: Apigee Edge でアナリティクス データを表示する
前提条件: Edge Microgateway をインストールする
Edge Microgateway のインストールの手順に沿って操作します。インストールが完了すると、このチュートリアルの手順を行う準備が整います。
パート 1: Edge Microgateway を構成する
ここでは、コマンドライン インターフェース(CLI)コマンドを使用して、 Apigee Edge と通信するように Edge Microgateway を構成します。
- Apigee Edge Cloud を使用している場合は、Apigee Edge Cloud の構成手順を行います。
- Apigee Private Cloud を使用している場合は、Apigee Edge Private Cloud の手順を行います。
Apigee Edge Cloud の構成手順
Apigee Edge で Edge Microgateway を使用する手順は次のとおりです。
- Edge Microgateway を初期化します(この手順は 1 回だけ行います)。
edgemicro init
default.yaml
ファイルという構成ファイルを、ホーム ディレクトリの.edgemicro
というサブディレクトリに配置しました。次のファイルが存在することを確認してください。ls ~/.edgemicro default.yaml
注: Edge Microgateway ドキュメントでは、UNIX のショートカットであるチルダ(
~
)を含むホーム ディレクトリを参照します。チルダをサポートしていないシェルを実行している場合は、Windows を使用している場合、ホーム ディレクトリを参照するコマンド内のチルダを適切な環境変数に置き換える必要があります。例:%USERPROFILE%/.edgemicro
- すべての CLI コマンドには、ヘルプ関数があります。edgemicro configure コマンドのヘルプを出力します。
edgemicro configure -h
- 次のコマンドを実行して Edge Microgateway を構成します。
edgemicro configure -o [org] -e [env] -u [username]
ここで
org:
Edge 組織名(組織管理者である必要があります)。env:
組織内の環境(テスト環境や本番環境など)。username:
Apigee アカウントに関連付けられているメールアドレス。
注: configure コマンドでは追加のパラメータを使用できます。完全なリストについては、Apigee Edge Cloud 用に Edge Microgateway を構成するをご覧ください。
例
edgemicro configure -o docs -e test -u jdoe@example.com
出力
./edgemicro configure -o docs -e test -u jdoe@apigee.com password: current nodejs version is v12.5.0 current edgemicro version is 3.1.0 password: file doesn't exist, setting up Give me a minute or two... this can take a while... App edgemicro-auth deployed. checking org for existing KVM error checking for cert. Installing new cert. creating KVM adding private_key adding public_key configuring host edgemicroservices-us-east-1.apigee.net for region us-east-1 saving configuration information to: $HOME/.edgemicro/docs-test-config.yaml vault info: -----BEGIN CERTIFICATE----- MIICpDCCAYwCCQCQ2mJZJGbPPTANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDEwls b2NhbGhvc3QwHhcNMTcwOTA3MjA0ODA4WhcNMTcwOTA4MjA0ODA4WjAUMRIwEAYD VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDw yzmqi5CelqqtTr6IaFe1ssrMXEDnNtkBh95U6F5zHLsNQhJcyNUAO9um6FLMSqSd fTztXfWUZzDgmbb6sfbx/9cqpvQ8TIjxyIz8xGM9H4legRQmsCQoYGkLjpPE5ZOa wZrI5IaVm8LY6vbopPFwxgKOQ9bphx6k9Na055DmNyZAOTMD+4I0m/RdsrnZnYih 3DaFj1tXHKZI1jfAt/QOif5Nmk4+JckYwF+9HBysWUbbvj/gnBjVYF2Isb7q7oFD lPGhwFoIebMqHMWD8lG7+9RJDO9dDV6f1g1/9waIrq1D+MoVXos9VMstNrPp0cKF Ue+lAkct8tylH+2MosF7AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAJMRdcQh3ayy csVVT4TYwxV7MKWRfhDRz6X+MM9frB+Z7sI4+ZoZbXKOoZI2hSjmbdLpkNR/m9eJ +1Uk0JKmpSY7Q+1rRrvcHsWNysGf4z+zDJXYECTrtSnXKBXtb9SJ8JAfoZOQD0lA zmKuJjQMLTdiYMHOBR6ZWnaKaRvrQwGHcQrheJm4a90XgZF6jcRR8CPrBzkmsbCp IU/Ux3E17wDGYPxjJs5otyQG8rN/88RGyaSeXK8rjKr9D4KFGJeasXBKmTG2afAr yfBvS4h6s42FCOR/eLpmMllVoO9up71Fa3EtV+aK+FNNY9uMbgUHeLQE7z9nn06q PTmvExZLkLQ= -----END CERTIFICATE----- The following credentials are required to start edge micro key: 27ee39567c75e4567a66236cbd4e86d1cc93df6481454301bd5fac4d3497fcbb secret: 4618b0008a6185d7327ebf53bee3c50282ccf45a3cceb1ed9828bfbcf1148b47
Apigee Private Cloud の構成手順
Apigee Private Cloud で Edge Microgateway を使用する手順は次のとおりです。
- Edge Microgateway を初期化します(この手順は 1 回だけ行います)。
edgemicro init
- edgemicro private configure コマンドのヘルプ情報を表示する。この方法で、Edge Microgateway CLI コマンドまたはコマンド オプションのヘルプを出力できます。
edgemicro private configure -h
- 次のコマンドを実行します。組織の名前、環境名、ユーザー名(メールアドレス)、パスワード、Management Server の IP、ルーター IP など、Apigee Edge Private Cloud アカウントに関する標準情報が必要です。次のコマンドを使用するには、Edge の組織管理者である必要があります。
edgemicro private configure -o [org] -e [env] -u [username] -r [runtime_url] -m [mgmt_url] -v [virtual_host]
ここで
org
は Edge の組織名です(組織管理者である必要があります)。env
は組織の環境です(テスト環境や本番環境など)。runtime_url
は、プライベート クラウド インスタンスのランタイム URL です。mgmt_url
は、プライベート クラウド インスタンスの管理サーバーの URL です。username
は、Apigee アカウントに関連付けられているメールアドレスです。-
virtual_host
は、仮想ホスト名のカンマ区切りリストです。デフォルト値はdefault,secure
です。
例
edgemicro private configure -o docs -e test -u jdoe@example.com -r http://192.162.52.106:9001 -m http://192.162.52.106:8080 -v default
または、myorg-test.mycompany.com
という仮想ホスト エイリアスがある場合は、次のようなコマンドを使用します。
edgemicro private configure -o docs -e test -u jdoe@example.com -r myorg-test.mycompany.com -m http://192.162.52.106:8080 -v default
出力
delete cache config checking for previously deployed proxies configuring edgemicro internal proxy deploying edgemicro internal proxy deploying edgemicro-auth app copy auth app into tmp dir copy config into tmp deer Give me a minute or two... this can take a while... App edgemicro-auth added to your org. Now adding resources. checking org for existing KVM error checking for cert. Installing new cert. creating KVM adding private_key adding public_key configuring host http://192.168.52.106:9001 for region dc-1 saving configuration information to: $HOME/.edgemicro/jdoe-test-config.yaml vault info: -----BEGIN CERTIFICATE----- MIICpDCCAYwCCQDpIvWlpaZJGDANBgkqhkiG9w0BAQFADAUMRIwEAYDVQQDEwls b2NhbGhvc3QwHhcNMTYwNDA3MTcxNTM5WhcNMTYwND4MTcxNTM5WjAUMRIwEAYD VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAUAA4IBDwAwggEKAoIBAQD3 OAQ+kf5FH0S0yuj05ITqUODuUJspBPberRMbqOZYHcFswhB0Yvg6JKWsKWBDP9o Xl96dtgH7xPFRqIU0zI452jkMQ1fPz2mSaGwik245yfBku7olooXKRKTRKOUoXa q3Hld/RPxGSsWtiyyYtKex7tuFdq0Knm1EhowdTRGIgjNvudeYMka/XPRXuykhd xIDxWj4rdX+4GPx9qT2eTQC5nOAC7XHVL7ys4KqsAiv28vw10u400KstFFS8Qho 7FaE0bOKLolKKadKyA60ha1XIw/uSTD6ZQFWQ+XM3OaRbXePWXnSZioSxXcZT7L hMUKbsRXw/TCvRB51LgNAgMBAAEwDQYJKoZIhvcNAQELBQADgEBAOuR1OmE/W6j gRAarJB5EQuTEpI/9Zpg5c5RAGjzLhkazsycn7pal+IymUjCV7D0oIxTVuTM8ZZ 57kR5hF/C1ZypDN9i+KGP2ovX8WOCCXYtIQECgZPB/L/7/k7BDuKN4vFBvWUe3X s2oyjnVWy+ASqsW8gHfj8ekhe22bP240Oqkbyg9SZP9ol1tvJX6+M0thYwcTwAd ft929Icey/MOTQC0jB2qm0gnIx/7KInFXfS5KoFRJoGrWDeckr3RdBo2LhnPaeZ 1gPYIqphZ3HfisF5KlBXoR8oT/Ilym/nq5COlv+3L4tMIk18F7BQZB60SRazifz pFkIxepyr/0= -----END CERTIFICATE----- The following credentials are required to start edge micro key: a3f8f3dfe39158fc3c50b274f0af2234246e0d5f6ea4ad09389b645147151ba3 secret: 3e9904802fb3c0e8ca408128a11119cf13546d54dac10ace944c097a726a1263 edgemicro configuration complete!
インストールを確認する
次のコマンドを実行してインストールを確認します。エラーが報告されない場合は、すべてが正しく設定されているため、Edge Microgateway を正常に起動できます。
edgemicro verify -o [org] -e [env] -k [key] -s [secret]
ここで
org
は Edge の組織名です(組織管理者である必要があります)。env
は、組織内の環境(テスト環境や本番環境など)です。key
は、以前に configure コマンドによって返された鍵です。secret
は、以前に configure コマンドによって返された鍵です。
例
edgemicro verify -o docs -e test -k 93b01fd21d86331459ae52f624ae9aeb13eb94767ce40a4f621d172cdfb7e8e6 -s c8c755be97cf56c21f8b0156d7132afbd03625bbd85dc34ebfefae4f23fbcb3c
構成について
ここまでの構成で、Edge Microgateway は Apigee Edge に対してブートストラップできます。ブートストラップが成功すると、Edge Microgateway は Apigee Edge から追加の構成情報のペイロードを取得します。
この構成情報は何に使用されますか。このチュートリアルの次のパートで説明するように、Edge Microgateway は、起動時に、Edge Edge から特別な Edge Microgateway 対応 API プロキシのリストを受信する必要があります。このチュートリアルの次のパートでは、 Microgateway 対応プロキシを作成します。Edge Microgateway では、クライアントがこれらの API 対応の API プロキシで前面にある API のみを呼び出すように制限され、クライアントでは、呼び出しごとに有効なセキュリティ トークンを提示する必要があります(デフォルト)。これらのプロキシの詳細については、Edge Microgateway の概要の Edge Microgateway 対応プロキシについて知っておくべきことをご覧ください。
Edge 組織管理者は、他のプロキシと同様に Edge Microgateway 対応プロキシを Edge プロダクトに追加できることを知っておく必要があります。プロダクトとデベロッパー アプリを使用して、クライアント固有のセキュリティ トークンを生成し、Edge Microgateway を介して呼び出される API へのアクセスを制御できます。繰り返しになりますが、関連するパターンは、Apigee Edge 上の API プロキシ、プロダクト、デベロッパー アプリの操作と同じです。プロダクトについて詳しくは、Edge ドキュメントの API プロダクトとはをご覧ください。
次に、Edge Microgateway 対応プロキシを作成する方法を説明します。その後、Edge Microgateway を起動して設定をテストします。
パート 2: Apigee Edge でエンティティを作成する
ここでは、以下のエンティティを Edge で作成します。
-
Microgateway 対応プロキシ - Edge Microgateway が起動時に検出できる特別なプロキシです。バックエンド対応プロキシには命名規則に従う必要があります。名前の先頭は
edgemicro_
にする必要があります。たとえば、edgemicro_hello
やedgemicro_userinfo
などです。Edge Microgateway を起動すると、Edge Microgateway の起動時に指定したのと同じ Edge 組織と環境から、Microgateway 対応プロキシのリストが取得されます。
Edge Microgatway は、Microgateway 対応のプロキシごとに、プロキシのターゲット URL とそのベースパスを取得します。また、 Microgateway 対応プロキシを使用すると、Edge Microgateway によって生成された分析データを Edge プラットフォーム上のプロキシに関連付けるための便利な方法が提供されます。Microgateway は API 呼び出しを処理するときに、分析データを非同期的に Edge に push します。アナリティクス データは、他のプロキシと同様に、Edge Analytics UI のマイクロゲートウェイ対応プロキシ名で表示されます。
- プロダクト、デベロッパー、デベロッパー アプリ - Edge Microgateway は、プロダクト、デベロッパー、デベロッパー アプリを使用して、OAuth2 アクセス トークンまたは API キーのセキュリティを有効にします。Edge Microgateway が起動すると、Apigee Edge 組織からすべてのプロダクト構成がダウンロードされます。この情報は、API キーまたは OAuth2 アクセス トークンを使用して Edge Microgateway を通じて行われた API 呼び出しを検証するために使用されます。
1. Edge 上に Edge Microgateway 対応 API プロキシを作成する
- Apigee Edge で組織にログインします。
- サイド ナビゲーション メニューで、[Develop] > [API Proxies] を選択します。
- [+ プロキシ] をクリックします。[Build a Proxy] ウィザードが呼び出されます。
- 最初のウィザード ページで、[Reverse proxy (most general)] を選択します。
- [Next] をクリックします。
- ウィザードの [Details] ページで、次のように設定します。次に示すとおりにウィザードに入力してください。
- プロキシ名: edgemicro_hello
- プロキシのベースパス: /hello
- 既存の API: http://mocktarget.apigee.net/
- [Next] をクリックします。
- ウィザードの [セキュリティ] ページで、[パススルー(なし)] を選択します。
- [Next] をクリックします。
- ウィザードの [Virtual Hosts] ページで、デフォルトをそのまま使用します。
- [Next] をクリックします。
- ウィザードの [Build] ページで、プロキシ設定を確認します。test 環境が選択されていることを確認します。
- [Build and Deploy] をクリックします。
2. API プロダクトを作成する
- サイド ナビゲーション メニューで、[Publish] > [API Products] を選択します。
- [+ API Product] をクリックします。
- 次の表にある商品の詳細を入力します。
Field 説明 Name Edge MicroTest プロダクト 表示名 Edge Microgatway テスト プロダクト 環境 テスト アクセス 公開 キーの承認タイプ 自動 - [API resources] セクションで、作成した API プロキシと edgemicro-auth プロキシを追加します。
- edgemicro_hello
- edgemicro-auth
- [保存] をクリックします。
3. デベロッパーを作成する
このチュートリアルでは、次のステップとして既存のデベロッパーを使用してデベロッパー アプリを作成できますが、必要に応じてテスト デベロッパーを作成します。
- サイド ナビゲーション メニューで、[Publish] > [Developers] を選択します。
- [+ Developer] をクリックします。
- ダイアログに入力してテスト デベロッパーを作成します。
4. デベロッパー アプリを作成する
このアプリのクライアント認証情報を使用して、Edge Microgateway を介して安全な API 呼び出しを行います。
- サイド ナビゲーション メニューで、[Publish] > [Apps] を選択します。
- [+ App] をクリックします。[Developer App Details] ページが表示されます。
- デベロッパー アプリのページに、以下の情報を入力します。
- 名前: EdgeMicroTestApp
- 表示名: EdgeMicroTestApp
- デベロッパー: テスト デベロッパーを作成した場合は、それを選択します。また、このチュートリアルの目的のために、既存のデベロッパーを使用することもできます。
-
認証情報:
- [有効期限] で [なし] を選択します。
- [+ Product] をクリックし、[EdgeMicroTestProduct](作成したばかりの商品)を選択します。
- [保存] をクリックします。
- アプリリスト ページに戻ります。
- 作成したアプリ(EdgeMicroTestApp)を選択します。
- [コンシューマ キー] と [コンシューマ シークレット] の横にある [表示] をクリックします。
パート 3: Edge Microgateway の操作
これで、Edge Microgateway と少なくとも 1 つの Edge Microgateway 対応プロキシが Edge に構成されました。次に、Edge Microgateway を起動します。Edge Microgateway HTTP サーバーはローカルマシンで実行され、そのサーバーに直接 API 呼び出しを行います。
1. Edge Microgateway を起動する
Edge Edge を起動するには、edgemicro start コマンドを使用します。
- edgemicro configure コマンドを実行したときに返されたキーがあることを確認します。出力は次のようになります。
You need key and secret while starting edgemicro instance key: da4778e7c240a5d4585fc559eaba5083328828bc9f3a7f583e8b73e secret: 3aad7439708b4aeb38ee08e82189921ad00e6fc1ba8a8ae9f929ee2
- (省略可)
edgemicro start
コマンドのヘルプ情報を出力します。
edgemicro start -h
- Edge Microgateway を起動するには、次のコマンドを実行します。
edgemicro start -o [org] -e [env] -k [key] -s [secret]
ここで
org
は Edge の組織名です(組織管理者である必要があります)。env
は、組織内の環境(テスト環境や本番環境など)です。key
は、以前に configure コマンドによって返された鍵です。secret
は、以前に configure コマンドによって返された鍵です。
例
edgemicro start -o docs -e test -k 701e70e718ce6dc1880616b3c39177d64a88754d615c7a4e1f78b6181d000723 -s 05c14356e42d136b83dd135cf8a18531ff52d7299134677e30ef4e34ab0cc824
出力
start コマンドは、Apigee Edge から多くの構成情報を取得します(ターミナル ウィンドウにスクロールします)。出力に、検出された Microgateway 対応プロキシとプロダクトのリストが表示されます。出力の最後に、次のような出力が表示されます。
... current nodejs version is v12.5.0 current edgemicro version is 3.1.0 info: jwk_public_keys download from null returned 200 undefined info: jwt_public_key download from https://docs-test.apigee.net/edgemicro-auth/publicKey returned 200 OK info: products download from https://docs-test.apigee.net/edgemicro-auth/products returned 200 OK info: config download from https://edgemicroservices-us-east-1.apigee.net/edgemicro/bootstrap/organization/docs/environment/test returned 200 OK PROCESS PID : 17991
- Microgateway のステータスを確認します。別のターミナル ウィンドウで、Edge Micro を起動したディレクトリに移動し、次のコマンドを入力します。
edgemicro status current nodejs version is v12.5.0 current edgemicro version is 3.1.0 edgemicro is running with 8 workers
なぜですか?
Edge Microgateway 構成情報のペイロードは、Apigee Edge からダウンロードされ、ローカルにキャッシュされます。これには以下の情報が含まれます。
- 以前に作成して Key-Value マップ(KVM)に保存した公開鍵。
- 組織/環境内に存在するすべての Edge Microgateway 対応プロキシの表示。これらはすべて、接頭辞 edgemicro_ で命名されたプロキシです。
- 組織/環境に存在するすべての API プロダクトの表現。
この情報により、Edge Microgateway は処理可能なプロキシとプロキシパスを認識します。セキュリティ ポリシーはプロダクト情報を使用してセキュリティを適用します。これは、デベロッパー アプリのキーがプロダクトと関連付けられている Apigee Edge とまったく同じ方法で行います。Edge Microgateway を保護する手順は後で説明します。
2. Edge Microgateway をテストする
Edge Microgateway を実行した状態で、プロキシを呼び出すことができます。Edge Edge を起動すると、edgemicro_hello プロキシの構成が Edge からダウンロードされます。プロキシのベースパスは /hello です。
Edge Microgateway をテストするには、まずベースパスからリソースパス /echo を追加します。ベースパスの後のすべて(クエリ パラメータを含む)は、単にバックエンド ターゲットに渡されることに注意してください。
curl -i http://localhost:8000/hello/echo {"error":"missing_authorization","error_description":"Missing Authorization header"}
このエラーは、リクエストで有効な API キーまたはアクセス トークンを送信しなかった場合に発生します。デフォルトでは、Edge Microgateway にはすべての API 呼び出しで API キーまたはアクセス トークンが必要です。チュートリアルの次のステップでは、この API を適切に保護し、有効なアクセス トークンを取得してリクエストに追加する方法について説明します。
4. Edge Microgateway を停止する
- 別のターミナル ウィンドウで、
cd
を Edge Microgateway を起動したディレクトリと同じに移動します。 - 停止コマンドを入力します。
edgemicro stop
パート 4: Edge Edge を保護する
API キーまたはアクセス トークンを使用して、Edge Microgateway を通じて行われた API 呼び出しを保護できます。
OAuth2 アクセス トークンを使用した API 呼び出しの保護
OAuth2 アクセス トークンを使用して API 呼び出しを認証する場合は、次の手順を行います。
1. 必要なキーを取得する
- Edge UI で、先ほど作成したデベロッパー アプリに移動します。アプリの名前は EdgeMicroTestApp でした。
- デベロッパー アプリのページで、コンシューマ キーとコンシューマ シークレットを表示し、コピーします。 これらの値は、次のステップでアクセス トークンを取得するために必要です。
2. アクセス トークンを取得する
アクセス トークンを取得する方法は 2 つあります。両方の方法について説明します。
CLI を使用してアクセス トークンを取得する
最初のメソッドは便利で、このチュートリアルで使用したパターンに従います。2 番目の方法は、一般的にトークンのリクエストが必要なクライアント アプリ デベロッパーに役立ちます。実際のトークン エンドポイントは、Edge Microgateway の構成時にデプロイされた edgemicro-auth プロキシに実装されています。
- (省略可)token get コマンドのヘルプを表示します。
edgemicro token get -h
- トークンを生成します。Apigee Edge で作成したデベロッパー アプリの -i パラメータと -s パラメータで、コンシューマ キーとコンシューマ シークレットの値を次の値に置き換えます。
edgemicro token get -o [org] -e [env] -i [consumer_key] -s [consumer_secret]
ここで
org
は Edge の組織名です(組織管理者である必要があります)。env
は、組織内の環境(テスト環境や本番環境など)です。consumer_id
は、以前に作成したデベロッパー アプリのコンシューマ ID です。consumer_secret
は、以前に作成したデベロッパー アプリのコンシューマ シークレットです。
例
edgemicro token get -o docs -e test -i G0IAeU864EtBo99NvUbn6Z4CBwVcS2 -s uzHTbwNWvoSmOy
出力(サンプル)
current nodejs version is v12.5.0 { token: 'eyJ0eXAiOiJKV1QiLCJhbGciSUzI1NiJ9.eyJhcHBsaWNhdGl vbl9uYW1lIjoiNWNiMGY0tOWMzOC00YmJjLWIzNzEtZGMxZTQzOGYxZGMxI iwiY2xpZW50X2lkIjoiNVVdBWEdvSU9lbzYwYWV3OTRQN0c1TUFaRTNhSnA iLCJzY29wZXMiOltdLCJhcGlfcHJvjdF9saXN0IjpbIsVkZ2VNaWNyb1Rlc 3RQcm9kdWN0IlmlhdCI6MTQ3ODIwODMzMiwiZXhwIjoxNDc4MjEwMTMxfQ. v3Q8Rs0W9FO_XpERwIAMMXhjGamRmmmWgrAy1wJv0-99oajx5ASI5qjNubM nCF14xxwlVXHcz1VfedA8Nx7Ih145zhWWuPKL9muzhXXnVBRFeBMeeLqJk4 QQ7Bhst7xH_68nJSTE20Egu95DHOCUemfrepDFH0VggY4BmzvwLkBNfz_te E_YqwKZbpGOLMdKK1vMk0fk0x19SieIMS_aJYeOAklrzUhnFxWJFrsAWsax NLx_BbQcZzYfK1JSDUrhRNVBuPHMnGjNA_oHw2J4qa6Hsp62PfchG-DIW_t -0BFnYf3rYXmqyNORqFrOMdl4VxqQ' }
(省略可)API を使用してトークンを取得する
curl などの HTTP クライアントを使用した Edge プロキシの呼び出しに慣れている場合は、edgemicro token コマンドを使用する代わりに、トークン エンドポイントを直接呼び出すことができます。これは curl の例です。URL で組織名と環境名を置き換えて、Basic 認証ヘッダーでコンシューマ キー : コンシューマ シークレット 値をコロンで渡します。
curl -i -X POST "http://[org]-[env].apigee.net/edgemicro-auth/token" -d '{ "client_id": "your consumer key", "client_secret": "your consumer secret", "grant_type": "client_credentials" }' -H "Content-Type: application/json"
ここで
org
は Edge の組織名です(組織管理者である必要があります)。env
は、組織内の環境(テスト環境や本番環境など)です。client_id
は、以前に作成したデベロッパー アプリのコンシューマ ID です。client_secret
は、以前に作成したデベロッパー アプリのコンシューマ シークレットです。
出力 (サンプル)
このコマンドでは、edgemicro token CLI コマンドを使用した場合でも、curl を使用してエンドポイントを呼び出した場合でも、クライアント呼び出しに使用できる署名付きアクセス トークンが返されます。例:
MIICpDCCAYwCCQDpIvWlpaZJGDANBgkqhkiG9w0BAQFADAUMRIwEAYDVQQDEwls b2NhbGhvc3QwHhcNMTYwNDA3MTcxNTM5WhcNMTYwND4MTcxNTM5WjAUMRIwEAYD VQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAUAA4IBDwAwggEKAoIBAQD3 OAQ+kf5FH0S0yuj05ITqUODuUJspBPberRMbqOZYHcFsnhB0Yvg6JKWxKWBDP9o Xl96dtgH7xPFRqIU0zI452jkMQ1fPz2mSaGwik241yfBku7olooXKRKTRKOUoXa q3Hld/RPxGSsWtiyyYtKex7tuFdq0Knm1EhowdTRGIgjNvudeYMka/XPRXuykhd xIDxWj4rdX+4GPx9qT2eTQC5nOAC7XHVL7ys4KqsAiv28vw10u400KstFFS8Qho 7FaE0bOKLolKKadKyA60ha1XIw/uSTD6ZQFWQ+XM3OaRbXePWXnSZioSxXcZT7L hMUKbsRXw/TCvRB51LgNAgMBAAEwDQYJKoZIhvcNAQELBQADgEBAOuR1OmE/W6j gRAarJB5EQuTEpI/9Zpg5c5RAGjzLhkazsycn7pal+IymUjCV7D0oIxTVuTM8ZZ 57kR5hF/C1ZypDN9i+KGP2ovX8WOCCXYtIQECgZPB/L/7/k7BDuKN4vFBvWUe3X s2oyjnVWy+ASqsW8gHfj8ekhe22bP240Oqkbyg9SZP9ol1tvJX6+M0thYwcTwAd ft929Icey/MOTQC0jB2qm0gnIx/7KInFXfS5KoFRJoGrWDeckr3RdBo2LhnPaeZ 1gPYIqphZ3HfisF5KlBXoR8oT/Ilym/nq5COlv+3L4tMIk18F7BQZB60SRazifz pFkIxepyr/0=
3. Edge Microgateway の構成を確認する
$HOME/.edgemicro/org-env-config.yaml
ファイルを開きます。このファイルが見つからない場合は、 Edge Microgateway がインストールされている場所をご覧ください。- これらの OAuth プラグインのプロパティが false に設定されていることを確認します。デフォルトは false ですが、
oauth: allowNoAuthorization: false allowInvalidAuthorization: false
を再度確認することをおすすめします。 - また、
org-env-config.yaml
ファイルで、次のように OAuth プラグインがplugins:sequence
要素に追加されていることを確認します。plugins: dir: ../plugins sequence: - oauth
- ファイルに変更を加えた場合は、実行中の Edge Microgateway インスタンスに変更を再読み込みします。このコマンドは、Edge Microgateway をゼロ ダウンタイムで再構成します。
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
ここで
org
は Edge の組織名です(組織管理者である必要があります)。env
は、組織内の環境(テスト環境や本番環境など)です。key
は、以前に configure コマンドによって返された鍵です。secret
は、以前に configure コマンドによって返された鍵です。
例
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d
4. API を安全に呼び出す
アクセス トークンを取得したら、安全に API 呼び出しを行うことができます。次に例を示します。
curl -i -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhcHBsaWNhdGlvbl 9uYW1lIjoiYmU2YmZjYjAtMWQ0Ni00Y2IxLWFiNGQtZTMxNzRlNTAyMDZkIiwiY2xpZW50X2lkIjoiOGxTTTVIRHdyM VhIT1ZwbmhURExhYW9FVG5STVpwWk0iLCJzY29wZXMiOltdLCJhcGlfcHJvZHVjdF9saXN0IjpbIk1pY3JvZ2F0ZXdh eVRlQcm9kdWN0Il0sImCI6MTQzNTM0NzY5MiwiZXhwIjoxNDM1MzQ5NDkxfQ.PL30Y6uK1W1f2ONPEsBDB_BT31c6 IsjWGfwpz-p6Vak8r767tAT4mQAjuBpQYv7_IU4DxSrnxXQ_q536QYCP4p4YKfBvyqbnW0Rb2CsPFziy_n8HIczsWO s0p4czcK63SjONaUpxV9DbfGVJ_-WrSdqrqJB5syorD2YYJPSfrCcgKm-LpJc6HCylElFDW8dHuwApaWcGRSV3l5Wx 4A8Rr-WhTIxDTX7TxkrfI4THgXAo37p3au3_7DPB_Gla5dWTzV4j93xLbXPUbwTHzpaUCFzmPnVuYM44FW5KgvBrV0 64RgPmIFUxSqBWGQU7Z1w2qFmWuaDljrMDoLEreI2g" http://localhost:8000/hello/echo
API はモックサーバーからヘッダーとその他の情報を返します。
API キーで API を保護する
認証に API キーを使用する場合は、次の手順を行います。
1. API キーを取得する
- Edge UI で、先ほど作成したデベロッパー アプリに移動します。アプリの名前は EdgeMicroTestApp でした。
- デベロッパー アプリのページでコンシューマ キーを表示し、コピーします。この値は API キーです。このキーは、認証された API 呼び出しを実行する際に使用します。
2. Edge Microgateway の構成を確認する
- ファイルを開きます
$HOME/.edgemicro/org-env-config.yaml.
このファイルが見つからない場合は、Edge Microgateway がインストールされている場所をご覧ください。 - これらの OAuth プラグインのプロパティが false に設定されていることを確認します。デフォルトは false ですが、必要に応じて以下のことを再確認できます。
oauth: allowNoAuthorization: false allowInvalidAuthorization: false
- また、
org-env-config.yaml
ファイルで、次のように OAuth プラグインがplugins:sequence
要素に追加されていることを確認します。plugins: dir: ../plugins sequence: - oauth
- ファイルに変更を加えた場合は、実行中の Edge Microgateway インスタンスに変更を再読み込みします。このコマンドは、Edge Microgateway をゼロ ダウンタイムで再構成します。
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
ここで
org
は Edge の組織名です(組織管理者である必要があります)。env
は、組織内の環境(テスト環境や本番環境など)です。key
は、以前に configure コマンドによって返された鍵です。secret
は、以前に configure コマンドによって返された鍵です。
例
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c30177d64a88754d615c74e1f78b6181d
3. API キーを使用して API を安全に呼び出す
次のように x-api-key ヘッダーを使用して API を呼び出します。デベロッパー アプリからコピーしたコンシューマ キーの値が API キーです。デフォルトでは、Edge Microgateway は、次のように x-api-key というヘッダーで鍵を渡すことを想定しています。
curl -i http://localhost:8000/hello/echo -H "x-api-key: [apikey]"
ここで
apikey
は、EdgeMicroTestApp から取得したコンシューマ キーの値です。
次に例を示します。
curl -i http://localhost:8000/hello/echo -H 'x-api-key: XsU1R4zGXz2ERxd0ilYQ5szwuljr5bB'
これで、Edge Microgateway が完全に機能し、安全になりました。チュートリアルの次のパートでは、Edge Microgateway に機能を追加するプラグインについて説明します。
パート 5: Spike Arrest プラグインを追加する
ここでは、Edge TensorBoard のインスタンスに Spike Arrest のレート制限機能を追加します。
プラグインとは
プラグインは、Edge Microgateway に機能を追加する Node.js モジュールです。プラグイン モジュールは一貫したパターンに従い、Edge Microgateway が認識している場所に保存されるため、Microgateway がこれらを自動的に検出して読み込むことができます。プラグインの詳細については、プラグインを使用するをご覧ください。
Spike Arrest プラグインの追加
Spike Arrest プラグインは、トラフィックの急増から保護します。Edge Microgateway インスタンスによって処理されるリクエスト数のスロットリングを行います。
Edge Microgateway では、Spar arrest がプラグイン モジュールとして実装されています。有効にするには、Edge Microgateway 構成ファイルに追加する必要があります。
- このファイルが見つからない場合は、
$HOME/.edgemicro/org-env-config.yaml.
Edge Microgateway がインストールされている場所を開きます。 - 次の要素を追加します。ファイル内の任意の場所に追加できます。
spikearrest: timeUnit: minute allow: 10 buffersize: 0
- 次のように、
spikearrest
をedgemicro:sequence
要素に追加します。シーケンス構成プロパティは、プラグイン モジュールの実行順序を Edge Microgateway に指示します。edgemicro: home: ../gateway port: 8000 max_connections: -1 max_connections_hard: -1 logging: level: info dir: /var/tmp stats_log_interval: 60 plugins: dir: ../plugins sequence: - oauth - spikearrest
- 構成ファイルを保存します。
- reload コマンドを使用して Edge Microgateway を再読み込みします。このコマンドは、Edge Microgateway を起動したディレクトリから実行する必要があります。
edgemicro reload -o [org] -e [env] -k [key] -s [secret]
ここで
org
は Edge の組織名です(組織管理者である必要があります)。env
は、組織内の環境(テスト環境や本番環境など)です。key
は、以前に configure コマンドによって返された鍵です。secret
は、以前に configure コマンドによって返された鍵です。
例
edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d
- API を連続して数回呼び出してみます。2 回目の呼び出しの後、Edge TensorBoard から
{"message":"SpikeArrest engaged","status":503}
エラーが返されます。
これは、急増した停止が、指定された時間内に実行できる呼び出しの数を平滑化するためです。そのため、この場合、1 分あたり 10 回、または 6 秒ごとに 1 回呼び出すことができます。
追加のクレジット: 割り当てプラグインの追加
Spike Arrest の構成に使用したのと同じパターンで、Quota プラグインなど、他のプラグインを追加できます。Spike Arrest と同様に、すべての Edge Microgateway インストールに割り当てプラグインが含まれています。割り当ては、アプリが一定時間(分または時間)内に API に送信できるリクエスト メッセージの数を指定します。
パート 6: Apigee Edge での分析の表示
これで、完全に機能する Edge Microgateway インスタンスが作成されました。その状況を見てみましょう。 デフォルトでは、分析プラグイン モジュールは Edge Micro に追加されます。このモジュールは、アナリティクス データを Edge Micro から Apigee Edge にサイレント プッシュし、Edge Edge システムで消費します。では、次を見てみましょう。
- Apigee Edge で組織にログインします。
- [Analytics] > [Proxy Performance] を選択します。
- [Proxy Performance] ダッシュボードで、[edgemicro_hello proxy] を選択します。
- グラフには、合計トラフィック、平均レスポンス時間、平均ターゲット レスポンス時間など、プロキシのトラフィック パターンに関する情報が表示されます。
Edge Analytics ダッシュボードについて詳しくは、Edge ドキュメントのアナリティクス ダッシュボードのホームページをご覧ください。プラグインの使用で、プラグインの詳細を確認する。