Edge Microgateway の設定と構成

現在、Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントをご確認ください
情報

Edge Microgateway バージョン 3.3.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: 組織の環境(テストや本番環境など)。
    • 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 アカウントに関する標準情報(組織名、環境名、ユーザー名(メールアドレス)、パスワード、Management Server の 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 を起動すると、Apigee Edge から特別な Edge Microgateway 対応 API プロキシのリストを受け取る必要があります。このチュートリアルの次のパートでは、 Microgateway 対応プロキシを作成します。Edge Microgateway は、クライアントが呼び出す API を、この Microgateway 対応 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 が起動時に検出できる特別なプロキシです。Microgateway 対応プロキシには、命名規則に従い、edgemicro_ で始まる名前を指定する必要があります。たとえば、edgemicro_helloedgemicro_userinfo などです。Edge Microgateway を起動すると、Edge Microgateway を起動したときに指定した同じ Edge 組織 / 環境にある microgateway 対応プロキシのリストが Edge から取得されます。

    各 microgateway 対応プロキシについて、Edge microgatway はプロキシのターゲット 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 (mostcommon)] を選択します。
  5. [次へ] をクリックします。
  6. ウィザードの [詳細] ページで、次のように構成します。ウィザードに次に示すとおり正確に入力してください。
    • プロキシ名: edgemicro_hello
    • プロキシのベースパス: /hello
    • 既存の API: http://mocktarget.apigee.net/
  7. [次へ] をクリックします。
  8. ウィザードの [Security] ページで、[Pass through (none)] を選択します。
  9. [次へ] をクリックします。
  10. ウィザードの [Virtual Hosts] ページで、デフォルトを受け入れます。
  11. [次へ] をクリックします。
  12. ウィザードの [Build] ページで、プロキシ設定を確認します。test 環境が選択されていることを確認します。
  13. [Build and Deploy] をクリックします。

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

  1. サイド ナビゲーション メニューで、[Publish] > [API Products] を選択します。
  2. [+ API プロダクト] をクリックします。
  3. 次の表に示す商品の詳細を入力します。
    項目 説明
    名前 EdgeMicroTestProduct
    表示名 Edge Microgatway テスト プロダクト
    環境 テスト
    アクセス 公開
    キー承認タイプ 自動
  4. [API resources] セクションで、作成した API プロキシと edgemicro-auth プロキシを追加します。
    • edgemicro_hello
    • edgemicro-auth
  5. [保存] をクリックします。

3. デベロッパーを作成する

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

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

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

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

  1. サイド ナビゲーション メニューで、[Publish] > [Apps] を選択します。
  2. [+ App] をクリックします。[Developer App Details] ページが表示されます。
  3. [Developer App] ページに次の情報を入力します。
    1. 名前: EdgeMicroTestApp
    2. 表示名: EdgeMicroTestApp
    3. Developer: テスト デベロッパーを作成した場合は、そのデベロッパーを選択します。また、このチュートリアルでは、既存のデベロッパーを使用することもできます。
    4. 認証情報:
      1. [有効期限] で [なし] を選択します。
      2. [+ Product] をクリックして、[EdgeMicroTestProduct](作成したプロダクト)を選択します。
  4. [保存] をクリックします。
  5. アプリの一覧ページに戻りました。
  6. 作成したアプリ [EdgeMicroTestApp] を選択します。
  7. [Consumer Key] と [Consumer Secret] の横にある [Show] をクリックします。

パート 3: Edge Microgateway の操作

Edge Microgateway と 1 つ以上の Edge Microgateway 対応プロキシを構成したので、次に 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 は組織の環境です(テスト環境や本番環境など)。
    • 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 は処理が許可されているプロキシとプロキシパスを認識します。プロダクト情報を使用してセキュリティを適用します。これは、デベロッパー アプリキーとプロダクトの関連付けがある Apigee Edge に対する API プロキシとまったく同じ方法です。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. 停止コマンドを入力します。
    edgemicro stop
    

パート 4: Edge Microgateway の保護

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

OAuth2 アクセス トークンで API 呼び出しを保護する

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

1. 必要な鍵を取得する

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

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

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

CLI を使用してアクセス トークンを取得する

1 つ目の方法は便利で、チュートリアル全体で使用したパターンに従います。通常、トークンをリクエストする必要があるクライアント アプリのデベロッパーには、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 は組織の環境です(テスト環境や本番環境など)。
    • 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 で構成を確認する

  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 は組織の環境です(テスト環境や本番環境など)。
    • 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 は組織の環境です(テスト環境や本番環境など)。
    • 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 プラグインの追加

Spke 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. 以下に示すように、spikearrestedgemicro: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 は組織の環境です(テスト環境や本番環境など)。
    • 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 回の呼び出しが可能です。

追加演習: 割り当てプラグインの追加

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

パート 6: Apigee Edge で分析を表示する

これで、Edge Microgateway インスタンスが完全に機能するようになりました。では、どのような処理が行われているかを見てみましょう。 デフォルトでは、分析プラグイン モジュールは Edge Micro に追加されます。このモジュールは、分析データを Edge Micro から Apigee Edge に暗黙的に push します。Apigee Edge では、Edge Analytics システムが分析データを使用します。こちらをご覧ください。

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

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