Edge Microgateway リリースノート

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

バージョン 3.3.x

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

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 pluginで JSON から XML へのレスポンスの変換中、および accumulate-response pluginと組み合わせて使用すると、解析エラーがスローされるという問題が修正されました。

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 に影響します。ファイル名をオブジェクトのプロトタイプ値(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 機能

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

192534424 バグ

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

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

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

171538483 バグ

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

157908466 バグ

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

215748427 バグ 既存の鍵とシークレットのペアを使用して鍵を取り消す際に、recallkeys コマンドでエラーが返される問題を修正しました。
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 バグ 一部のリクエストが microgateway の内部再読み込みアクティビティ中に停止する問題を修正しました。この問題は断続的に発生し、トラフィックが多い状況で発生しました。この問題は、OAuth プラグインの tokenCache 機能と cacheKey 機能を使用したときに発生していました。
183910111 バグ 末尾にスラッシュが付いたリソースパス URL が、別のリソースパスと誤って解釈される問題を修正しました。たとえば、パス /country/all/country/all/ は同じパスとして解釈されます。

修正されたセキュリティ問題

問題 ID 説明
CVE-2020-28503 2.0.5 より前のパッケージのコピー - props は、メインの機能を介して Prototype Pollution に対して脆弱です。
CVE-2021-23343 パッケージのパス解析のすべてのバージョンに、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 が、秒単位で指定された整数値として 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.pidedgemicro.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 v0.5.1 より前の Node.js の mixme では、攻撃者が mut() および merge() 関数を使用して '__proto__' を介してオブジェクトのプロパティを追加または変更できます。汚染された属性は、プログラム内のすべてのオブジェクトに直接割り当てられます。これにより、プログラムが利用できなくなると、サービス拒否攻撃(DoS)が発生する可能性があります。
CVE-2021-30246 10.1.13 までの Node.js 用の jsrsasign パッケージでは、一部の無効な RSA PKCS#1 v1.5 署名が有効と誤って認識されます。注: 既知の実用的な攻撃はありません。
CVE-2021-23358 パッケージのアンダースコアが 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 Node.js バージョン 12.22 を使用するように Docker イメージが更新されました

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 バグ JWK 鍵が null 値であるとアプリケーションが失敗するという問題を修正しました。

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

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

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

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

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

API プロダクトには、保留中、承認済み、取り消しの 3 つのステータス コードがあります。allowProductStatus という新しいプロパティが edgemicro-auth プロキシの Set JWT Variables ポリシーに追加されました。このプロパティを使用して、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. プロキシを保存します。

    Property タグが存在しない場合、すべてのステータス コードを持つプロダクトが JWT に一覧表示されます。

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

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

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

環境変数のシナリオの場合、この問題を解決するために、Process Explorer のコマンドライン引数に値が表示されなくなりました。

microgateway の起動時に鍵とシークレットの値がコマンドラインで渡されると、環境変数の値が設定されている場合は、この設定が優先されます。この場合、値は引き続き Process Explorer のコマンドライン引数で表示されます。

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 機能 分析プラグインを無効にできません。

以前のバージョンの microgateway では、分析プラグインがデフォルトで有効になっていて、無効にする方法はありませんでした。バージョン 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 バグ アクセス制御プラグインが「allow」と「deny」のセクションを正しく処理していませんでした。

microgateway が拒否セクションを適切に処理し、「allow」セクションと「deny」セクションの順序に従うようになりました。Apigee Edge の AccessControl ポリシーと同等の機能を提供するために、新しい noRuleMatchAction プロパティが microgateway 構成ファイルに追加されました。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/v1https://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 オブジェクトに値が入力されない

Apigee Edge 構成は、Edge Microgateway 構成ファイルとの統合後に、すべてのカスタム プラグインの構成オブジェクトで使用可能になります。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 されない

microgateway 対応プロダクトが 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 - Edge Microgateway が新しい Apigee KVM API を使用するように更新されない問題を修正しました。Edge Microgateway では、新しいコマンドを使用して KVM 値の追加と更新を行うようになりました。
  • 152822846 - 以前のリリースでは、リソースパス マッピングの処理が Apigee Edge の処理と一致するように Edge Microgateway が更新されました。このリリースでは、パターン /literal_string/* が正しく処理されない問題を修正しました。例: /*/2/* リソースパス「/」、「/*」、「/**」の動作を構成するもご覧ください。
  • 152005003 - 割り当てで組織および環境スコープの識別子を有効にするための変更が行われました。
  • 152005003 - 割り当てで組織および環境スコープの識別子を有効にするための変更が行われました。「org + env + appName + productName」の組み合わせが割り当て ID として使用されます。

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 を示す 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 はキャッシュを更新し、ワーカーノードが再起動します。この変更により、処理中のトランザクションや microgateway に送信される新しい API 呼び出しは影響を受けません。
  • 146378327 - sourceRequesttargetRequesttargetResponse のログレベルが INFO レベルに変更されました。
  • 146019878 - Edge Analytics の「API プロキシ パフォーマンス」と Edge Microgateway の sourceResponse/targetResponse ログイベントで計算されたレイテンシの不一致が修正されました。これで、Edge Analytics と Microgateway ログイベントのレイテンシが一致します。
  • パターン マッチング ロジックに関連する変更:
    • 147027862 - OAuth プラグインが更新され、API プロダクトで指定されている次のリソースパス マッチング パターンがサポートされるようになりました。
      • /{literal}**
      • /{literal}*
      • 上記の 2 つのパターンの任意の組み合わせ

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

    • 145644205 - apiKeys プラグインのパターン マッチング ロジックを oauth プラグインに合わせて更新。
  • 143488312 - クライアント ID パラメータの先頭または末尾にスペースがあると、OAuth トークンと API キーのリクエストに対して JWT プロダクト リストの作成が空になる問題が修正されました。
  • 145640807 および 147579179 - 「the Synchronizer」という特別な Edge Microgateway インスタンスで Apigee Edge から構成データを取得してローカルの Redis データベースに書き込むことができる新機能が追加されました。その後、データベースから構成データを読み取るように他の microgateway インスタンスを構成できます。この機能により、Edge Microgateway のレジリエンスが強化されます。Apigee Edge と通信しなくても、Microgateway インスタンスを起動して機能させることができます。詳細については、Synchronizer の使用をご覧ください。

    Syncrhonizer 機能は現在、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 プロパティは、Quota プラグインの構成に使用されます。構成要素をわかりやすくするため、構造を変更しました。 割り当てプラグインを構成するには、次の 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 フラグが設定されます。

    割り当ての「フェイル オープン」機能を有効にするには、次の構成を設定します。

    quotas :
     failOpen : true

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

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

    useDebugMpId が設定されている場合、Edge からの割り当てレスポンスに 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 でリクエストの処理を継続できます。接続が再開し、Verify API Key の呼び出しが成功すると、新しい 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 - 必要に応じて 5xx ステータス コードを返すように OAuth プラグインが更新されています。これまで、プラグインは 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」が削除されました。割り当てエンドポイントがお客様の組織に存在するため、割り当て ID は必要ありません。
  • 140823165 - 次のプロパティ名:
    edgemicro:
        keepAliveTimeout

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

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

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 - イベントログとシステムログに trace および debug のロギングレベルを追加する機能を追加。現時点では、これらのログレベルを追加する機能のみが追加されました。現在、利用可能なログレベルは infowarnerror です。
  • 139064616 - ログ出力がすべてのコンソール ログ ステートメントで標準化されました。コンソールのロギング ステートメントに次の属性が含まれるようになりました。
    • タイムスタンプ
    • コンポーネント名
    • プロセス ID
    • コンソールのログメッセージ
JWT キーとシークレット ログ メッセージの改善
  • 138413755 - CLI コマンド cert、verify、upgradekvm、token、genkeys、rereachkeys、rotatekey、configure の 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 日(火)、Edgemicrogateway の以下の修正と機能強化をリリースしました。

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

    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 のプロダクト エンドポイントで 5XX が返される
  • 135113408 - ワーカーが予期せず終了した場合、再起動する必要がある
  • 134945852 - tokenCacheSize が OAuth プラグインで使用されていない -
  • 134947757 - OAuth プラグインでの cacheTTL の設定
  • 135445171 - OAuth の不正期間の計算が正しくない
  • 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 オプションを使用すると、OAuth トークンを指定して、管理 API を認証できます。証明書の管理もご覧ください。

(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 が追加されました。この API を使用すると、クライアント/シークレットを Base64 エンコードされた Basic Authorization ヘッダーとして、かつ granted_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 コンテナで実行する場合、次のオプションを使用して、Microgateway がファイアウォールの内側で実行されているときのプロキシの動作を制御できます。

  • HTTP_PROXY
  • HTTPS_PROXY
  • NO_PROXY

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

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

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

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

(2.5.27 で追加)OAuth トークンは upgradekvm コマンドで使用できます。詳しくは、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 は、Edge 組織内の、名前の接頭辞「edgemicro_」で始まるすべてのプロキシをダウンロードします。このデフォルトを変更して、名前がパターンと一致するプロキシをダウンロードできます。 ダウンロードしたプロキシのフィルタリングをご覧ください。

API プロキシを使用しないプロダクトの指定

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

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

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

Edge Micro 構成ファイルの一元管理

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

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

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

例:

edgemicro forever ~/mydir/forever.json

再読み込みコマンドに configUrl オプションを追加

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

JWT の時間不一致の猶予期間

(2.5.7 で追加)OAuth 構成の gracePeriod 属性により、システム クロックと、JWT 認証トークンで指定された前(nbf)または発行時刻(iat)の時刻とのわずかな不一致によって発生するエラーを防止できます。このような不一致を許容するには、この属性を秒数に設定します。 OAuth 属性をご覧ください。

(2.5.7 で追加)OAuth 構成の gracePeriod 属性により、システム クロックと、JWT 認証トークンで指定された前(nbf)または発行時刻(iat)の時刻とのわずかな不一致によって発生するエラーを防止できます。このような不一致を許容するには、この属性を秒数に設定します。 OAuth 属性をご覧ください。

バグの修正 v2.5.x

  • (問題 #236)キャッシュの消去時に入力ミスを修正しました。
  • (問題 #234)Edge Microgateway 2.5.35 の再読み込みのクラッシュ。
  • (問題 #135)-v オプションの使用時に、無効な仮想ホスト参照の「secure」エラーが発生するこの修正により、仮想ホストが -v フラグに指定されたものと完全に一致するように、デプロイ前に edgemicro-auth プロキシが変更されます。また、仮想ホストには任意の数と名前を指定できます(デフォルトとセキュアに制限されなくなりました)。
  • (問題 #141)edgemicro 再読み込み コマンドが構成ファイル オプション -c をサポートしていません。なお、本事象はすでに解決しております。
  • (問題 #142)Edge Microgateway から、インストール時に非推奨の暗号について苦情が寄せられています。なお、本事象はすでに解決しております。
  • (問題 #145)Edge Microgateway で割り当てが機能しない。なお、本事象はすでに解決しております。
  • (Apigee コミュニティの問題: https://community.apigee.com/questions/33149/emg-jwt-token-validated-against-bottom-api-proxies-a.html#answer-33336)OAuth トークンが 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 にすると、新しいチームをサポートするために新しい API プロキシを作成しなくても、クライアントは https://[host]/team/blue/membershttps://[host]/team/green/members を呼び出せます。/**/ はサポートされていないことに注意してください。

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

3. Private Cloud 構成用に 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(暗号化された Vault)に鍵を保存していました。現在、プロキシは 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

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

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

自動変更ポーリングを無効にするには、Microgateway 構成でこの属性を設定します。

disabled_config_poll_interval: true

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

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

プラグイン コードで req.targetHostnamereq.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 が起動時に読み込むプロキシをフィルタできます。以前は、Edgemicro Configure コマンドで指定した Edge 組織/環境から取得されたすべての microgateway 対応プロキシ(edgemicro_* という名前のプロキシ)が読み込まれていました。この新機能を使用すると、このプロキシのリストをフィルタして、指定したプロキシのみが Edge Microgateway で読み込まれるようになります。次のように、プロキシ要素を microgateway 構成ファイルに追加するだけです。

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

たとえば、Edge の org/env に 50 個の edgemicro_* プロキシ(edgemicro_fooedgemicro_bar という名前のものを含む)があるとします。次のように、この 2 つのプロキシのみを使用するように microgateway に指示できます。

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 は常にクラスタモードで起動し、edgemicro start コマンドから --cluster オプションが削除されました。

さらに、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 クライアントの秘密鍵、証明書、CA 証明書(PFX 形式)を含む 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

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

クロス プラットフォーム対応の Auth Proxy をデプロイ

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

バージョン 2.1.0

新機能と機能強化 v.21.0

新機能と機能強化は次のとおりです。

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

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

バージョン 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 グローバル インストールのサポート

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

バージョン 2.0.0

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

新機能と機能強化 v.2.0.0

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

シングル プロセス サーバー

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

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

構成ファイルの名前空間は組織と環境を使用して設定されるため、複数の Microgateway インスタンスを同じホストで実行できるようになりました。Edge Microgateway 構成コマンドを実行すると、~/.edgemicro に構成ファイルが見つかるようになります。

新しい環境変数

EDGEMICRO_ORG、EDGEMICRO_ENV、EDGEMICRO_KEY、EDGEMICRO_SECRET の 4 つの環境変数が追加されました。これらの変数をシステムで設定している場合は、コマンドライン インターフェース(CLI)を使用して Edge Microgateway を構成して起動する際に、それらの値を指定する必要はありません。

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

Edge Microgateway は、Apigee Edge に接続せずに再起動した場合、キャッシュ内の構成ファイル を使用します。

クラスタモード

Edge Microgateway をクラスタモードで起動するオプションが追加されました。クラスタモードでは、マルチコア システムを利用できます。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

以下のバグは v. 1.1.2 で修正されています。

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