Edge Microgateway の設定と構成

Edge Microgateway v. 3.0.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 を使用しており、チルダをサポートしていない shell を実行している場合は、コマンドで、ホーム ディレクトリを参照する適切な環境変数にチルダを置き換えます。たとえば、%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.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 を使用するには、次の手順に従います。

  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 は組織の環境です(テスト環境や本番環境など)。
    • 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_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] ページで、プロキシ設定を確認します。テスト環境が選択されていることを確認してください。
  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. [Expiry] で [Never] を選択します。
      2. [+ Product] をクリックして、[EdgeMicroTestProduct](作成したプロダクト)を選択します。
  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 は組織の環境です(テスト環境や本番環境など)。
    • 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
        
  4. 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 を停止する

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

パート 4: Edge Microgateway の保護

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

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

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

1. 必要なキーを取得する

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

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

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

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

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

  1. (オプション)token get コマンドのヘルプを表示します。
        edgemicro token get -h
        
  2. トークンを生成し、-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 で構成を確認する

  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] ページで、Consumer Key を表示してコピーします。この値が 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 を呼び出します。デベロッパー アプリからコピーした 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 構成ファイルに追加する必要があります。

  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 は組織の環境です(テスト環境や本番環境など)。
    • 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 Microgateway で状況を確認してみましょう。デフォルトでは、アナリティクス プラグイン モジュールが 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 ダッシュボードのホームページ」をご覧ください。プラグインの詳細については、プラグインの使用をご覧ください。