Edge Microgateway の設定と構成

Edge Microgateway v. 3.1.x

概要

この設定ガイドの手順を完了すると、Edge Microgateway インストールは完全に構成され機能するようになり、API リクエストを処理できるようになります。Edge Microgateway を介してバックエンド ターゲットに安全な API 呼び出しを行うことにより、設定をテストします。Microgateway に Spike Arrest プラグインを追加する方法についても学習します。

このガイドは、次のパートに分かれています。

前提条件: Edge Microgateway のインストール

Edge Microgateway のインストールの指示に従います。インストールが完了すると、このチュートリアルの手順に従う準備ができます。

パート 1: Edge Microgateway の構成

このパートでは、コマンドライン インターフェース(CLI)コマンドを使用して、Apigee Edge と通信するように Edge Microgateway を構成します。

Apigee Edge Cloud 構成手順

Apigee Edge Cloud で Edge Microgateway を使用するには、次の手順に従います。

  1. Edge Microgateway を初期化します(このステップを行う必要があるのは 1 回のみです)。
    edgemicro init
    
  2. default.yaml ファイルという構成ファイルは、ホーム ディレクトリの .edgemicro というサブディレクトリ内に配置されています。このファイルが存在することを確認します。
    ls ~/.edgemicro
    default.yaml
    

    注: Edge Microgateway ドキュメントでは、ホーム ディレクトリを UNIX のショートカットであるチルダ(~)で示しています。Windows を使用しており、チルダをサポートしていないシェルを実行している場合は、コマンドで、ホーム ディレクトリを参照する適切な環境変数にチルダを置き換えます。たとえば、%USERPROFILE%/.edgemicro となります。

  3. すべての CLI コマンドには、ヘルプ機能があります。次のように入力して、edgemicro configure コマンドのヘルプを表示します。
    edgemicro configure -h
    
  4. 次のコマンドを実行して、Edge Microgateway を構成します。
    edgemicro configure -o [org] -e [env] -u [username] 
    

    ここで

    • org: は Edge 組織名です(組織管理者である必要があります)。
    • env: は組織の環境です(test / prod)。
    • 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 を使用するには、次の手順に従います。

  1. Edge Microgateway を初期化します(このステップを行う必要があるのは 1 回のみです)。
    edgemicro init
    
  2. edgemicro private configure コマンドのヘルプを表示します。この方法で、任意の Edge Microgateway CLI コマンドやコマンド オプションのヘルプを表示できます。
    edgemicro private configure -h
    
  3. 次のコマンドを実行します。このコマンドでは、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 は組織の環境です(test / prod)。
    • 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 は組織の環境です(test / prod)。
  • 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_helloedgemicro_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 プロキシを作成する

  1. Apigee Edge で組織にログインします。
  2. サイド ナビゲーション メニューで [Develop] > [API Proxies] を選択します。
  3. [+ Proxy] をクリックします。[Build a Proxy] ウィザードが起動します。
  4. ウィザードの最初のページで、[Reverse proxy (most common)] を選択します。
  5. [Next] をクリックします。
  6. ウィザードの [Details] ページで、次のように構成します。次に示すとおりにウィザードに入力してください。
    • Proxy Name: edgemicro_hello
    • Proxy Base Path: /hello
    • Existing API: http://mocktarget.apigee.net/
  7. [Next] をクリックします。
  8. ウィザードの [Security] ページで、[Pass through (none)] を選択します。
  9. [Next] をクリックします。
  10. ウィザードの [Virtual Hosts] ページで、デフォルトを受け入れます。
  11. [Next] をクリックします。
  12. ウィザードの [Build] ページで、プロキシ設定を確認します。test 環境が選択されていることを確認してください。
  13. [Build and Deploy] をクリックします。

2. プロダクトを作成する

  1. サイド ナビゲーション メニューで [Publish] > [API Products] を選択します。
  2. [+ API Product] をクリックします。[Product Details] ページが表示されます。
  3. 次のように、[Product Details] ページに入力します。
    • Name: EdgeMicroTestProduct
    • Display Name: EdgeMicroTestProduct
    • Environment: test and prod
    • Access: Public
    • Key Approval Type: Automatic
  4. [Resources] で、[+API Proxy] をクリックします。
  5. [edgemicro-auth] を選択します。
  6. もう一度 [+API Proxy] をクリックします。
  7. [edgemicro_hello] を選択します。
  8. [+ Custom Resource] を選択します。
  9. /**」と入力します。
  10. もう一度 [+ Custom Resource] を選択します。
  11. /」と入力します。
  12. [Save] をクリックします。

3. (オプション)テスト デベロッパーを作成する

このチュートリアルの目的のために、次のステップでは既存の任意のデベロッパーを使用して、デベロッパー アプリを作成できます。ただし、必要に応じて、ここでテスト デベロッパーを作成します。

  1. サイド ナビゲーション メニューで [Publish] > [Developers] を選択します。
  2. [+ Developer] をクリックします。
  3. ダイアログに入力し、テスト デベロッパーを作成します。

4. デベロッパー アプリを作成する

このアプリからのクライアント認証情報を使用し、Edge Microgateway を介して安全な API 呼び出しを行います。

  1. サイド ナビゲーション メニューで [Publish] > [Apps] を選択します。
  2. [+ App] をクリックします。[Developer App Details] ページが表示されます。
  3. 次のように、[Developer App] ページに入力します。
    1. Name: EdgeMicroTestApp
    2. Display Name: EdgeMicroTestApp
    3. Developer: テスト デベロッパーを作成した場合は、そのデベロッパーを選択します。または、このチュートリアルの目的のために、既存の任意のデベロッパーを使用することもできます。
    4. Credentials:
      1. [Expiration] で [Never] を選択します。
      2. [+ Product] をクリックして、[Edge MicroTestProduct](作成したプロダクト)を選択します。
  4. [Save] をクリックします。
  5. [Apps] リストページに戻ります。
  6. 作成したアプリ(EdgeMicroTestApp)を選択します。
  7. [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 を起動します。

  1. 以前に edgemicro configure コマンドを実行したときに返された鍵があることを確認します。それは、次のような出力です。
    You need key and secret while starting edgemicro instance
    
    key: da4778e7c240a5d4585fc559eaba5083328828bc9f3a7f583e8b73e
    secret: 3aad7439708b4aeb38ee08e82189921ad00e6fc1ba8a8ae9f929ee2
    
  2. (オプション)edgemicro start コマンドのヘルプ情報を出力します。
    edgemicro start -h
    
  3. Edge Microgateway を起動するには、次のコマンドを実行します。
    edgemicro start -o [org] -e [env] -k [key] -s [secret]
    

    ここで

    • org は Edge 組織名です(組織管理者である必要があります)。
    • env は組織の環境です(test / prod)。
    • 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
    
  4. Microgateway のステータスを確認します。別のターミナル ウィンドウで、cd を実行して 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 は処理可能なプロキシとプロキシパスを認識します。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 を停止する

  1. 別のターミナル ウィンドウで cd を実行して、Edge Microgateway を起動したのと同じディレクトリに移動します。
  2. 次のように stop コマンドを入力します。
    edgemicro stop
    

パート 4: Edge Microgateway の保護

API キーやアクセス トークンを使用して、Edge Microgateway を介して行われた API 呼び出しを保護できます。

OAuth2 アクセス トークンを使用した API 呼び出しの保護

OAuth2 アクセス トークンで API 呼び出しを認証する場合は、次の手順に従います。

1. 必要な鍵を取得する

  1. Edge UI で、以前に作成したデベロッパー アプリに移動します。アプリの名前は EdgeMicroTestApp でした。
  2. [Developer App] ページで、コンシューマ キーとコンシューマ シークレットを表示してコピーします。これらの値は、次のステップでアクセス トークンを取得するために必要となります。

2. アクセス トークンを取得する

アクセス トークンを取得するには、2 つの方法があります。両方の方法について説明します。

CLI を使用したアクセス トークンの取得

最初の方法は、チュートリアル全体でこれまで使用してきたパターンに沿った便利な方法です。トークンのリクエストが必要なクライアント アプリ デベロッパーにとっては、2 番目の方法のほうが有用です。実際のトークン エンドポイントは、Edge Microgateway の構成時にデプロイされた edgemicro-auth プロキシ内に実装されています。

  1. (オプション)token get コマンドのヘルプを表示します。
    edgemicro token get -h
    
  2. トークンを生成し、-i および -s パラメータの値を、Apigee Edge で作成したデベロッパー アプリから取得したコンシューマ キーとコンシューマ シークレット値に置き換えます。
    edgemicro token get -o [org] -e [env] -i [consumer_key] -s [consumer_secret]
    

    ここで

    • org は Edge 組織名です(組織管理者である必要があります)。
    • env は組織の環境です(test / prod)。
    • 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 は組織の環境です(test / prod)。
  • 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 で構成を確認する

  1. $HOME/.edgemicro/org-env-config.yaml ファイルを開きます。このファイルが見つからない場合は、Edge Microgateway がインストールされている場所をご覧ください。
  2. これらの oauth プラグインのプロパティが false に設定されていることを確認します。これらのデフォルトは false ですが、重ねて確認することをおすすめします。
    oauth:
       allowNoAuthorization: false
       allowInvalidAuthorization: false
    
  3. また、org-env-config.yaml ファイルで、oauth プラグインが次のように plugins:sequence 要素に追加されていることも確認します。
    plugins:
       dir: ../plugins
       sequence:
       - oauth
    
  4. ファイルに対してなんらかの変更を行った場合は、稼働中の Edge Microgateway インスタンスに変更内容を再読み込みします。このコマンドにより、Edge Microgateway がゼロ ダウンタイムで再構成されます。
    edgemicro reload -o [org] -e [env] -k [key] -s [secret]
    

    ここで

    • org は Edge 組織名です(組織管理者である必要があります)。
    • env は組織の環境です(test / prod)。
    • 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 キーを取得する

  1. Edge UI で、以前に作成したデベロッパー アプリに移動します。アプリの名前は EdgeMicroTestApp でした。
  2. [Developer App] ページで、コンシューマ キーを表示してコピーします。この値が API キーとなります。このキーを使用して、認証された API 呼び出しを行います。

2. Edge Microgateway で構成を確認する

  1. $HOME/.edgemicro/org-env-config.yaml. ファイルを開きます。このファイルが見つからない場合は、Edge Microgateway がインストールされている場所をご覧ください。
  2. これらの oauth プラグインのプロパティが false に設定されていることを確認します。デフォルトは false ですが、必要に応じて重ねて確認できます。
    oauth:
       allowNoAuthorization: false
       allowInvalidAuthorization: false
    
  3. また、org-env-config.yaml ファイルで、oauth プラグインが次のように plugins:sequence 要素に追加されていることも確認します。
    plugins:
       dir: ../plugins
       sequence:
       - oauth
    
    
  4. ファイルに対してなんらかの変更を行った場合は、稼働中の Edge Microgateway インスタンスに変更内容を再読み込みします。このコマンドにより、Edge Microgateway がゼロ ダウンタイムで再構成されます。
    edgemicro reload -o [org] -e [env] -k [key] -s [secret]
    

    ここで

    • org は Edge 組織名です(組織管理者である必要があります)。
    • env は組織の環境です(test / prod)。
    • 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 Microgateway のインスタンスにレート制限機能 Spike Arrest を追加します。

プラグインとは

プラグインは、Edge Microgateway に機能を追加する Node.js モジュールです。プラグイン モジュールは一貫したパターンに従い、Edge Microgateway に認識される場所に格納されるため、Microgateway では、これらのモジュールを自動的に検出して読み込むことができます。プラグインの詳細については、プラグインを使用するをご覧ください。

Spike Arrest プラグインの追加

Spike Arrest プラグインは、トラフィックの急増を防ぎます。これにより、Edge Microgateway インスタンスによって処理されるリクエストの数を抑制します。

Edge Microgateway では、Spike Arrest はプラグイン モジュールとして実装されています。このプラグインを有効にするには、Edge Microgateway 構成ファイルに追加する必要があります。

  1. $HOME/.edgemicro/org-env-config.yaml. ファイルを開きます。このファイルが見つからない場合は、Edge Microgateway がインストールされている場所をご覧ください。
  2. 次の要素を追加します。ファイル内の任意の場所に追加できます。
       spikearrest:
          timeUnit: minute
          allow: 10
          buffersize: 0
    
  3. 次に示すように、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
    
  4. 構成ファイルを保存します。
  5. reload コマンドを使用して Edge Microgateway を再読み込みします。このコマンドは、Edge Microgateway を起動したディレクトリから実行する必要があります。
    edgemicro reload -o [org] -e [env] -k [key] -s [secret]
    

    ここで

    • org は Edge 組織名です(組織管理者である必要があります)。
    • env は組織の環境です(test / prod)。
    • key は、configure コマンドによって以前に返された鍵です。
    • secret は、configure コマンドによって以前に返された鍵です。

    edgemicro reload -o docs -e test -k 701e70ee718ce6dc188016b3c39177d64a88754d615c74e1f78b6181d
    
  6. API を連続して複数回呼び出してみます。2 回目の呼び出しの後、Edge Microgateway から次のエラーが返されます。
    {"message":"SpikeArrest engaged","status":503}
    

その理由は、Spike Arrest により、指定された時間単位内に行うことができる呼び出しの数が平滑化されたためです。したがって、この場合、呼び出しを 1 分間に 10 回か、6 秒ごとに 1 回行うことができます。

追加演習: quota プラグインの追加

Spike Arrest の構成と同じパターンに従って、quota プラグインなど、その他のプラグインを追加できます。Spike Arrest の場合のように、割り当てプラグインはすべての Edge Microgateway インストールに含まれています。quota プラグインにより、指定された時間間隔(分や時)内にアプリから API に送信できるリクエスト メッセージの数を指定します。

パート 6: Apigee Edge でアナリティクス データを表示する

これで、Edge Microgateway インスタンスは完全に機能するようになりました。Edge Microgateway で状況を確認してみましょう。デフォルトでは、Analytics プラグイン モジュールが Edge Micro に追加されています。このモジュールにより、アナリティクス データは Edge Micro から Apigee Edge に通知されることなく push され、Edge Analytics システムで消費されます。手順は次のとおりです。

  1. Apigee Edge で組織にログインします。
  2. [Analytics] > [Proxy Performance] を選択します。
  3. [Proxy Performance] ダッシュボードで、[edgemicro_hello proxy] を選択します。
  4. グラフに、プロキシのトラフィック パターン(総トラフィック、平均レスポンス時間、平均ターゲット レスポンス時間など)に関する情報が表示されます。

Edge Analytics ダッシュボードの詳細については、Edge ドキュメントの「Analytics ダッシュボードのホームページ」をご覧ください。プラグインの詳細については、プラグインを使用するをご覧ください。