Edge Microgateway リリースノート

Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントに移動
情報

バージョン 3.3.x

バグの修正と機能の改善 v.3.3.x

3.3.5

2024 年 12 月 20 日(金)に、Edge Microgateway の次の修正と機能強化をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.3.5 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.3.5 3.3.5 3.3.5 3.3.5 3.2.2

バグの修正と機能の改善:

問題 ID タイプ 説明
383024578 機能

Node.js バージョン 22 のサポートが追加され、バージョン 16 のサポートが削除されました。Node.js v18 を使用している場合、Edge Microgateway は起動時に次のエラー メッセージを出力します。

current nodejs version is  18.x.x Note, v18.x.x will be out of support soon, see https://docs.apigee.com/release/notes/edge-microgateway-release-notes-0

以前のバージョンの Node.js を実行している場合は、次のようなエラー メッセージが表示されます。

You are using a version of NodeJS that is not supported

セキュリティの問題を修正

  • CVE-2024-21538
  • CVE-2024-45590
  • CVE-2019-3844
  • CVE-2019-12290
  • CVE-2020-1751
  • CVE-2018-12886
  • CVE-2023-50387
  • CVE-2019-3843
  • CVE-2022-4415
  • CVE-2021-3997

バグの修正と機能の改善 v.3.3.x

3.3.4

2024 年 9 月 18 日に、Edge Microgateway に対する次の修正と機能強化をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.3.4 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.3.4 3.3.4 3.3.4 3.3.4 3.2.2

バグの修正と機能の改善:

問題 ID タイプ 説明
675987751 バグ

Edge Microgateway がクライアント IP アドレスをロギングしない問題を修正しました。

セキュリティの問題を修正

  • CVE-2021-23337
  • CVE-2024-4068
  • CVE-2020-28469
  • CVE-2020-28503

3.3.3

2024 年 4 月 25 日に、Edge Microgateway に対する次の修正と機能強化をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.3.3 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.3.3 3.3.3 3.3.3 3.3.3 3.2.2

バグの修正と機能の改善:

問題 ID タイプ 説明
315939218 削除済み

Eureka クライアント プラグインは Edge Microgateway から削除されました。この機能の削除は、Edge Microgateway のコア機能やターゲット URL の書き換えには影響しません。詳しくは、プラグインでのターゲット URL の書き換えをご覧ください。

283947053 削除済み

forever-monitor のサポートは Edge Microgateway から削除されました。forever-monitor は PM2 に置き換えることができます。詳細については、Apigee コミュニティの投稿の Edgemicro + PM2: edgemicro をサービスとして起動するをご覧ください。

セキュリティの問題を修正

  • CVE-2023-0842
  • CVE-2023-26115
  • CVE-2022-25883
  • CVE-2017-20162
  • CVE-2022-31129
  • CVE-2022-23539
  • CVE-2022-23541
  • CVE-2022-23540
  • CVE-2024-21484
  • CVE-2022-46175
  • CVE-2023-45133
  • CVE-2020-15366
  • CVE-2023-26136
  • CVE-2023-26115

3.3.2

2023 年 8 月 18 日に、Edge Microgateway の次の修正と改善をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.3.2 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.3.2 3.3.2 3.3.2 3.3.2 3.2.2

バグの修正と機能の改善:

問題 ID タイプ 説明
296187679 機能

サポートされている Node.js バージョンは、16、18、20 です。バージョン 3.3.2 以降、Edge Microgateway CLI コマンドはサポートされているバージョンでのみ機能します。サポートされていないバージョンで CLI コマンドを実行すると、エラーが発生します。Apigee でサポートされているソフトウェアとサポートされているバージョンもご覧ください。

283947053 バグ

Edge Microgateway がアプリに関連付けられた API プロダクトのリスト内の最初の API プロダクトを返す問題を修正しました。リクエストに基づいて返す正しい API プロダクトが決定されるようになりました。

274443329 バグ

Docker が古いイメージ バージョンを pull していた問題を修正しました。Docker ノードのバージョンが Node.js バージョン 18 に更新されました。次に、バージョン 18.17-buster-slim の Docker イメージをビルドします。

セキュリティの問題を修正

なし。

3.3.1

2022 年 6 月 7 日に、Edge Microgateway に対する次の修正と機能強化をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.3.1 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.3.1 3.3.1 3.3.1 3.3.1 3.2.2

バグの修正と機能の改善:

問題 ID タイプ 説明
220885293 機能

Node.js バージョン 16 がサポートされるようになりました。

231972608 バグ

プライベート クラウドの構成中に private configure コマンドでエラーが発生する問題を修正しました。

233315475 バグ

json2xml プラグインが、レスポンスを JSON から XML に変換する際に、または accumulate-response プラグインと組み合わせて使用したときに、解析エラーをスローする問題を修正しました。

221432797 変更

ベースの Edge Microgateway イメージの Docker Node.js バージョンが Node.js 14 にアップグレードされました。

215748732 機能

SAML トークン認証のサポートが revokekeys コマンドに追加されました。

revokekeys コマンドの -t オプションを使用して、ユーザー名とパスワードの認証情報の代わりに SAML トークンを渡せるようになりました。

詳細については、コマンドライン リファレンスをご覧ください。

218723889 ドキュメントの更新

GitHub に保存されているサポートされている Edge Microgateway プラグインへのリンクを追加するようにドキュメントを更新しました。Edge Microgateway にバンドルされている既存のプラグインをご覧ください。

セキュリティの問題を修正

問題 ID 説明
CVE-2021-23413 これは、3.7.0 より前の jszip パッケージに影響します。ファイル名を Object プロトタイプの値(proto、toString など)に設定して新しい ZIP ファイルを作成すると、プロトタイプ インスタンスが変更されたオブジェクトが返されます。

3.3.0

2022 年 2 月 4 日に、Edge Microgateway に対する次の修正と機能強化をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.3.0 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.3.0 3.3.0 3.3.0 3.3.0 3.2.2

バグの修正と機能の改善:

問題 ID タイプ 説明
219556824 報告されている問題 Edge Microgateway Gateway 3.3.0 は、npm audit fix コマンドと互換性がありません。

npm audit fix を実行すると、apigeetool が 0.15.2 にアップグレードされ、edgemicro upgradeauth コマンドに影響します。

npm audit fix を実行してから edgemicro upgradeauth を実行すると、次のエラーが表示されます。

Error: This method has been removed in JSZip 3.0, please check the upgrade guide.

この問題を解決するには、次のコマンドを実行して、正しいバージョンの apigeetool を復元します。

npm install apigeetool@0.15.1

この問題は、Edge Microgateway の今後のリリースで解決される予定です。

138622990 機能

割り当て違反が発生した場合にステータス 403 ではなく HTTP 429 レスポンス ステータスを返すように、割り当てプラグインの新しいフラグ isHTTPStatusTooManyRequestEnabled でプラグインを構成します。割り当ての構成オプションをご覧ください。

192534424 バグ

Apigee アナリティクスに表示されるレスポンス コードが Edge Microgateway レスポンス コードと一致しない問題を修正しました。

198986036 拡張機能 Edge Microgateway は、ポーリング間隔ごとに ID プロバイダ(IDP)の公開鍵を取得し、IDP の公開鍵が変更された場合に鍵を更新するようになりました。以前は、IDP の公開鍵が変更された場合、extauth プラグインは Edge Microgateway を再読み込みせずに公開鍵を更新できませんでした。
168713541 バグ

複数のターゲットに TLS/SSL を構成する方法について、ドキュメントを拡充しました。 クライアント SSL/TLS オプションの使用をご覧ください。

171538483 バグ

ログファイルの命名規則を修正するため、ドキュメントを変更しました。ログファイルの命名規則をご覧ください。

157908466 バグ

特定のバージョンの Edge Microgateway をインストールする方法が正しく説明されるようにドキュメントを変更しました。インターネット接続を利用できる場合の Edge Microgateway のアップグレードをご覧ください。

215748427 バグ 既存の鍵とシークレット ペアを使用して鍵を取り消すときに、revokekeys コマンドがエラーを返す問題を修正しました。
205524197 バグ ロギングレベルの完全なリストが含まれるようにドキュメントが更新されました。edgemicro 属性ロギングレベルを設定する方法をご覧ください。

バージョン 3.2.x

バグの修正と機能強化 v.3.2.x

3.2.3

2021 年 9 月 17 日に、Edge Microgateway に対する次の修正と機能強化をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.2.3 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.2.3 3.2.3 3.2.3 3.2.3 3.2.2

バグの修正と機能の改善:

問題 ID タイプ 説明
192416584 機能

disableStrictLogFile 構成属性を使用すると、アプリケーション ログファイル api-log.log に対する厳格なファイル権限を緩和できます。詳細については、ログファイルの権限を緩和する方法をご覧ください。

192799989 機能

on_target_response_abort 構成属性を使用すると、クライアント(Edge Microgateway)とターゲット サーバー間の接続が早期に閉じられた場合の Edge Microgateway の動作を制御できます。詳細については、edgemicro 属性をご覧ください。

148062415 バグ Docker コンテナのコンテキストで、Edge Microgateway が docker stop {containerId} コマンドで正常にシャットダウンされない問題を修正しました。プロセスは終了しましたが、.sock ファイルと .pid ファイルは削除されませんでした。これでファイルが削除され、同じコンテナを再起動すると期待どおりに動作します。
190715670 バグ マイクロゲートウェイの内部再読み込みアクティビティ中に一部のリクエストが停止する問題を修正しました。この問題は断続的に発生し、トラフィックの多い状況で発生しました。この問題は、OAuth プラグインの tokenCache 機能と cacheKey 機能の使用時に発生しました。
183910111 バグ 末尾にスラッシュが付いたリソースパス URL が、別のリソースパスとして誤って解釈される問題を修正しました。たとえば、パス /country/all/country/all/ は同じパスとして解釈されます。

セキュリティの問題を修正

問題 ID 説明
CVE-2020-28503 2.0.5 より前のパッケージ copy-props は、メイン機能によるプロトタイプ汚染に対して脆弱です。
CVE-2021-23343 パッケージの path-parse のすべてのバージョンは、splitDeviceRe、splitTailRe、splitPathRe 正規表現による正規表現サービス拒否(ReDoS)の脆弱性があります。ReDoS は、最悪のケースで多項式の時間複雑性を示します。

3.2.2

2021 年 7 月 15 日(木)に、Edge Microgateway に対する次の修正と機能強化をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.2.2 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.2.2 3.2.2 3.2.2 3.2.2 3.2.2

バグの修正と機能の改善:

問題 ID タイプ 説明
185323500 変更

expires_in の値を文字列から整数に変更

トークン リクエスト API と更新トークン リクエスト API が、expires_in を秒単位の整数値として返すようになりました。

RFC 6749 The OAuth 2.0 Authorization Framework に準拠するため、expires_in 構成パラメータの想定値が文字列から整数に変更されました。詳細については、オペレーションと構成のリファレンスをご覧ください。

188492065 変更 Node.js 8 のサポート終了

リリース 3.2.2 以降、Node.js 8 はサポートされなくなります。詳細については、サポートされているソフトウェアとサポートされているバージョン: Edge Microgateway をご覧ください。

183990345 機能 Docker コンテナのログ出力を構成する

Edge Microgateway 構成パラメータ to_console を使用すると、ログ情報をログファイルではなく標準出力に送信できます。手順に沿って Docker コンテナで Edge Microgateway を実行すると、コンテナはデフォルトで stdout とエラー出力をコンテナ内の ${APIGEE_ROOT}/logs/edgemicro.log にあるファイルにリダイレクトします。

ログ情報が edgemicro.log に送信されないようにするには、コンテナを実行するときに新しい LOG_CONSOLE_OUTPUT_TO_FILE 変数を使用します。

この新しい変数の使用方法については、Edge Microgateway で Docker を使用するをご覧ください。

183057665 機能 edgemicro.pid ファイルパスと edgemicro.sock ファイルパスを構成可能にします。

Edge Microgateway で Docker コンテナを実行するための新しい -w, --workdir パラメータを使用すると、Docker コンテナに edgemicro.sock ファイルと edgemicro.pid ファイルを作成するディレクトリのパスを指定できます。Edge Microgateway に Docker を使用するをご覧ください。

191352643 機能 Edge Microgateway の Docker イメージが更新され、NodeJS バージョン 12.22 が使用されるようになりました。Edge Microgateway に Docker を使用するをご覧ください。

セキュリティの問題を修正

問題 ID 説明
CVE-2021-28860 Node.js mixme の v0.5.1 より前では、攻撃者は mutate() 関数と merge() 関数を介して「__proto__」を介してオブジェクトのプロパティを追加または変更できます。汚染された属性は、プログラム内のすべてのオブジェクトに直接割り当てられます。これにより、プログラムの可用性が損なわれ、サービス拒否(DoS)が発生する可能性があります。
CVE-2021-30246 Node.js の jsrsasign パッケージ(10.1.13 まで)では、無効な RSA PKCS#1 v1.5 署名が有効であると誤って認識されることがあります。注: 実用的な攻撃は確認されていません。
CVE-2021-23358 パッケージ underscore の 1.13.0-0 から 1.13.0-2 まで、1.3.2 から 1.12.1 までは、テンプレート関数を介した任意のコード挿入に対して脆弱です。特に、変数プロパティが引数として渡され、サニタイズされていない場合は脆弱です。
CVE-2021-29469 Node-redis は Node.js Redis クライアントです。バージョン 3.1.1 より前では、クライアントがモニタリング モードの場合、モニタ メッセージの検出に使用される正規表現が、一部の文字列で指数関数的なバックトラッキングを引き起こす可能性があります。この問題により、サービス拒否が発生する可能性があります。この問題はバージョン 3.1.1 で修正されています。
CVE-2020-8174 Docker イメージが更新され、Node.js バージョン 12.22 が使用されるようになりました

3.2.1

2021 年 3 月 5 日(金)に、Edge Microgateway に対する次の修正と機能強化をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.2.1 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.2.1 3.2.1 3.2.1 3.2.1 3.2.1

バグの修正と機能の改善:

問題 ID タイプ 説明
180362102 バグ null 値の JWK キーが原因でアプリケーションが失敗する問題を修正しました。

jwkPublicKeys で null 値を渡さないように、null 条件が処理されるようになりました。

注: この修正を行うには、edgemicro-auth プロキシをアップグレードする必要があります。

179971737 バグ ターゲットの 4XX / 5XX ステータス レスポンスが edgemicro_* プロキシのプロキシ エラーとしてログに記録される問題を修正しました。

Edge Microgateway トランザクションの場合、Apigee Edge エラーコード分析ダッシュボードに、正しくないターゲット エラー数が表示されていました。ターゲット エラーのエラーコードがプロキシエラーとしてカウントされていました。この問題は修正され、正しいターゲット エラー数が表示されるようになりました。

179674670 機能 プロダクトのステータス コードに基づいて JWT に配置された API プロダクトのリストをフィルタリングできる新機能が追加されました。

API プロダクトには、保留中、承認済み、取り消しの 3 つのステータス コードがあります。edgemicro-auth プロキシの JWT 変数を設定ポリシーに allowProductStatus という新しいプロパティが追加されました。このプロパティを使用して JWT にリストされている API プロダクトをフィルタするには:

  1. Apigee プロキシ エディタで edgemicro-auth プロキシを開きます。
  2. SetJWTVariables ポリシーの XML に allowProductStatus プロパティを追加し、フィルタするステータス コードのカンマ区切りリストを指定します。たとえば、ステータスが [保留中] と [取り消し済み] のコンテンツをフィルタするには、次のようにします。
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Javascript timeLimit="20000" async="false" continueOnError="false"
        enabled="true" name="Set-JWT-Variables">
        <DisplayName>Set JWT Variables</DisplayName>
        <FaultRules/>
        <Properties>
            <Property name="allowProductStatus">Pending,Revoked</Property>
        </Properties>
        <ResourceURL>jsc://set-jwt-variables.js</ResourceURL>
    </Javascript>
    
    

    承認済みの商品のみを表示する場合は、プロパティを次のように設定します。

    <Property name="allowProductStatus">Approved</Property>
  3. [Save] をクリックしてプロキシを保存します。

    Property タグが存在しない場合、すべてのステータス コードを持つ商品が JWT に表示されます。

    この新しいプロパティを使用するには、edgemicro-auth プロキシをアップグレードする必要があります。

178423436 バグ CLI または環境変数で渡された鍵とシークレットの値は、プロセス エクスプローラのコマンドライン引数に表示されます。

コマンドライン引数から渡されたか、環境変数で設定された Edge Microgateway の鍵とシークレットの値が、microgateway の起動後にノード ワーカー/子プロセスの引数に表示される問題が報告されました。

環境変数のシナリオでこの問題を解決するため、プロセス エクスプローラのコマンドライン引数に値が表示されなくなりました。

マイクロゲートウェイの起動時に鍵とシークレットの値がコマンドラインで渡された場合、その設定は、環境変数の値(設定されている場合)よりも優先されます。この場合、値はプロセス エクスプローラのコマンドライン引数に引き続き表示されます。

178341593 バグ apikeys プラグインのドキュメントのエラーを修正しました。

apikeys プラグインの README ファイルに、gracePeriod プロパティが誤って含まれていました。このプロパティとその説明を README から削除しました。

gracePeriod プロパティは oauth プラグインで実装されています。猶予期間機能を使用するには、oauth プラグインを使用する必要があります。

179366445 バグ ターゲットへのすべての GET リクエストでペイロードがドロップされる問題を解決しました。

新しい構成パラメータ edgemicro: enable_GET_req_body を使用して、目的の動作を制御できます。true に設定すると、リクエスト ヘッダー transfer-encoding: chunked がすべての GET リクエストに追加され、GET ペイロード(存在する場合)がターゲットに送信されます。false(デフォルト)の場合、リクエストがターゲットに送信される前にペイロードがサイレントで削除されます。

次に例を示します。

edgemicro:
 enable_GET_req_body: true

RFC 7231、セクション 4.3.1: GET に従い、GET リクエスト ペイロードには定義されたセマンティクスがないため、ターゲットに送信できます。

3.2.0

2021 年 1 月 21 日(木)に、Edge Microgateway に対する次の修正と機能強化をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.2.0 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.2.0 3.2.0 3.2.0 3.2.0 3.2.0

バグの修正と機能の改善:

問題 ID タイプ 説明
152640618 バグ extauth プラグインを有効にして、トークンが有効な場合にリクエスト オブジェクトの client_id を含むように x-api-key ヘッダーを設定しました。その後、x-api-key は後続のプラグインで使用できるようになります。
168836123、172295489、176462355、176462872 機能 Node.js 14 のサポートを追加。
172376835 バグ edgemicro-auth プロキシの /token エンドポイントに正しい時間単位を使用します。

edgemicro-auth プロキシの /token エンドポイントがミリ秒単位で expires_in を返す問題を修正しました。ただし、OAuth 仕様では、refresh_token_expires_in の時間単位(秒)と一致している必要があります。

この修正により、有効期限の長さは変更されませんが、時間単位のみが変更されます。これは、アクセス トークン レスポンス ペイロードの expires_in フィールドにのみ適用されます。同じレスポンス ペイロードの JWT トークンには、iatexp の 2 つのフィールドが含まれます。これらのフィールドは、seconds 時間単位で正しく生成されています。

クライアントがトークンの有効期限が切れる前にトークンを更新するために expires_in 値(ミリ秒単位)を使用していた場合、クライアントを変更せずにこの修正を適用すると、不必要に頻繁に更新が行われるようになります。これらのクライアントは、元の動作を維持するために、時間単位の変更を考慮して変更する必要があります。

クライアントが常に JWT トークンの値を使用してトークンの更新期間を評価している場合、クライアントを変更する必要はありません。

173064680 バグ すべてのデータ チャンクが処理される前に、マイクロゲートウェイがターゲット リクエストを終了する問題を修正しました。

これは、ペイロード サイズの大きいリクエストで発生する断続的な問題であり、3.1.7 リリースで導入されました。

174640712 バグ プラグインに適切なデータ処理を追加。

json2xmlaccumulate-requestaccumulate-responseheader-uppercase の各プラグインに適切なデータ処理が追加されました。プラグインの詳細については、microgateway-plugins をご覧ください。

バージョン 3.1.x

バグの修正と機能強化 v.3.1.x

3.1.8

2020 年 11 月 16 日(月)に、Edge Microgateway の次の修正と改善をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.1.8 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.1.8 3.1.9 3.1.7 3.1.3 3.1.2

バグの修正と機能の改善:

問題 ID タイプ 説明
169201295 バグ 環境変数タグで数値とブール値が正しく解析されませんでした。

環境変数の置換処理で、すべての値が文字列として解析され、ブール値または数値の解析エラーが発生しました。たとえば、edgemicro.port は数値を想定しており、数値を必要とします。ブール値と数値をサポートするように修正されました。構成の詳細については、環境変数値を使用して構成属性を設定するをご覧ください。

169202749 バグ 環境変数の置換が機能しないことがある。

一部の構成属性で、環境変数の置換処理が機能しませんでした。制限事項については、環境変数値を使用して構成属性を設定するをご覧ください。

168732942 バグ OAuth スコープが期待どおりに API プロキシ アクセスを制限していない問題を修正しました。

edgemicro-auth プロキシの /token フローは、次の 2 つの異なるシナリオの結果として、Edge で正しいプロダクト スコープが定義されていない JWT を生成しました。1)/token フローへのリクエスト ペイロードでスコープ パラメータが渡されなかった、または 2)/token フローへのリクエスト ペイロードで無効なスコープが渡された。Apigee Edge の API プロダクトで定義されたすべてのスコープを返すように修正されました。

170609716 バグ edgemicro-auth プロキシの /refresh フローで apiProductList のない JWT が生成される問題を修正しました。

170708611 バグ API プロダクト スコープはカスタム プラグインでは使用できません。

API プロダクト スコープはカスタム プラグインで使用できず、キャッシュ構成ファイルにも書き込まれませんでした。スコープの詳細をプラグインで利用できるようにする方法については、 プラグインの init() 関数についてをご覧ください。

169810710 機能 キーとシークレットはキャッシュ構成ファイルに保存されます。

Edge Microgateway の鍵とシークレットは、再読み込みまたは起動のたびにキャッシュ構成 yaml ファイルに保存されていました。3.1.8 では、キーとシークレットがキャッシュ構成ファイルに保存されなくなりました。キーとシークレットがキャッシュ構成ファイルに以前に書き込まれていた場合は、削除されます。

170708621 機能 アナリティクス プラグインを無効にできません。

以前のマイクロゲートウェイ バージョンでは、分析プラグインはデフォルトで有効になっており、無効にすることはできませんでした。バージョン 3.1.8 では、アナリティクス プラグインを有効または無効にするための新しい構成パラメータ enableAnalytics が導入されました。詳細については、構成リファレンスをご覧ください。

159571119 バグ レスポンス/ソケットのタイムアウトに関するカスタム プラグインの onerror_request フックで null エラーが発生する。

onerror_request イベントに正しい HTTP ステータス コードとエラー メッセージを、onerror_response イベントに正しいエラー メッセージを入力するように修正されました。

3.1.7

2020 年 9 月 24 日(木)に、Edge Microgateway に対する次の修正と改善をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.1.7 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.1.7 3.1.8 3.1.6 3.1.2 3.1.1

バグの修正と機能の改善:

問題 ID タイプ 説明
131708105 バグ analytics プラグインが axpublisher 呼び出しからの null レスポンスを不適切に処理し、ワーカーが終了しました。

133162200 バグ デベロッパーのアプリ情報がアナリティクスに入力されませんでした。これは、不正なプロダクト リソースパスが原因で 403 ステータス レスポンスが返されたか、期限切れまたは無効なトークンが原因で 401 レスポンスが返されたためです。

132194290 バグ Apigee Edge が一部のデータ分析レコードを拒否すると、アナリティクス レコードは破棄されます。

158618994 バグ Redis クライアント接続の過剰

161404373 バグ 404 ステータス レスポンスの場合、レスポンス メッセージにプロキシ URI 全体が含まれていました。
166356972 バグ

Node.js バージョン 12.13.x 以降で Edge Microgateway を実行すると、リクエスト ペイロードを変換するプラグインを実行するときに次のエラーが発生します。

{"message":"write after end","code":"ERR_STREAM_WRITE_AFTER_END"}

168681746 バグ redisBasedConfigCache:true を使用した Edge Microgateway の手動再読み込みが機能しませんでした。

149256174 バグ ネットワーク障害の OAuth プラグイン エラーがログに記録されませんでした。

166517190 バグ jwk_public_keys データは保存されず、Synchronizer によって取得され、Redis に保存されませんでした。

141659881 バグ 無効なターゲット証明書のエラー処理で、誤解を招くエラー レスポンスが返されました。

142808699 バグ accesscontrol プラグインが「allow」セクションと「deny」セクションを正しく処理していなかった。

マイクロゲートウェイは、deny セクションを適切に処理し、「allow」セクションと「deny」セクションの順序を尊重するようになりました。Apigee Edge の AccessControl ポリシーと整合性を確保するために、microgateway 構成ファイルに新しい noRuleMatchAction プロパティが追加されました。GitHub の アクセス制御プラグインの README もご覧ください。

3.1.6

2020 年 8 月 20 日(木曜日)に、Edge Microgateway に対する次の修正と改善をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.1.6 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.1.6 3.1.7 3.1.5 3.1.1 3.1.1

バグの修正と機能の改善:

問題 ID タイプ 説明
163711992 機能 rotatekey コマンドのカスタム鍵と証明書ファイルの場所のオプション。

これらの新しいコマンド オプションの詳細については、鍵を回転するをご覧ください。

154838259 バグ 複数のデータセンター内のマルチインスタンスの鍵のローテーションを修正

これらの新しいコマンド オプションの詳細については、鍵を回転するをご覧ください。

145525133 アルファ機能 新しいプラグイン指標

詳細については、GitHub の 新しいプラグイン指標の README をご覧ください。

159396879 バグ 使用していないパッケージ ヘルパーを削除
161092943 バグ ベースパスの検証が正しくない

バージョン 3.1.6 より前は、ベースパスが / で終わっていない場合、プロキシのベースパスが正しく照合されませんでした。

以下では、以前の動作(3.1.6 で修正済み)について詳しく説明します。

プロキシがベースパス /hello/v1 とターゲット パス https://mocktarget.apigee.net で構成されているとします。プロキシが次のリクエストを受信すると仮定します。

リクエストパス 解決済みのパス 結果
/hello/v1/json https://mocktarget.apigee.net/json /hello/v1 のベースパスが正しく一致しているため、解決されたパスは正しいものです。
リクエストパス 解決済みのパス 結果
/hello/v1json https://mocktarget.apigee.netjson /hello/v1/hello/v1json のサブ文字列であるため、解決されたパスが正しくありません。/hello/v1json は有効なパスではないため、Edge Microgateway は 404 をスローする必要があります。バージョン 3.1.6 以降では、この場合 404 エラーがスローされます。
160431789 バグ カスタム プラグイン - init に渡された config オブジェクトが入力されない

Edge Microgateway 構成ファイルとマージした後、Apigee Edge 構成はすべてのカスタム プラグインの構成オブジェクトで使用できるようになります。config をご覧ください。

162758808 バグ Redis バッキング ストアの新しい割り当て構成

次の構成を使用して、割り当ての Redis バッキング ストアを指定できます。詳細については、割り当てに Redis バッキング ストアを使用するをご覧ください。

3.1.5

2020 年 6 月 26 日(金)に、Edge Microgateway に対する次の修正と改善をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.1.5 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.1.5 3.1.6 3.1.4 3.1.0 3.1.0

バグの修正と機能の改善:

問題 ID タイプ 説明
159210507 機能 プラグイン処理を除外する構成

指定した URL のプラグインの処理をスキップする新しい構成機能が追加されました。詳細については、 プラグインの除外 URL の構成をご覧ください。

156986819、158529319 バグ json2xml プラグインに関する問題を修正しました

プラグインが重複する Content-Type ヘッダーを生成し、ヘッダーが想定どおりにターゲットに送信されない問題を修正しました。

156560067、159688634 機能

構成で環境変数値を使用する

構成ファイルでタグを使用して環境変数を指定できる機能が追加されました。指定された環境変数タグは、実際の環境変数値に置き換えられます。置換はメモリにのみ保存され、元の構成ファイルやキャッシュ ファイルには保存されません。詳細については、 環境変数値を使用して構成属性を設定するをご覧ください。

155077210 バグ ログの形式に関する問題を修正しました。

ターゲット ホストがログに余分なコロンで接続されて表示される問題を修正しました。

153673257 バグ

(Edge for Private Cloud のみ)Microgateway 対応プロダクトが pull されない

マイクロゲートウェイ対応プロダクトが pull されない問題を修正しました。この問題は、Edge for Private Cloud のインストールでのみ発生しました。

154956890、155008028、155829434 機能 ダウンロードした商品をカスタム属性でフィルタする機能をサポート

詳しくは、カスタム属性で商品をフィルタするをご覧ください。

153949764 バグ ログの宛先ファイルがいっぱいになると Edge Microgateway プロセスがクラッシュする問題を修正しました

エラーをトラップしてコンソールにメッセージを出力するように、例外処理を改善しました。

155499600 バグ 鍵のローテーションと KVM アップグレードに関する問題を修正

JWT 鍵のローテーションもご覧ください。

3.1.4

2020 年 4 月 23 日(金曜日)に、Edge Microgateway に対する次の修正をリリースしました。

バグの修正:

バージョン 3.1.3 の依存関係の問題を修正しました。バージョン 3.1.3 は、npm リポジトリ非推奨とマークされています。それ以外の場合、バージョン 3.1.3 リリースノートに記載されているバグの修正と機能強化はすべて、このリリースに適用されます。

3.1.3

2020 年 4 月 15 日(水)に、Edge Microgateway に対する次の修正と機能強化をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.1.3 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.1.3 3.1.3 3.1.3 3.0.14 3.0.9

バグの修正と機能の改善:

  • 153509313 - Node.js デバッグ モジュールがメモリリークを引き起こす問題を修正しました。 この問題は、バージョン v3.1.0、v3.1.1、3.1.2 に存在します。
  • 153509313 - 2 つの異なるトランザクションの同じメッセージ ID がロギング出力に印刷される問題を修正しました。
  • 151673570 - 新しい Apigee KVM API を使用するように Edge Microgateway が更新されない問題を修正しました。Edge Microgateway は、KVM 値の追加と更新に新しいコマンドを使用します。
  • 152822846 - 以前のリリースでは、リソースパス マッピングの処理が Apigee Edge と一致するように Edge Microgateway が更新されました。このリリースでは、パターン /literal_string/* が正しく処理されない問題を修正しました。例: /*/2/* リソースパス「/」、「/*」、「/**」の動作を構成するもご覧ください。
  • 152005003 - 割り当てに組織と環境のスコープ ID を有効にするように変更されました。
  • 152005003 - 割り当てに組織と環境のスコープ ID を有効にするように変更されました。割り当て識別子として「org + env + appName + productName」の組み合わせが使用されます。

3.1.2

2020 年 3 月 16 日(月)に、Edge Microgateway に対する次の修正と改善をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.1.3 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.1.2 3.1.2 3.1.2 3.0.13 3.0.9

バグの修正と機能の改善:

  • 151285018 - Edge Microgateway とバックエンド ターゲット間のトラフィックに対する HTTP プロキシのサポートを追加する機能が強化されました。また、Edge Microgateway と Apigee Edge 間の既存の HTTP プロキシ サポートに関する問題も修正されました。詳しくは、以下をご覧ください。
  • 149101890 - ターゲット サーバーまたはロードバランサが接続を閉じる場合のログの通知コードが ERROR から INFO に変更されました。
  • 150746985 - 構成ファイルに redisBasedConfigCache: true または quotaUri: https://%s-%s.apigee.net/edgemicro-auth のいずれかが存在する場合に、edgemicro verify コマンドが正しく機能しない問題を修正しました。
  • 151284716 - 再読み込み中にワーカーが再起動されたときに、サーバー接続をより迅速に閉じるように改善されました。
  • 151588764 - Node.js v8 が非推奨になったため、Docker コンテナで Edge Microgateway を実行するために使用される Docker イメージの Node.js バージョンを 12 に更新しました。
  • 151306049 - Edge Microgateway CLI コマンドによって使用される Apigee Edge 管理 API を一覧表示するようにドキュメントが更新されました。 Edge Microgateway で使用する管理 API はどれですか?をご覧ください。

3.1.1

2 月 20 日(木)に、Edge Microgateway に対する次の修正と改善をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.1.1 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.1.1 3.1.1 3.1.1 3.0.13 3.0.9

バグの修正と機能の改善:

  • 146069701 - microgateway-core モジュールが HTTP_PROXY 環境変数と HTTPS_PROXY 環境変数を尊重しない問題を修正しました。この変更により、YAML 構成ファイルのプロキシ設定(指定されている場合)は無視され、プロキシの指定には環境変数のみが使用されます。

    構成ファイルでプロキシ構成を指定する場合は、構成ファイルで指定したプロキシ URL と同じプロキシ URL を指定している HTTP_PROXY 変数も指定する必要があります。たとえば、次のように構成を指定するとします。

    edge_config:
      proxy: http://10.128.0.20:3128
      proxy_tunnel: true

    また、次の環境変数も指定する必要があります。

    HTTP_PROXY=http://10.128.0.20:3128
  • 146320620 - 新しい構成パラメータ edgemicro.headers_timeout が追加されました。この属性は、HTTP パーサーが完全な HTTP ヘッダーを受信するまで待機する時間(ミリ秒単位)を制限します。次に例を示します。
    edgemicro:
    keep_alive_timeout: 6000
    headers_timeout: 12000

    内部的には、このパラメータによってリクエスト時に Node.js に Server.headersTimeout 属性が設定されます(デフォルト: edgemicro.keep_alive_timeout の設定よりも 5 秒長い時間。このデフォルト設定により、ロードバランサまたはプロキシが誤って接続を切断するのを防ぐことができます)。

  • 149278885 - 1 つのグローバル タイムアウト設定を使用する代わりに、API プロキシ レベルでターゲット API タイムアウトを設定できる新機能が追加されました。

    API プロキシで TargetEndpoint プロパティ io.timeout.millis を設定すると、Edge Microgateway はそのプロパティを取得し、ターゲット エンドポイント固有のタイムアウトを適用できます。このパラメータが適用されていない場合、Edge Microgateway は edgemicro.request_timeout で指定されたグローバル タイムアウトを使用します。

3.1.0

1 月 21 日(火)に、Edge Microgateway に対する次の修正と機能強化をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.1.0 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.1.0 3.1.0 3.1.0 3.0.12 3.0.9

バグの修正と機能の改善:

  • 144187500 - quotas.failOpen フラグがトリガーされると、新しい WARN レベルのイベントがログに記録されます。このフラグは、割り当て処理でエラーが発生するか、Edge に対する「割り当て適用」リクエストが失敗して、リモートの割り当てカウンタを更新できなかった場合にトリガーされます。この場合、割り当ては、次回リモート割り当ての同期が成功するまでローカル カウントに基づいて処理されます。以前は、このイベントはログレベルが DEBUG に設定されている場合にのみログに記録されていました。

    次に例を示します。

    2020-01-20T02:52:53.040Z [warn][localhost:8000][5][foo-eval][test][hello/][]
    [DbpGIq9jKfzPX8jvXEivhA0LPwE][f372cc30-3b2f-11ea-845f-a627f][quota][remote quota not
    available so processing locally, setting quota-failed-open for identifier: AppQuota60.Quota60]
    [GET][][][][]
  • 145023519 - Edge Microgateway が API プロキシの変更を検出するたびに、処理中または新しいトランザクションに影響する問題を修正しました。プロキシに変更が加えられると、Edge Microgateway はキャッシュを更新し、ワーカーノードを再起動します。この変更により、処理中のトランザクションとマイクロゲートウェイに送信される新しい API 呼び出しは影響を受けません。
  • 146378327 - sourceRequesttargetRequesttargetResponse のログレベルが INFO レベルに変更されました。
  • 146019878 - Edge アナリティクスの [API Proxy Performance] で計算されたレイテンシと、Edge Microgateway の sourceResponse/targetResponse ログイベントで計算されたレイテンシの差異が修正されました。これにより、Edge アナリティクスと Microgateway ログイベントのレイテンシが調整されました。
  • パターン マッチング ロジックに関連する変更:
    • 147027862 - API プロダクトで指定されている次のリソースパス マッチング パターンをサポートするように、oauth プラグインを更新しました。
      • /{literal}**
      • /{literal}*
      • 上記の 2 つのパターンの任意の組み合わせ

      この変更により、Edge Microgateway プラグインは、リソースパス「/」、「/*」、「/**」の動作を構成するで説明されているように、Apigee Edge と同じパターン マッチングに従うようになりました。

    • 145644205 - oauth プラグインと一致するように、apiKeys プラグインのパターン マッチング ロジックを更新。
  • 143488312 - クライアント ID パラメータの先頭または末尾にスペースが含まれていると、OAuth トークンと API キーのリクエストで JWT プロダクト リストが空になる問題を修正しました。
  • 145640807、147579179 - 「Synchronizer」という特別な Edge Microgateway インスタンスが Apigee Edge から構成データを取得し、ローカルの Redis データベースに書き込むことができる新機能が追加されました。他の Microgateway インスタンスは、データベースから構成データを読み取るように構成できます。この機能により、Edge Microgateway の復元力が向上します。これにより、Microgateway インスタンスは Apigee Edge との通信を必要とせずに起動して機能できます。詳しくは、同期ツールの使用をご覧ください。

    Synchronizer は現在、Redis 5.0.x で動作します。

バージョン 3.0.x

バグの修正と機能の改善 v.3.0.x

3.0.10

11 月 8 日(金)に、Edge Microgateway の次の修正と改善をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.0.10 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.0.10 3.0.8 3.0.8 3.0.11 3.0.8

バグの修正と機能の改善:

  • 142677575 - Edge Microgateway の API プロダクトで使用されるリソースパスのパターン マッチングが、 「/」、「/*」、「/**」のリソースパスの動作の構成で説明されているように、Apigee Edge で使用されるリソースパスのパターン マッチングと一致するように、機能が更新されました。

    注: /*/2/** などの複合リソース パターンを使用する場合は、edgemicro_auth プロキシがスタンドアロンの API プロダクトに追加されていることを確認する必要があります。次に、次のスクリーンショットに示すように、その商品をプロキシのデベロッパー アプリに含める必要があります。

    alt_text

    注: リソースパス「/」、「/*」、「/**」の動作を構成するで説明されているように、features.isSingleForwardSlashBlockingEnabled 構成プロパティは Edge Microgateway ではサポートされていません。

  • 143740696 - quotas の構成構造が変更されました(バージョン 3.0.9 のリリースノートも参照)。quotas プロパティは、割り当てプラグインを構成するために使用します。構成要素のわかりやすさを改善するために、構造が変更されました。割り当てプラグインを構成するには、次の YAML 構成を使用します。構成プロパティは quotas と呼ばれます。個々の quotas 構成プロパティの詳細については、 割り当ての構成オプションをご覧ください。

    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
          - quota
    quotas:
      bufferSize:
        hour: 20000
        minute: 500
        default: 10000
      useDebugMpId: true
      failOpen: true
    ...
  • 141750056 - Redis を割り当てバッキング ストアとして使用できる新機能が追加されました。useRedis が true の場合、 volos-quota-redis モジュールが使用されます。true に設定すると、割り当ては Redis に接続する Edge Microgateway インスタンスのみに制限されます。false の場合、バックストアとして volos-quota-apigee モジュールが使用され、割り当てカウンタはグローバルになります。詳細については、 割り当ての構成オプションをご覧ください。次に例を示します。
    edgemicro:
    ...
    quotas:
      useRedis: true
      redisHost: localhost
      redisPort: 6379
      redisDb: 1
  • 140574210 - edgemicro-auth プロキシによって生成されるトークンのデフォルトの有効期限が、108,000 ミリ秒(1.8 分)から 1,800 秒(30 分)に変更されました。
  • 143551282 - SAML が有効になっている組織をサポートするため、edgemicro genkeys コマンドが更新され、‑‑token パラメータが追加されました。このパラメータを使用すると、ユーザー名/パスワードの代わりに OAuth トークンを認証に使用できます。詳細については、 鍵の生成をご覧ください。

3.0.9

10 月 11 日(金)に、Edge Microgateway の次の修正と機能強化をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.0.9 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.0.9 3.0.7 3.0.7 3.0.10 3.0.7

バグの修正と機能の改善:

  • 141989374 - 割り当てプラグインに新しい「フェイルオープン」機能が追加されました。 この機能を有効にすると、割り当て処理でエラーが発生するか、Edge に対する「割り当て適用」リクエストが失敗して、リモートの割り当てカウンタを更新できなかった場合に、ローカル カウントに基づいて割り当てが処理されます。この処理は、次回リモート割り当ての同期が成功するまで続けられます。どちらの場合も、リクエスト オブジェクトには quota-failed-open フラグが設定されます。

    quota の「フェイル オープン」機能を有効にするには、次のように構成します。

    quotas :
     failOpen : true

    注: また、OAuth プラグインの fail-open リクエスト オブジェクト フラグの名前が oauth-failed-open に変更されました。

  • 142093764 - 割り当て超過を防ぐために、edgemicro-auth プロキシの構成が変更されました。変更内容は、割り当てタイプを [カレンダー] に設定することです。この改善を利用するには、edgemicro-auth をバージョン 3.0.7 以降に更新する必要があります。
  • 142520568 - 割り当てレスポンスで MP(メッセージ プロセッサ)ID のロギングを有効にする新機能が追加されました。この機能を使用するには、edgemicro-auth プロキシをバージョン 3.0.7 以降に更新し、次の構成を設定する必要があります。
    quotas:
      useDebugMpId: true

    useDebugMpId を設定すると、Edge からの quota のレスポンスに MP ID が含まれるようになり、Edge Microgateway によってログに記録されます。次に例を示します。

    {
        "allowed": 20,
        "used": 3,
        "exceeded": 0,
        "available": 17,
        "expiryTime": 1570748640000,
        "timestamp": 1570748580323,
        "debugMpId": "6a12dd72-5c8a-4d39-b51d-2c64f953de6a"
    }

3.0.8

9 月 26 日(木)に、Edge Microgateway の次の修正と改善をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.0.8 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.0.8 3.0.6 3.0.6 3.0.9 3.0.6

バグの修正と機能の改善:

  • 140025210 - 新しい「フェイルオープン」機能が追加されました。この機能により、edgemicro-auth プロキシへの API キー検証呼び出しが正常に行われない接続エラーが原因で、期限切れの JWT トークンを更新できない場合でも、API 処理を続行できます。

    この機能を使用すると、古いトークンがキャッシュに残り、猶予期間が切れるまで再利用される猶予期間を設定できます。この機能により、一時的な接続障害が発生した場合でも、Edge Microgateway はリクエストの処理を続行できます。接続が再開され、API キーの検証呼び出しが正常に完了すると、新しい JWT が取得され、キャッシュ内の古い JWT に置き換えられます。

    新しい「フェイル オープン」機能を構成する手順は次のとおりです。

    1. Edge Microgateway 構成ファイルの oauth スタンザで、次のプロパティを設定します。
      oauth:
        failOpen: true
        failopenGraceInterval: time_in_seconds
        cacheKey: true
        ...

      次に例を示します。

      oauth:
        failOpen: true
        failopenGraceInterval: 5
        cacheKey: true
        ...

      この例では、接続の問題が原因で更新できない場合、古いトークンが 5 秒間使用されます。5 秒経過すると、認証エラーが返されます。

  • 141168968 - すべてのプラグインのログ出力に correlation_id を含めるように更新されました。また、一部のログのログレベルは、必要に応じて error に変更されました。
  • 140193349 - edgemicro-auth プロキシが更新され、Verify API Key リクエストごとに Edge Microgateway のキーとシークレットの検証が必須になりました。Edge Microgateway が更新され、Verify API Key リクエストごとにキーとシークレットが常に送信されるようになりました。この変更により、クライアントは API キーのみで JWT を取得できなくなります。
  • 140090250 - 割り当て処理の診断ロギングを追加する更新が実施されました。この変更により、quoto ログの出力を他の Edge Microgateway ログと関連付けることができるようになりました。

3.0.7

9 月 12 日(木)に、Edge Microgateway の次の修正と改善をリリースしました。

コンポーネントのバージョン:

次の表に、Edge Microgateway 3.0.7 に関連付けられている個々のコンポーネント プロジェクトのバージョン番号を示します。各コンポーネントは個別のプロジェクトであるため、リリース番号がメイン プロダクトのバージョンと一致しない場合があります。

microgateway core config プラグイン edgeauth
3.0.7 3.0.5 3.0.5 3.0.8 3.0.5

バグの修正と機能の改善:

  • 140075602 - OAuth プラグインを更新し、適切な場合に 5xx ステータス コードを返すようにしました。これまで、このプラグインは 200 以外のすべてのケースで 4xx ステータス コードのみを返していました。これで、200 ステータス以外のメッセージ レスポンスに対して、エラーに応じて正確な 4xx または 5xx コードが返されるようになります。

    この機能はデフォルトでは無効になっています。この機能を有効にするには、Edge Microgateway 構成に oauth.useUpstreamResponse: true プロパティを追加します。次に例を示します。

    oauth:
      allowNoAuthorization: false
      allowInvalidAuthorization: false
      gracePeriod: 10
      useUpstreamResponse: true
  • 140090623 - リリース 3.0.6 で、新しい構成プロパティ quota.quotaUri が追加されました。 組織にデプロイされている edgemicro-auth プロキシを介して割り当てを管理する場合は、この構成プロパティを設定します。このプロパティが設定されていない場合、割り当てエンドポイントはデフォルトで内部の Edge Microgateway エンドポイントになります。次に例を示します。
    edge_config:
      quotaUri: https://%s-%s.apigee.net/edgemicro-auth

    リリース 3.0.7 では、この新しい構成を受け入れるように edgemicro-auth が更新されました。quotaUri プロパティを使用するには、最新の edgemicro-auth プロキシにアップグレードする必要があります。詳細については、 edgemicro-auth プロキシのアップグレードをご覧ください。

  • 140470888 - 認証を提供するために、割り当て呼び出しに Authorization ヘッダーが追加されました。また、edgemicro-auth プロキシが変更され、割り当て ID から「organization」が削除されました。割り当てエンドポイントはお客様の組織に存在するため、割り当て識別子は不要になります。
  • 140823165 - 次のプロパティ名:
    edgemicro:
        keepAliveTimeout

    がリリース 3.0.6 で誤って記述されていました。正しいプロパティ名は次のとおりです。

    edgemicro:
        keep_alive_timeout
  • 139526406 - デベロッパー アプリに複数のプロダクトがある場合に、割り当て数が正しくカウントされないバグを修正しました。複数の商品を含むアプリ内の各商品に、割り当てが正しく適用されるようになりました。割り当て ID として「appName + productName」の組み合わせが使用されます。

3.0.6

8 月 29 日(木)に、Edge Microgateway の次の修正と改善をリリースしました。

  • 138633700 - 新しい構成プロパティ keepAliveTimeout を追加しました。このプロパティを使用すると、Edge Microgateway のタイムアウト(ミリ秒単位)を設定できます。(デフォルト: 5,000 ミリ秒)

    次に例を示します。

    edgemicro:
      keep_alive_timeout: 600
  • 140090623 - 新しい構成プロパティ quotaUri を追加しました。組織にデプロイされている edgemicro-auth プロキシを介して割り当てを管理する場合は、この構成プロパティを設定します。このプロパティが設定されていない場合、割り当てエンドポイントはデフォルトで内部の Edge Microgateway エンドポイントになります。次に例を示します。
    edge_config:
      quotaUri: https://your_org-your_env.apigee.net/edgemicro-auth
    

    この機能を使用するには、まず最新バージョンの edgemicro-auth プロキシを組織にデプロイする必要があります。詳細については、 edgemicro-auth プロキシのアップグレードをご覧ください。

  • 138722809 - 新しい構成プロパティ stack_trace を追加しました。このプロパティを使用すると、スタック トレースをログファイルに表示するかどうかを制御できます。次に例を示します。
    stack_trace: false

    stack_tracetrue に設定されている場合、スタック トレースはログに出力されます。false に設定されている場合、スタック トレースはログに表示されません。

3.0.5

8 月 15 日(木)に、Edge Microgateway の次の修正と機能強化をリリースしました。

バグの修正
  • 139005279 - edgemicro status コマンドが正しい数のワーカー プロセスを返さない問題を修正しました。
  • 138437710 - ExitCounter クラスで、適切なログが書き込まれない問題を修正しました。
一般的なログ メッセージの改善
  • 139064652 - イベントログとシステムログに tracedebug のロギングレベルを追加する機能を追加しました。現時点では、これらのログレベルを追加する機能のみが追加されています。現在、使用可能なログレベルは infowarnerror です。
  • 139064616 - すべてのコンソール ログ ステートメントでログ出力が標準化されました。コンソール ロギング ステートメントに次の属性が追加されました。
    • タイムスタンプ
    • コンポーネント名
    • プロセス ID
    • コンソールログ メッセージ
JWT キーとシークレットのログ メッセージの改善
  • 138413755 - cert、verify、upgradekvm、token、genkeys、revokekeys、rotatekey、configure の CLI コマンドの JWT 鍵とシークレット関連のログ メッセージを改善。
タイムアウトと接続拒否のエラー メッセージの改善
  • 138413577 - バックエンド サービスのタイムアウトのエラー処理を追加して改善。
  • 138413303 - レスポンスとソケットのタイムアウトのエラー処理を追加して改善。
  • 138414116 - 「接続は拒否されました」エラーのエラー処理を追加して改善。

3.0.4

8 月 1 日(木)に、Edge Microgateway の次の修正と改善をリリースしました。

  • 134445926 - Edge Microgateway 内部認証の改善。
  • 137582169 - 不要なプロセスが起動する問題に対処しました。余分なプロセスによりプラグインが再読み込みされ、メモリ使用量が増加しました。Edge Microgateway は、プロセスの数を想定される上限内に維持します。
  • 137768774 - ログメッセージの改善:
    • トランザクション(リクエスト)ログをクリーンアップしました。
    • 必要に応じてログ メッセージを追加しました。
    • トランザクション(リクエスト)ログ メッセージをコンソール出力から関連するログファイルに移動しました。
    • 一元化されたロギング関数を使用するようにコンソール ログを更新しました。
  • 138321133、138320563 - 今後の割り当ての強化を可能にするために、割り当てバッファに対する基本的な内部変更。

3.0.3

7 月 23 日(火)に、Edge Microgateway の次の修正と機能強化をリリースしました。

  • ロギングの強化: 既存のランタイムログでは、ランタイム データを一貫した形式でキャプチャしてログに記録する新しい eventLog() 関数を使用します。ログ情報には次のものが含まれます。
    • タイムスタンプ(ISO 8601: YYYY-MM-DDTHH:mm:ss.sssZ)。
    • ログレベル(error、warn、info)。
    • ホスト名 - リクエスト ヘッダーからリクエストされたホスト名。
    • プロセス ID - Node.js プロセスのクラスタを実行している場合、これはロギングが発生したプロセスの ID です。
    • Apigee 組織名。
    • 組織内の環境名。
    • API プロキシの名前。
    • クライアントの IP アドレス。
    • ClientId。
    • 相関 ID(現在は設定されていません)。
    • Edge Microgateway コンポーネント名。
    • カスタム メッセージ - 一部のオブジェクトは、このエラー プロパティに渡される追加情報を出力する場合があります。
    • リクエスト メソッド(HTTP リクエストの場合)。
    • レスポンス ステータス コード(HTTP リクエストの場合)。
    • エラー メッセージ
    • エラーコード - オブジェクトにエラーコードが含まれている場合は、このプロパティに印刷されます。
    • 所要時間。
    • オペレーティング システムの 行末マーカー

    プロパティ値が null の場合、空の角かっこ [] になります。

    次の例は、ログの形式を示しています。

    Timestamp [level][hostname][ProcessId][Org][Environment][APIProxy][ClientIp][ClientId][][component][customMessage][reqMethod][respStatusCode][errMessage][errCode][timeTaken]

    (137770055)。

  • パフォーマンス: API プロダクトが環境に基づいてフィルタリングされていませんでした。この問題は解決済みです。(135038879)。
  • その他の機能テストの統合とコード品質の改善。

3.0.2

2019 年 7 月 3 日(水)に、Edge Microgateway の次の修正と機能強化をリリースしました。

コード品質 - コードの品質が審査され、ユーザーが要求する品質基準を満たすようにコードが変更されています。JSHint から派生したコード品質エラーと警告に対処しました。その結果、実際のコードエラーが特定され、修正されました。すべての Apigee Edge Microgateway モジュールがこのプロセスを経ています。microgateway-configmicrogateway-coremicrogateway-pluginsmicrogateway については、6 月 28 日と 7 月 2 日の commit をご覧ください。コード品質が変更されたすべてのモジュールは、お客様のユースケースで Edge Microgateway の実行を確認する内部ツールでテストされています。

3.0.1

2019 年 6 月 21 日(金)に、Edge Microgateway の次の修正と機能強化をリリースしました。

  • 134834551 - Edge Microgateway でサポートされている Node.js バージョンを変更
    (Node.js のサポートされているバージョン: 8 と 12。バージョン 7、9、11 は試験運用版)
  • 134751883 - 負荷がかかっているときに再読み込みすると Edge Microgateway がクラッシュする
  • 134518428 - Edge Microgateway の Products エンドポイントが、フィルタパターンが正しくない場合に 5XX を返す
  • 135113408 - ワーカーが予期せず終了した場合は再起動する必要があります
  • 134945852 - tokenCacheSize が oauth プラグインで使用されない
  • 134947757 - oauth プラグインで cacheTTL を設定する
  • 135445171 - OAuth の gracePeriod の計算が正しくない
  • Edge Microgateway インストールに付属の記憶モジュールを使用する
  • 135367906 - セキュリティ監査

バージョン 2.5.x

新機能と改善点 v.2.5.x

(2.5.38 で修正済み、2019 年 6 月 7 日)

形式が正しくない JWT を使用すると、トークン キャッシュの使用時にワーカーがクラッシュする可能性があります。Edge microgateway-plugins モジュールで修正されました。(b/134672029)

(2.5.37 に追加)CLI オプション edgemicro-cert -t を追加

edgemicro cert -t オプションを使用すると、管理 API を認証する OAuth トークンを指定できます。証明書の管理もご覧ください。

(2.5.35 に追加)edgemicroctl を使用して Edge Microgateway をデバッグするためのサポートを追加。

mgdebug フラグは edgemicroctl で使用できます。Kubernetes 統合タスクもご覧ください。

(2.5.35 に追加)edgemicroctl の Windows ビルドを有効化。

(2.5.31 に追加)新しい edgemicro-auth/token API

新しい edgemicro-auth/token API が追加されました。これにより、client/secret を Base64 エンコードされた Basic 認証ヘッダーとして渡し、grant_type をフォーム パラメータとして渡すことができます。署名なしトークンの直接取得をご覧ください。

(2.5.31 で修正)非公開構成でトークンフラグが考慮されない

Edge for Private Cloud で OAuth2 アクセス トークンを使用するように Edge Microgateway を構成しても正しく機能しなかった(トークンが考慮されなかった)問題を修正しました。

Docker: 自己署名証明書の使用のサポート

(2.5.29 に追加)Node.js によってデフォルトで信頼されていない認証局(CA)を使用している場合は、Edge Microgateway で Docker コンテナを実行するときに NODE_EXTRA_CA_CERTS パラメータを使用できます。詳細については、Node.js によって信頼されていない CA の使用をご覧ください。

Docker: TLS のサポート

(2.5.29 を追加)Docker コンテナで実行される Edge Microgateway が、Edge Microgateway サーバーへの受信リクエスト(上り(内向き)リクエスト)と、Edge Microgateway からターゲット アプリケーションへの送信リクエスト(下り(外向き)リクエスト)の TLS をサポートするようになりました。

次の例では、これらの TLS 構成を設定する方法について詳しく説明します。

これらの例では、コンテナのマウント ポイント /opt/apigee/.edgemicro を使用して証明書を読み込み、Edge Microgateway 構成ファイルで証明書を参照する方法を示します。

Docker: リクエストのプロキシ化のサポート

(2.5.27 を追加)Edge Microgateway を Docker コンテナで実行する場合は、次のオプションを使用して、マイクロゲートウェイがファイアウォールの内側で実行されているときのプロキシ動作を制御できます。

  • HTTP_PROXY
  • HTTPS_PROXY
  • NO_PROXY

詳細については、Docker コンテナとして Edge Micro を実行するをご覧ください。

Docker: プラグインの手順を更新

(2.5.27 で追加)Docker コンテナで Edge Microgateway を実行する場合、プラグインをデプロイする方法が 2 つあります。Docker マウント ポイントを使用する方法が新たに追加されました。以前から存在していたもう 1 つのオプションは、基本的に変更されていませんが、Dockerfile は更新されています。詳しくは、次のリンクを参照してください。

KVM アップグレード コマンドの新しい OAuth トークン サポート

(2.5.27 に追加)upgradekvm コマンドでは OAuth トークンを使用できます。詳細については、KVM のアップグレードをご覧ください。

Edge Analytics での API の分離

(2.5.26 で追加)新しいアナリティクス プラグイン フラグを使用すると、特定の API パスを分離して、Edge Analytics ダッシュボードで個別のプロキシとして表示できます。たとえば、ヘルスチェック API を分離して、実際の API 呼び出しと混同されないようにすることができます。詳しくは、アナリティクスからパスを除外するをご覧ください。

ローカル プロキシの構成

(2.5.25 を追加)ローカル プロキシを使用すると、Apigee Edge で Microgateway 対応プロキシを手動で作成する必要はありません。代わりに、Microgateway はローカル プロキシのベースパスを使用します。詳細については、ローカル プロキシ モードの使用をご覧ください。

スタンドアロン モードの使用

(2.5.25 を追加)Edge Microgateway を Apigee Edge の依存関係から完全に切断して実行できます。このシナリオは、スタンドアロン モードと呼ばれ、インターネット接続なしで Edge Microgateway を実行してテストできます。Edge Microgateway をスタンドアロン モードで実行するをご覧ください。

鍵の取り消し

(2.5.19 に追加)Edge Microgateway 構成の鍵とシークレットの認証情報を取り消す新しい CLI コマンドが追加されました。

edgemicro revokekeys -o [organization] -e [environment] -u [username] -k [key] -s [secret]
詳細については、鍵を取り消すをご覧ください。

Docker のサポート

(2.5.19 を追加)最新の Edge Microgateway リリースを Docker イメージとしてダウンロードできるようになりました。

docker pull gcr.io/apigee-microgateway/edgemicro:latest

Kubernetes のサポート

(2.5.19 を追加)Edge Microgateway は、サービスとして、または Kubernetes クラスタにデプロイされたサービスの前にサイドカー ゲートウェイとしてデプロイできます。参照: Edge Microgateway と Kubernetes の統合の概要

TCP nodelay オプションのサポート

(2.5.16 に追加)Edge Micro 構成に新しい構成設定 nodelay が追加されました。

デフォルトでは、TCP 接続は Nagle アルゴリズムを使用して、データを送信する前にバッファに入れます。nodelaytrue に設定すると、この動作は無効になります(データは socket.write() が呼び出されるたびに即座に送信されます)。詳しくは、Node.js のドキュメントもご覧ください。

nodelay を有効にするには、Edge Micro 構成ファイルを次のように編集します。

edgemicro:
  nodelay: true
  port: 8000
  max_connections: 1000
  config_change_poll_interval: 600
  logging:
    level: error
    dir: /var/tmp
    stats_log_interval: 60
    rotate_interval: 24

Forever モニタリングの新しい CLI オプション

(2.5.12 に追加)edgemicro forever コマンドに新しいパラメータが追加されました。これらのパラメータを使用すると、forever.json ファイルの場所を指定したり、Forever バックグラウンド プロセスを開始または停止したりできます。Forever によるモニタリングもご覧ください。

パラメータ説明
-f, --fileforever.json ファイルの場所を指定します。
-a, --actionstart または stop のいずれか。デフォルトは start です。

例:

Forever を起動するには次を実行します。

edgemicro forever -f ~/mydir/forever.json -a start

Forever を停止するには次を実行します。

edgemicro forever -a stop

JWT 鍵のローテーション

Edge Microgateway の OAuth セキュリティに使用される JWT トークンの生成に使用される公開鍵/秘密鍵のペアをローテーションできる新機能が追加されました。 JWT 鍵のローテーションをご覧ください。

ダウンロードした API プロキシのフィルタリング

デフォルトでは、Edge Microgateway によって、名前接頭辞「edgemicro_」で始まる、Edge 組織内のすべてのプロキシがダウンロードされます。このデフォルトを変更して、名前がパターンに一致するプロキシをダウンロードできます。 ダウンロードされたプロキシのフィルタリングをご覧ください。

API プロキシを含まないプロダクトの指定

Apigee Edge では、API プロキシを含まない API プロダクトを作成できます。このプロダクト構成では、そのプロダクトに関連付けられている API キーを、組織内に展開されたすべてのプロキシと連携させることができます。バージョン 2.5.4 以降、Edge Microgateway はこのプロダクト構成をサポートしています。

永続モニタリングのサポート

Edge Microgateway には、Edge Microgateway を再起動する回数と間隔を制御するために構成できる forever.json ファイルがあります。このファイルは、Forever をプログラムで管理する forever-monitor というサービスを構成します。 Forever によるモニタリングをご覧ください。

Edge Micro 構成ファイルの集中管理

複数の Edge Microgateway インスタンスを実行する場合は、単一の場所から構成を管理できます。そのためには、Edge Micro が構成ファイルをダウンロードできる HTTP エンドポイントを指定します。 構成ファイル エンドポイントの指定をご覧ください。

forever CLI オプションのサポート

(2.5.8 に追加)edgemicro forever [package.json] コマンドを使用して、forever.json ファイルのロケーションを指定します。このコマンドが追加される前は、構成ファイルは Edge Microgateway のルート ディレクトリに配置する必要がありました。

次に例を示します。

edgemicro forever ~/mydir/forever.json

reload コマンドに configUrl オプションを追加

(2.5.8 に追加)edgemicro reload コマンドで --configUrl オプションまたは -u オプションを使用できるようになりました。

JWT 時間の差異の猶予期間

(2.5.7 に追加)OAuth 構成の gracePeriod 属性は、システム クロックと、JWT 認可トークンで指定された Not Before(nbf)または Issued At(iat)時刻の間のわずかな相違が原因で発生するエラーを防止します。このような相違を許容する秒数をこの属性に設定します。 OAuth 属性をご覧ください。

(2.5.7 に追加)OAuth 構成の gracePeriod 属性は、システム クロックと、JWT 認可トークンで指定された Not Before(nbf)または Issued At(iat)時刻の間のわずかな相違が原因で発生するエラーを防止します。このような相違を許容する秒数をこの属性に設定します。 OAuth 属性をご覧ください。

バグの修正 v2.5.x

  • (問題 #236)キャッシュの削除に関する誤字脱字を修正。
  • (問題 #234)Edge Microgateway 2.5.35 の再読み込みでクラッシュが発生する。
  • (問題 #135)-v オプションの使用時に、無効な仮想ホスト参照「secure」エラーが発生する。この修正により、デプロイ前に edgemicro-auth プロキシが変更され、仮想ホストが「-v」フラグで指定されたものと完全に一致するようにします。また、仮想ホストに任意の数と任意の名前を指定できます(デフォルトとセキュアに制限されなくなりました)。
  • (問題 #141)edgemicro reload コマンドは、構成ファイル オプション -c をサポートしていません。なお、本事象はすでに解決しております。
  • (問題 #142)Edge Microgateway は、インストール時に非推奨の暗号について警告します。なお、本事象はすでに解決しております。
  • (問題 #145)Edge Microgateway で割り当てが機能しない。なお、本事象はすでに解決しております。
  • (Apigee コミュニティの問題: https://community.apigee.com/questions/33149/emg-jwt-token-validated-against-both-api-proxies-a.html#answer-33336) JWT トークンは、OAUTH の API プロキシとリソース URI の両方に対して検証されます。この問題は解決済みです。
  • (Apigee コミュニティの問題: https://community.apigee.com/questions/47846/microgateway-not-working-with-oauth.html) Microgateway が OAuth で機能しない。なお、本事象はすでに解決しております。
  • Windows の pidPath を修正しました。
  • (問題 #157)次のエラー メッセージの原因となった問題が修正されました。ReferenceError: deployProxyWithPassword は定義されていません。
  • (問題 #169)Node.js の依存関係を更新(npm 監査)
  • edgemicro-auth プロキシで Edge JWT ポリシーが使用されるようになりました。プロキシは、JWT のサポートを Node.js に依存しなくなりました。

バージョン 2.4.x

新機能と機能強化 v.2.4.x

1. edgemicro-auth プロキシにカスタム エイリアスを設定(PR 116)

edgemicro-auth プロキシのデフォルトのベースパスは変更できます。デフォルトでは、ベースパスは /edgemicro-auth です。変更するには、edgemicro configure コマンドの -x フラグを使用します。

例:

edgemicro configure -x /mypath …


2. ベースパスのワイルドカード サポート(PR 77)

edgemicro_* プロキシのベースパスでは、1 つ以上の「*」ワイルドカードを使用できます。たとえば、/team/*/members というベースパスを指定すると、クライアントは https://[host]/team/blue/membershttps://[host]/team/green/members のどちらも呼び出すことができます。そのため、新しいチームをサポートするために新しい API プロキシを作成する必要がありません。/**/ はサポートされていないことに注意してください。

重要: Apigee では、ベースパスの最初の要素としてワイルドカード「*」を使用できません。たとえば、/*/ 検索はサポートされていません。

3. プライベート クラウド構成用の CLI にカスタム構成パスを追加(PR 99)

デフォルトでは、Microgateway 構成ファイルは ./config/config.yaml にあります。init、configure、start コマンドで、-c フラグまたは --configDir フラグを使用して、コマンドライン上でカスタム構成パスを指定できるようになりました。Private Cloud インストール用のカスタム構成ディレクトリが認識されない問題を修正しました。

例:

edgemicro start -o docs -e test -k abc123 -s xyz456 -c /home/microgateway/config

4. *_PROXY 変数を尊重する(PR 61)

Edge Microgateway がファイアウォールの内側にインストールされていて、パブリック クラウドの Apigee Edge と通信できない場合は、次の 2 つのオプションがあります。

オプション 1:

最初のオプションは、Microgateway 構成ファイルで edgemicro: proxy_tunnel オプションを true に設定することです。

edge_config:
   proxy: http://10.224.16.85:3128
   proxy_tunnel: true

proxy_tunneltrue の場合、Edge Microgateway は HTTP CONNECT メソッドを使用して、単一の TCP 接続を介して HTTP リクエストをトンネリングします。(プロキシを構成するための環境変数で TLS が有効になっている場合も同様です)。

オプション 2:

2 番目のオプションは、プロキシを指定し、Microgateway 構成ファイルで proxy_tunnelfalse に設定することです。次に例を示します。

edge_config:
   proxy: http://10.224.16.85:3128
   proxy_tunnel: false

この場合、変数 HTTP_PROXYHTTPS_PROXYNO_PROXY を設定して、使用する各 HTTP プロキシのホスト、または Edge Microgateway プロキシを処理しないホストを制御できます。NO_PROXY には、Edge Microgateway がプロキシしないドメインのリストをカンマ区切りで指定できます。次に例を示します。

export HTTP_PROXY='http://localhost:3786'
export HTTPS_PROXY='https://localhost:3786'

これらの変数の詳細については、以下をご覧ください。

https://www.npmjs.com/package/request#controlling-proxy-behaviour-using-environment-variables


5. ターゲット リクエストにカスタム タイムアウトを設定する(PR 57)

ターゲット リクエストにカスタム タイムアウトを設定するには、次の構成を使用します。

edgemicro:
    request_timeout: 10

タイムアウトは秒単位で設定します。タイムアウトが発生すると、Edge Microgateway は 504 ステータス コードで応答します。

6. ターゲット レスポンスでカスタム HTTP ステータス メッセージを尊重する(PR 53)

Edge Microgateway は、ターゲット レスポンスに設定されたカスタム HTTP ステータス メッセージを尊重します。以前のリリースでは、ターゲットから送信されたステータス メッセージは Node.js のデフォルトでオーバーライドされていました。

7. X-Forwarded-For ヘッダーで分析用の client_ip を設定できます

存在する場合、X-Forwarded-For ヘッダーは、Edge Analytics で報告される client_ip 変数を設定します。この機能を使用すると、Edge Microgateway にリクエストを送信したクライアントの IP を確認できます。

8. OAuth プラグインの変更

OAuth プラグインは、API キーの検証と OAuth アクセス トークンの検証をサポートしています。この変更前は、プラグインはどちらのセキュリティも受け入れていました。この変更により、これらのセキュリティ モデルのいずれか 1 つだけを許可できます(下位互換性を維持)。

OAuth プラグインに 2 つの新しいフラグが追加されました。

  • allowOAuthOnly - true に設定した場合、すべての API は署名なしアクセス トークンを含む Authorization ヘッダーを保持する必要があります。

  • allowAPIKeyOnly - true に設定した場合、すべての API は API キーを含む x-api-key ヘッダー(またはカスタムの場所)を保持する必要があります。

これらのフラグは、Edge Microgateway 構成ファイルで次のように設定します。

oauth:
    allowNoAuthorization: false
    allowInvalidAuthorization: false
    keep-authorization-header: false
    allowOAuthOnly: false
    allowAPIKeyOnly: false

9. edgemicro-auth プロキシを改善しました(PR 40)

edgemicro-auth プロキシが改善されました。これらの変更が行われる前は、プロキシは暗号化されたボールトである Edge Secure Store に鍵を保存していました。これで、プロキシは Edge の暗号化された Key-Value マップ(KVM)に鍵を保存します。

10. プラグインのデフォルトのターゲット URL の書き換え(PR 74)

ターゲットのエンドポイント ポートをオーバーライドして、HTTP と HTTPS のどちらかを選択することもできます。そのためには、プラグイン コードで変数 req.targetPort および req.targetSecure を変更します。HTTPS を選択する場合は、req.targetSecuretrue に設定します。HTTP の場合は false に設定します。req.targetSecure を true に設定する場合の詳細については、こちらのディスカッション スレッドをご覧ください。

11. OAuth トークン認証の初期サポート (PR 125)

ユーザー名/パスワードの代わりに OAuth トークンを認証に使用するように Edge Microgateway を構成できます。OAuth トークンを使用するには、edgemicro configure コマンドで次のパラメータを使用します。

-t, --token <token>

次に例を示します。

edgemicro configure -o docs -e test -t <your token>

バグの修正 v2.4.3

  • edgemicro-auth プロキシを適切に実行するために有料の組織が必要だった問題を修正しました。これで、トライアル組織でも Edge Microgateway を使用できるようになりました。(PR 5)
  • ストリームのデータ処理が完了していないにもかかわらず、エンドハンドラが実行される問題を修正しました。これにより、部分的なレスポンスが送信されました。(PR 71)
  • Private Cloud インストール用のカスタム構成ディレクトリが認識されない問題を修正しました。(PR 110)
  • クライアントと Edge Microgateway 間の双方向 SSL に関する問題を修正しました。(PR 70)
  • API キー検証が正しく機能するためにプロキシのベースパスに末尾のスラッシュが必要だった問題を修正しました。ベースパスの末尾にスラッシュを付ける必要がなくなりました。 (PR 48)

バージョン 2.3.5

新機能と改善点 v.2.3.5

プロキシ フィルタリング

Edge Microgateway インスタンスが処理する Microgateway 対応プロキシをフィルタリングできます。Edge Microgateway を起動すると、組織内の関連付けられているすべての Microgateway 対応プロキシがダウンロードされます。Microgateway が処理するプロキシを制限するには、次の構成を使用します。たとえば、この構成では、Microgateway が処理するプロキシが、edgemicro_proxy-1edgemicro_proxy-2edgemicro_proxy-3 の 3 つに制限されます。

proxies:
  - edgemicro_proxy-1
  - edgemicro_proxy-2
  - edgemicro_proxy-3

アナリティクス データのマスキング

新しい構成では、Edge Analytics にリクエストパス情報が表示されなくなります。Microgateway 構成に次のコードを追加して、リクエスト URI やリクエストパスをマスクします。URI はリクエストのホスト名とパス部分で構成されます。

analytics:
  mask_request_uri: 'string_to_mask'
  mask_request_path: 'string_to_mask'

バージョン 2.3.3

新機能と改善点 v.2.3.3

このリリースの新機能と機能強化は次のとおりです。

変更の自動ポーリングを無効にする

変更の自動ポーリングを無効にするには、マイクロゲートウェイ構成で次の属性を設定します。

disabled_config_poll_interval: true

デフォルトでは、定期的なポーリングにより、Edge で行われた変更(プロダクト、Microgateway 対応プロキシなどへの変更)と、ローカル構成ファイルに対する変更が取得されます。デフォルトのポーリング間隔は 600 秒(5 分)です。

プラグイン内のターゲット URL の書き換え

プラグイン コードで変数 req.targetHostname および req.targetPath を変更すると、プラグインのデフォルト ターゲット URL を動的にオーバーライドできます。

新しいプラグイン関数シグネチャ

ターゲット レスポンスを引数として提供する新しいプラグイン関数シグネチャが追加されました。この追加により、プラグインがターゲット レスポンスに簡単にアクセスできるようになります。

function(sourceRequest, sourceResponse, targetResponse, data, cb)

デフォルトのロギング出力の簡素化

デフォルトでは、ロギング サービスは、ダウンロードされたプロキシ、プロダクト、JWT の JSON を省略します。これらのオブジェクトを出力するようにデフォルトを変更するには、Edge Microgateway の起動時に DEBUG=* を設定します。次に例を示します。

DEBUG=* edgemicro start -o docs -e test -k abc123 -s xyz456

CLI にカスタム構成パスを追加

デフォルトでは、microgateway 構成ファイルは ./config/config.yaml にあります。init、configure、start コマンドで、コマンドラインでカスタム構成パスを指定できるようになりました。次に例を示します。

edgemicro start -o docs -e test -k abc123 -s xyz456 -c /home/microgateway/config

バグの修正 v2.3.3

  • 大規模なリクエスト/レスポンス中に発生するメモリリークを修正しました。
  • プラグインの実行順序を修正しました。これで、ドキュメントに記載されている動作になります。
  • プラグイン accumulate-request が GET リクエストでハングしなくなった。
  • レスポンス本文がないためエラーが発生する accumulate-response プラグインの問題を修正しました。

リリース 2.3.1

設置に関する注意事項

以前のバージョンの Edge Microgateway では、ZIP ファイルをダウンロードしてソフトウェアをインストールできます。これらの ZIP ファイルはサポートされていません。Edge Microgateway をインストールするには、次のものを使用する必要があります。

npm install -g edgemicro

詳細については、インストール トピックをご覧ください。

新機能と改善点 v.2.3.1

このリリースの新機能と機能強化は次のとおりです。

プロキシをフィルタする

新しい構成を使用すると、Edge Microgateway が起動時に読み込むプロキシをフィルタできます。以前は、microgateway は、edgemicro configure コマンドで指定した Edge 組織/環境から pull されたすべての Microgateway 対応プロキシ(edgemicro_* という名前のプロキシ)を読み込んでいました。この新機能を使用すると、このプロキシのリストをフィルタして、Edge Microgateway が指定したプロキシのみを読み込むようにできます。次のように、microgateway 構成ファイルに proxies 要素を追加します。

edge micro:
proxies:
    - edgemicro_[name]
    - edgemicro_[name]
    ...

たとえば、Edge org/env に edgemicro_fooedgemicro_bar という名前の 50 個の edgemicro_* プロキシがあるとします。次のようにして、これらの 2 つのプロキシのみを使用するようにマイクロゲートウェイに指示できます。

edge micro:
proxies:
    - edgemicro_foo
    - edgemicro_bar

起動時に、Microgateway は指定されたプロキシのみを呼び出します。Edge の組織または環境からダウンロードされた他の Microgateway 対応プロキシを呼び出そうとすると、エラーが発生します。

プラグインでターゲット リクエスト ヘッダーを設定する

ターゲット リクエスト ヘッダーを追加または変更する場合は、2 つの基本パターンがあります。1 つは、受信リクエストにデータが含まれているパターン(POST リクエストなど)で、もう 1 つはデータが含まれていないパターン(単純な GET リクエストなど)です。

受信リクエストにデータが含まれており、ターゲット リクエストにリクエスト ヘッダーを設定するケースについて考えてみましょう。以前のバージョンの Edge Microgateway では、この場合、ターゲット ヘッダーを信頼性を持って設定することはできませんでした。

このパターンのポイントは、まずクライアントから受信したすべてのデータを蓄積することです。次に、onend_request() 関数で新しい関数 request.setOverrideHeader(name, value) を使用してヘッダーをカスタマイズします。

以下に、その方法を示すサンプル プラグイン コードを示します。onend_request で設定されたヘッダーがターゲットに送信されます。

module.exports.init = function(config, logger, stats) {


  function accumulate(req, data) {
    if (!req._chunks) req._chunks = [];
    req._chunks.push(data);
  }

  return {

    ondata_request: function(req, res, data, next) {
      if (data && data.length > 0) accumulate(req, data);
      next(null, null);
    },

    onend_request: function(req, res, data, next) {
      if (data && data.length > 0) accumulate(req, data);
      var content = Buffer.concat(req._chunks);
      delete req._chunks;
      req.setOverrideHeader('foo', 'bar');
      req.setOverrideHeader('content-length', content.length);
      next(null, content);
    },


    onerror_request: function(req, res, data, next) {
      next(null, null);
    }

  };

}

リクエストにデータが含まれていない場合は、onrequest() ハンドラでターゲット ヘッダーを設定できます。このパターンは新しいものではありません。以前にドキュメント化されており、Edge Microgateway に付属のサンプル プラグインで使用されています。

onrequest: function(req, res, next) {
      debug('plugin onrequest');
      req.headers['x-foo-request-id'] = "bar";
      req.headers['x-foo-request-start'] = Date.now();
      next();
    }

ダウンタイムなしの再読み込み機能

Edge Microgateway の構成を変更した後、メッセージをドロップすることなく構成を読み込むことができます。この変更により、Edge Microgateway は常にクラスタモードで起動するようになり、--cluster オプションは edgemicro start コマンドから削除されました。

また、3 つの新しい CLI コマンドが追加されました。これらのコマンドは、edgemicro start コマンドを実行したディレクトリから実行する必要があります。

  • edgemicro status - Edge Microgateway が実行されているかどうかを確認します。
  • edgemicro stop - Edge Microgateway クラスタを停止します。
  • edgemicro reload - ダウンタイムなしで Edge Microgateway 構成を再読み込みします。

ダウンタイムなしで構成を自動的に再読み込み

Edge Microgateway は新しい構成を定期的に読み込み、変更があれば再読み込みします。ポーリングにより、Edge で行われた変更(プロダクト、Microgateway 対応プロキシなどへの変更)と、ローカル構成ファイルに対する変更が取得されます。デフォルトのポーリング間隔は 600 秒(5 分)です。Microgateway 構成ファイルでデフォルトを次のように変更できます。

edgemicro:
    config_change_poll_interval: [seconds]

CLI にバージョン情報を追加。

--version フラグが CLI に追加されました。Edge Microgateway の現在のバージョンを取得するには、次のコマンドを使用します。

edgemicro --version

新しい Edge Microgateway サーバー SSL オプション

Edge Microgateway は、keycert に加えて、次のサーバー SSL オプションをサポートするようになりました。

オプション 説明
pfx PFX 形式のクライアントの秘密鍵、証明書、CA 証明書を含む pfx ファイルのパス。
passphrase 秘密鍵または PFX のパスフレーズを含む文字列。
ca PEM 形式の信頼された証明書のリストを含むファイルのパス。
ciphers 「:」で区切られた、使用する暗号を記述する文字列。
rejectUnauthorized true の場合、サーバー証明書は提供された CA のリストと照合されます。検証で不合格だった場合は、エラーが返されます。
secureProtocol 使用する SSL メソッド。たとえば、SSL を強制的にバージョン 3 にするには、SSLv3_method。
servername SNI(Server Name Indication)TLS 拡張のサーバー名。

ログファイルを stdout に送信する

新しい構成設定で、ログデータを標準出力に送信できます。

edgemicro:
  logging:
    to_console: true  

ログファイルの管理をご覧ください。

バージョン 2.1.2

このリリースの新機能と機能強化は次のとおりです。

構成にカスタム API エンドポイントを許可

カスタム認証サービスの使用をサポートする、構成可能な新しい認可プロキシ エンドポイントが追加されました。これらのエンドポイントは次のとおりです。

  • edgeconfig:verify_api_key_url
  • edgeconfig:products

詳細については、 カスタム認証サービスの使用をご覧ください。

バージョン 2.1.1

このリリースの新機能と機能強化は次のとおりです。

クロス プラットフォームに対応した認証プロキシをデプロイする

Edge Microgateway 認可プロキシを Edge にデプロイするために使用されるコマンドが Windows システムで互換性を持つように機能が強化されました。

バージョン 2.1.0

新機能と改善点 v.21.0

新機能と改善点は次のとおりです。

クライアント SSL/TLS オプションを指定する

新しい一連の構成オプションを使用して、ターゲットへの SSL/TSL 接続のクライアント オプションを指定できます。 クライアント SSL/TLS オプションの使用をご覧ください。

バージョン 2.0.11

インストールに関する注意事項 v2.0.11

以前のバージョンの Edge Microgateway では、ZIP ファイルをダウンロードしてソフトウェアをインストールできます。これらの ZIP ファイルはサポートされていません。Edge Microgateway をインストールするには、次のものを使用する必要があります。

npm install -g edgemicro

詳細については、インストール トピックをご覧ください。

新機能と改善点 v.2.0.11

新機能と改善点は次のとおりです。

起動時にポートを指定する

start コマンドでは、ポート番号を指定して構成ファイルで指定されたポートをオーバーライドできます。PORT 環境変数を使用してポート番号を指定することもできます。詳細については、start コマンドをご覧ください。

必要に応じて認証ヘッダーを保持する

新しい構成設定 keepAuthHeader を使用すると、リクエストで送信された Authorization ヘッダーを保持できます。true に設定すると、Auth ヘッダーがターゲットに渡されます。 oauth 属性をご覧ください。

カスタム認可サービスを使用できる

独自のカスタム サービスを使用して認証を処理する場合は、Edge Microgateway 構成ファイルの authUri 値を変更し、サービスを指すようにします。詳細については、 カスタム認証サービスの使用をご覧ください。

バージョン 2.0.4

Edge Microgateway v.2.0.4 は 2016 年 5 月 25 日にリリースされました。

新機能と改善点 v2.0.4

このリリースにおける新機能と改善点は次のとおりです。

商品のリソースパスのサポート

Edge Microgateway で、プロダクトのリソースパスがサポートされるようになりました。リソースパスを使用すると、プロキシパスの接尾辞に基づいて API へのアクセスを制限できます。プロダクトの作成とリソースパスの構成の詳細については、API プロダクトを作成するをご覧ください。

npm global install のサポート

npm -g(グローバル)オプションを使用して Edge Microgateway をインストールできるようになりました。このオプションの詳細については、npm のドキュメントをご覧ください。

バージョン 2.0.0

Edge Microgateway v2.0.0 は 2016 年 4 月 18 日にリリースされました。

新機能と改善点 v.2.0.0

このリリースにおける新機能と改善点は次のとおりです。

単一プロセス サーバー

Edge Microgateway は単一プロセス サーバーになりました。1 つのプロセス(以前は「エージェント」と呼ばれていました)が Edge Microgateway(2 番目のプロセス)を起動する 2 プロセス モデルは使用されなくなりました。新しいアーキテクチャにより、自動化とコンテナ化が容易になります。

名前空間方式の構成ファイル

構成ファイルは、組織と環境を使用して名前空間に分割されるため、複数の Microgateway インスタンスを同じホストで実行できます。構成ファイルは、Edge Microgateway config コマンドを実行した後に ~/.edgemicro にあります。

新しい環境変数

環境変数は EDGEMICRO_ORG、EDGEMICRO_ENV、EDGEMICRO_KEY、EDGEMICRO_SECRET の 4 つになりました。これらの変数をシステムに設定すると、コマンドライン インターフェース(CLI)を使用して Edge Microgateway を構成および起動するときに、これらの値を指定する必要がなくなります。

キャッシュに保存された構成

Edge Microgateway は、Apigee Edge への接続なしで再起動した場合は、キャッシュに保存された構成ファイル を使用します。

クラスタモード

Edge Microgateway をクラスタモードで起動するオプションが追加されました。クラスタモードを使用すると、マルチコア システムを利用できます。この機能では、マイクロゲートウェイは Node.js クラスタ モジュールを使用します。詳細については、Node.js のドキュメントをご覧ください。

バグの修正 v2.0.0

プラグイン イベントのライフサイクルで、新しいコールバックを含むコードを含む非同期コードが適切に処理されるようになりました。

バージョン 1.1.2

Edge Microgateway v. 1.1.2 は 2016 年 3 月 14 日にリリースされました。

新機能と改善点 v.1.1.2

このリリースにおける新機能と改善点は次のとおりです。

パフォーマンスの改善

Edge Microgateway で Node.js HTTP エージェントが適切に使用されるようになり、接続プールが改善されました。この機能強化により、高負荷時のパフォーマンスと全体的な安定性が向上します。

リモート デバッガのサポート

node-inspector などのリモート デバッガで実行するように Edge Microgateway を構成できます。

新しい構成ファイルの場所

Edge Microgateway を構成すると、agent/config/default.yaml ファイルが ~./edgemicro/config.yaml にコピーされます。

ログファイルのローテーション

新しい config 属性を使用すると、Edge Microgateway ログのローテーション間隔を指定できます。

バグの修正 v1.1.2

バージョン 1.1.2 では、以下のバグが修正されています。

説明
オンプレミス Edge で使用される edgemicro 内部プロキシの Java コールアウトで、適切な MGMT サーバーが使用されるようになりました。
エージェントから TypeScript の依存関係を削除。
リーン デプロイ オプションを使用する際の CLI バグを修正。
証明書ロジックの依存関係参照を修正。