Edge Microgateway v. 3.0.x
概要
この設定ガイドの手順を完了すると、Edge Microgateway インストールは完全に構成され機能するようになり、API リクエストを処理できるようになります。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 Cloud で Edge Microgateway を使用するには、次の手順に従います。
- Edge Microgateway を初期化します(このステップを行う必要があるのは 1 回のみです)。
edgemicro init
default.yaml
ファイルと呼ばれる構成ファイルは、ホーム ディレクトリの.edgemicro
と呼ばれるサブディレクトリ内に配置されています。このファイルが存在することを確認します。ls ~/.edgemicro default.yaml
注: Edge Microgateway ドキュメントでは、ホーム ディレクトリを UNIX のショートカットであるチルダ(
~
)で示しています。Windows を使用しており、チルダをサポートしていない shell を実行している場合は、コマンドで、ホーム ディレクトリを参照する適切な環境変数にチルダを置き換えます。たとえば、%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.0.2 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
- 次のコマンドを実行します。このコマンドでは、Apigee Edge Private Cloud アカウントに関する標準情報(組織名、環境名、ユーザー名(メールアドレス)、パスワード、管理サーバー IP とルーター IP)が必要です。このコマンドを使用するには、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 Microgateway 認識 API プロキシのリストを Apigee Edge から受信する必要があります。このチュートリアルの次のパートでは、Microgateway 認識プロキシを作成します。Edge Microgateway では、クライアントの動作が、これらの Microgateway 認識 API プロキシによって代行された API 呼び出しにのみ制限され、呼び出しごとに有効なセキュリティ トークンを提示する必要があります。これらのプロキシの詳細については、Edge Microgateway の概要の Edge Microgateway 対応プロキシについて知っておくべきことをご覧ください。
Edge Microgateway 認識プロキシを他のプロキシのように Edge プロダクトに追加できることは、Edge 組織管理者にとって有用です。プロダクトとデベロッパー アプリを使用することで、クライアント固有のセキュリティ トークンを生成し、Edge Microgateway を介して呼び出される API へのアクセスを制御できます。この場合も、使用されるパターンは、あらゆる API プロキシ、プロダクト、デベロッパー アプリを Apigee Edge 上で操作する場合と同じです。プロダクトの詳細については、Edge ドキュメントの API プロダクトとは をご覧ください。
次に、Edge Microgateway 認識プロキシの作成方法について説明し、その後、Edge Microgateway を起動して設定をテストします。
パート 2: Apigee Edge でエンティティを作成する
このパートでは、Edge 上で次のエンティティを作成します。
- Microgateway 認識プロキシ - これは、Edge Microgateway で起動時に検出可能な特別なプロキシです。Microgateway 対応プロキシには、名前を
edgemicro_
で始めるという命名規則があります。たとえば、edgemicro_hello
やedgemicro_userinfo
とします。Edge Microgateway を起動すると、ユーザーが起動時に指定したのと同じ Edge 組織と環境に属する Microgateway 対応プロキシのリストが Edge から取得されます。
各 Microgateway 認識プロキシでは、Edge Microgateway により、プロキシのターゲット URL とそのベースパスが取得されます。Microgateway 認識プロキシでは、Edge Microgateway で生成されたアナリティクス データを Edge プラットフォーム上のプロキシに関連付けるための便利な方法も提供されます。Microgateway では、API 呼び出しを処理する際、アナリティクス データが Edge に非同期に push されます。アナリティクス データは、他のプロキシの場合のように、Edge Analytics UI の Microgateway 認識プロキシ名の下に表示されます。
- プロダクト、デベロッパー、デベロッパー アプリ - Edge Microgateway は、プロダクト、デべロッパー、デベロッパー アプリを使用して、OAuth2 アクセス トークンや API キー セキュリティを有効にします。Edge Microgateway では起動時に、すべてのプロダクト構成が Apigee Edge 組織からダウンロードされます。この情報は、API キーや OAuth2 アクセス トークンを使用して、Edge Microgateway を介して行われた API 呼び出しを検証するために使用されます。
1. Edge 上に Edge Microgateway 認識 API プロキシを作成する
- Apigee Edge で組織にログインします。
- サイド ナビゲーション メニューで [Develop] > [API Proxies] を選択します。
- [+ Proxy] をクリックします。[Build a Proxy] ウィザードが起動します。
- ウィザードの最初のページで、[Reverse proxy (most common)] を選択します。
- [Next] をクリックします。
- ウィザードの [Details] ページで、次のように構成します。次に示すとおりにウィザードに入力してください。
- Proxy Name: edgemicro_hello
- Proxy Base Path: /hello
- Existing API: http://mocktarget.apigee.net/
- [Next] をクリックします。
- ウィザードの [Security] ページで、[Pass through (none)] を選択します。
- [Next] をクリックします。
- ウィザードの [Virtual Hosts] ページで、デフォルトを受け入れます。
- [Next] をクリックします。
- ウィザードの [Build] ページで、プロキシ設定を確認します。テスト環境が選択されていることを確認してください。
- [Build and Deploy] をクリックします。
2. プロダクトを作成する
- サイド ナビゲーション メニューで [Publish] > [API Products] を選択します。
- [+ API Product] をクリックします。[Product Details] ページが表示されます。
- 次のように、[Product Details] ページに入力します。
- Name: EdgeMicroTestProduct
- Display Name: EdgeMicroTestProduct
- Environment: test and prod
- Access: Public
- Key Approval Type: Automatic
- [Resources] で、[+API Proxy] をクリックします。
- [edgemicro-auth] を選択します。
- もう一度 [+API Proxy] をクリックします。
- [edgemicro_hello] を選択します。
- [+ Custom Resource] を選択します。
- 「/**」と入力します。
- もう一度 [+ Custom Resource] を選択します。
- 「/」と入力します。
- [Save] をクリックします。
3. (オプション)テスト デベロッパーを作成する
このチュートリアルの目的のために、次のステップでは既存の任意のデベロッパーを使用して、デベロッパー アプリを作成できます。ただし、必要に応じて、ここでテスト デベロッパーを作成します。
- サイド ナビゲーション メニューで [Publish] > [Developers] を選択します。
- [+ Developer] をクリックします。
- ダイアログに入力し、テスト デベロッパーを作成します。
4. デベロッパー アプリを作成する
このアプリからのクライアント認証情報を使用し、Edge Microgateway を介して安全な API 呼び出しを行います。
- サイド ナビゲーション メニューで [Publish] > [Apps] を選択します。
- [+ App] をクリックします。[Developer App Details] ページが表示されます。
- 次のように、[Developer App] ページに入力します。
- Name: EdgeMicroTestApp
- Display Name: EdgeMicroTestApp
- Developer: テスト デベロッパーを作成した場合は、そのデベロッパーを選択します。または、このチュートリアルの目的のために、既存の任意のデベロッパーを使用することもできます。
-
Credentials:
- [Expiry] で [Never] を選択します。
- [+ Product] をクリックして、[EdgeMicroTestProduct](作成したプロダクト)を選択します。
- [Save] をクリックします。
- [Apps] リストページに戻ります。
- 作成したアプリ(EdgeMicroTestApp)を選択します。
- [Consumer Key] と [Consumer Secret] の横にある [Show] をクリックします。
パート 3: Edge Microgateway の操作
これで、Edge Microgateway と少なくとも 1 つの Edge Microgateway 認識プロキシが Edge 上に構成されました。次は Edge Microgateway を起動します。Edge Microgateway HTTP サーバーはローカルマシン上で稼働し、ユーザーはこのサーバーに対して直接 API 呼び出しを行います。
1. Edge Microgateway を起動する
edgemicro start コマンドを使用して、Edge Microgateway を起動します。
- 以前に 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.0.2 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 のステータスを確認します。別のターミナル ウィンドウで、cd を実行して Edge Micro を起動したのと同じディレクトリに移動し、次のコマンドを入力します。
edgemicro status current nodejs version is v12.5.0 current edgemicro version is 3.0.2 edgemicro is running with 8 workers
結果
Edge Microgateway 構成情報のペイロードが Apigee Edge からダウンロードされ、ローカルでキャッシュに保存されます。この情報は次のとおりです。
- 以前に作成し、Key-Value マップ(KVM)に格納した公開鍵。
- 組織や環境に存在するすべての Edge Microgateway 認識プロキシの表現。これらはすべて、接頭辞 edgemicro_ が名前に付けられたプロキシです。
- 組織や環境に存在するすべての API プロダクトの表現。
この情報により、Edge Microgateway は処理可能なプロキシとプロキシパスを認識します。Edge Microgateway は、プロダクト情報を使用してセキュリティを強化します(任意の API プロキシが Apigee Edge に対して行う強化と同じ方法で、デベロッパー アプリのキーとプロダクトが関連付けられます)。Edge Microgateway を保護する手順については、もう少し後で説明します。
2. Edge Microgateway をテストする
Edge Microgateway が稼働しているときに、プロキシを呼び出すことができます。edgemicro_hello プロキシの構成は、Edge Microgateway の起動時に 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 を停止する
- 別のターミナル ウィンドウで、Edge Microgateway を起動したときと同じディレクトリに
cd
で移動します。 - stop コマンドを入力します。
edgemicro stop
パート 4: Edge Microgateway の保護
API キーやアクセス トークンを使用して、Edge Microgateway を介して行われた API 呼び出しを保護できます。
OAuth2 アクセス トークンを使用した API 呼び出しの保護
OAuth2 アクセス トークンで API 呼び出しを認証する場合は、次の手順に従います。
1. 必要なキーを取得する
- Edge UI で、以前に作成したデベロッパー アプリに移動します。アプリの名前は EdgeMicroTestApp でした。
- [Developer App] ページで、Consumer Key と Consumer Secret を表示してコピーします。 これらの値は、次のステップでアクセス トークンを取得するために必要となります。
2. アクセス トークンを取得する
アクセス トークンを取得するには、2 つの方法があります。両方の方法について説明します。
CLI を使用したアクセス トークンの取得
最初の方法は、チュートリアル全体でこれまで使用してきたパターンに沿った便利な方法です。2 番目の方法は通常、トークンのリクエストが必要なクライアント アプリ デベロッパーにとってより有用です。実際のトークン エンドポイントは、Edge Microgateway の構成時にデプロイされた edgemicro-auth プロキシ内に実装されています。
- (オプション)token get コマンドのヘルプを表示します。
edgemicro token get -h
- トークンを生成し、-i と -s パラメータの値を、Apigee Edge で作成したデベロッパー アプリから取得した Consumer Key と Consumer Secret 値に置き換えます。
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 認証ヘッダーにコロンで区切った Consumer Key と Consumer Secret の各値を渡すだけです。
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 でした。
- [Developer App] ページで、Consumer Key を表示してコピーします。この値が 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 を呼び出します。デベロッパー アプリからコピーした Consumer Key が 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 Microgateway のインスタンスにレート制限機能 Spike Arrest を追加します。
プラグインとは
プラグインとは、Edge Microgateway に機能を追加する Node.js モジュールです。プラグイン モジュールは一貫したパターンに従い、Edge Microgateway に認識された場所に格納されているため、Microgateway では、これらのモジュールを自動的に検出して読み込むことができます。プラグインの詳細については、プラグインの使用をご覧ください。
Spike Arrest プラグインの追加
Spike Arrest プラグインは、トラフィックの急増を防ぎます。これにより、Edge Microgateway インスタンスによって処理されるリクエストの数を抑制します。
Edge Microgateway では、Spike Arrest はプラグイン モジュールとして実装されています。このプラグインを有効にするには、Edge Microgateway 構成ファイルに追加する必要があります。
- ファイル
$HOME/.edgemicro/org-env-config.yaml.
を開きます。このファイルが見つからない場合は、Edge Microgateway のインストール場所をご覧ください。 - 次の要素を追加します。ファイル内の任意の場所に追加できます。
spikearrest: timeUnit: minute allow: 10 buffersize: 0
- 次に示すように、
edgemicro:sequence
要素にspikearrest
を追加します。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 Microgateway から次のエラーが返されます。
{"message":"SpikeArrest engaged","status":503}
その理由は、Spike Arrest により、指定された時間単位内に行うことができる呼び出しの数が平滑化されたためです。したがって、この場合、呼び出しを 1 分間に 10 回か、6 秒ごとに 1 回行うことができます。
追加演習: 割り当てプラグインの追加
Spike Arrest の構成に使用されるのと同じパターンに従って、割り当てプラグインのようなその他のプラグインを追加できます。Spike Arrest の場合のように、割り当てプラグインはすべての Edge Microgateway インストールに含まれています。割り当てプラグインにより、指定された時間間隔(分や時)内にアプリから API に送信できるリクエスト メッセージの数を指定します。
パート 6: Apigee Edge でアナリティクス データを表示する
これで、Edge Microgateway インスタンスは完全に機能するようになりました。Edge Microgateway で状況を確認してみましょう。デフォルトでは、アナリティクス プラグイン モジュールが Edge Micro に追加されています。このモジュールにより、アナリティクス データは Edge Micro から Apigee Edge に通知されることなく push され、Edge Analytics システムで消費されます。手順は次のとおりです。
- Apigee Edge で組織にログインします。
- [Analytics] > [Proxy Performance] を選択します。
- [Proxy Performance] ダッシュボードで、[edgemicro_hello proxy] を選択します。
- グラフに、プロキシのトラフィック パターン(総トラフィック、平均レスポンス時間、平均ターゲット レスポンス時間など)に関する情報が表示されます。
Edge Analytics ダッシュボードの詳細については、Edge ドキュメントの「Analytics ダッシュボードのホームページ」をご覧ください。プラグインの詳細については、プラグインの使用をご覧ください。