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 バグ

アプリに関連付けられた API プロダクトのリストで、最初の API プロダクトが Edge Microgateway から返される問題を修正しました。リクエストに基づいて、正しい 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 バグ

レスポンスを JSON から XML に変換する際に、json2xml プラグイン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 に影響します。ファイル名をオブジェクトのプロトタイプ値(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 機能

Quota プラグインの新しいフラグ 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 バグ 既存の鍵とシークレットのペアを使用して鍵を取り消すと、取り消しキーコマンドがエラーを返す問題を修正しました。
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 プラグインの tokenCachecacheKey 機能を使用したときに発生しました。
183910111 バグ 末尾のリソーススラッシュを含むリソースパスの URL が別のリソースパスとして誤って解釈される問題を修正しました。たとえば、パス /country/all/country/all/ が同じパスとして解釈されます。

セキュリティに関する問題を修正しました

問題 ID 説明
CVE-2020-28503 2.0.5 より前のパッケージ copy-props は、main 機能によるプロトタイプの汚染に対して脆弱である。
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 の OAuth 2.0 認可フレームワークに従って、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.jsMixme では、攻撃者は mutate() 関数と merge() 関数を使用して「__proto__」を介してオブジェクトのプロパティを追加または変更できます。汚染された属性は、プログラム内のすべてのオブジェクトに直接割り当てられます。これにより、プログラムが利用可能になり、サービス拒否(DoS)攻撃のリスクにさらされる可能性があります。
CVE-2021-30246 Node.js の jsrsasign パッケージ 10.1.13 で、一部の無効な 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 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 バグ JWK 鍵が null 値である場合にアプリケーションが失敗する問題を修正しました。

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

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

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

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

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

API プロダクトには、保留中、承認済み、取り消しの 3 つのステータス コードがあります。edgemicro-auth プロキシの Set JWT Variables ポリシーに、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. プロキシを保存します。

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

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

178423436 バグ CLI または環境変数によって渡される Key-Value は、Process Explorer のコマンドライン引数で表示できます。

コマンドライン引数から渡された、または環境変数を介して設定された Edge Microgateway のキーとシークレットの値が、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 バグ Microgateway がすべてのデータチャンクが処理される前にターゲット リクエストを終了するという問題を修正しました。

これは、ペイロード サイズの大きいリクエストで断続的に発生する問題で、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 は、拒否セクションを適切に処理し、「許可」セクションと「拒否」セクションの順序を尊重するようになりました。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/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 に渡される構成オブジェクトが入力されない

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」の組み合わせが割り当て識別子として使用されます。

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 Management 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 Analytics で「API Proxy Performance」と計算されたレイテンシと Edge Microgateway sourceResponse/targetResponse ログイベントの間の差異が修正されました。Edge Analytics のログイベントと Microgateway ログイベントのレイテンシが整合性になりました。
  • パターン マッチング ロジックに関連する変更:
    • 147027862 - OAuth プロダクトが、API プロダクトで指定される次のリソースパス マッチング パターンをサポートするように更新されました。
      • /{literal}**
      • /{literal}*
      • 上記 2 つのパターンの任意の組み合わせ

      この変更により、Edge Microgateway プラグインは Apigee Edge と同じパターン マッチングを行うようになりました。これについては、リソースパス「/」、「/*」、「/**」の構成をご覧ください。

    • 145644205 - OAuth プラグインと一致するように apiKeys プラグインのパターン マッチング ロジックを更新
  • 143488312 - OAuth トークンと API キーのリクエストに対して、クライアント ID パラメータの先頭または末尾のスペースで JWT プロダクト リストを作成できないという問題を修正しました。
  • 145640807 と 147579179 - 「Synchronizer」と呼ばれる特別な Edge Microgateway インスタンスが Apigee Edge から構成データを取得してローカルの Redis データベースに書き込むことができる新機能が追加されました。その後、他のマイクロゲートウェイ インスタンスをデータベースから構成データを読み取るように構成できます。この機能により、Edge Microgateway に一定の復元力が追加されます。これにより、Microgateway インスタンスは、Apigee Edge と通信することなく起動して機能します。詳しくは、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

Google は 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 - Quota プラグインに新しい「フェイル オープン」機能が追加されました。この機能を有効にすると、割り当て処理エラーが発生した場合、または 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 が置き換えられます。

    この機能を使用するには、Verify API Key 呼び出しが少なくとも 1 回成功する必要があります。

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

    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 プロキシが更新され、Edge API キーとシークレットがすべての Verify API Key リクエストで検証されるようになります。Edge Microgateway が更新され、Verify API Key リクエストごとに鍵とシークレットが常に送信されるようになりました。この変更により、クライアントは API キーのみを使用して JWT を取得できなくなります。
  • 140090250 - 割り当て処理の診断ロギングを追加するように更新。この変更により、quote のログ出力を他の 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_config:
      quotaUri: https://%s-%s.apigee.net/edgemicro-auth

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

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

    リリース 3.0.6 で誤ったドキュメントがあった。正しいプロパティ名は次のとおりです。

    edgemicro:
        keep_alive_timeout
  • 139526406 - デベロッパー アプリに複数のプロダクトがある場合に誤った割り当てカウントが発生するバグを修正しました。複数のプロダクトがあるアプリのプロダクトごとに割り当てが正しく適用されるようになりました。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、取り消しキー、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)。
    • ログレベル(エラー、警告、情報)。
    • Hostname - リクエスト ヘッダーからリクエストしているホスト名。
    • プロセス 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 のプロダクト エンドポイントが 5XX を返します。
  • 135113408 - ワーカーが予期せず終了した場合、再起動する必要があります。
  • 134945852 - tokenCacheSize が OAuth プラグインで使用されない
  • 134947757 - OAuth プラグインで cacheTTL を設定する
  • 135445171 - OAuth で猶予期間が正しく計算されない
  • Edge Microgateway インストールに付属の Memeld モジュールを使用する
  • 135367906 - セキュリティ監査

バージョン 2.5.x

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

(2019 年 6 月 7 日修正 2.5.38)

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

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

新しい edgemicro-auth/token API が追加されました。これにより、client/secret を Base64 エンコードの Basic Authorization ヘッダーとして、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 で追加)Docker コンテナで Edge Microgateway を実行する場合は、次のオプションを使用して、マイクロゲートウェイがファイアウォールの内側で実行されているときのプロキシの動作を制御できます。

  • 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 CLI の構成で鍵とシークレットの認証情報を取り消す、新しい 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 ノードレイ オプションのサポート

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

デフォルトでは、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

永久的なモニタリングのための新しい CLI オプション

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

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

例:

完全に削除するには:

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

「永久停止」を停止するには:

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 には forever.json ファイルがあり、Edge Microgateway の再起動回数と間隔を制御できます。このファイルでは、Forever Monitor という Service を構成します。このサービスはプログラムで Forever を管理します。 永久モニタリングをご覧ください。

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

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

無期限の 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 認証トークンで指定された Not Atnve(nbf)または Issued At(iat)時刻との間のわずかな差異に起因するエラーを防ぐために役立ちます。このような差異を許容する秒数にこの属性を設定します。 OAuth 属性をご覧ください。

(2.5.7 で追加)OAuth 構成の gracePeriod 属性は、システム クロックと JWT 認証トークンで指定された Not Atnve(nbf)または Issued At(iat)時刻との間のわずかな差異に起因するエラーを防ぐために役立ちます。このような差異を許容する秒数にこの属性を設定します。 OAuth 属性をご覧ください。

バグの修正 v2.5.x

  • (問題 #236)キャッシュを消去する際の入力ミスを修正。
  • (問題 #234)Edge Microgateway 2.5.35 のクラッシュを再読み込みします。
  • (問題 #135)-v オプションを使用した場合の仮想ホスト参照「secure」エラーが無効であるこの修正により、デプロイ前に Edgemicro-auth プロキシが変更され、仮想ホストが「v」フラグで指定されたものと完全に一致するようになります。さらに、仮想ホストには任意の数と任意の名前を指定できます(デフォルトは安全ではない)。
  • (問題 #141)edgemicro 再読み込みコマンドで構成ファイルのオプション -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)OAUTH で API プロキシとリソース URI の両方に対して JWT トークンが検証されました。この問題は修正されました。
  • (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 ポリシーが使用されるようになりました。プロキシは Node.js に依存せずに JWT サポートを提供します。

バージョン 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 では、-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:

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 プロキシごとにホストを設定するか、Edge Microgateway プロキシを処理しないホスト(HTTP_PROXYHTTPS_PROXYNO_PROXY)を設定します。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 プロキシが改善されました。変更前は、プロキシは暗号化された Vault である 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)

Edge Microgateway は、ユーザー名/パスワードの代わりに OAuth トークンを使用して認証するように構成できます。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 アナリティクスに表示しないようにできます。リクエスト URI やリクエストパスをマスクするように、Microgateway 構成に次のコードを追加します。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 で、コマンドを構成、構成、起動する際に、コマンドラインでカスタム構成パスを指定できるようになりました。次に例を示します。

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 構成ファイルにプロキシ要素を追加するだけです。

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

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

edge micro:
proxies:
    - edgemicro_foo
    - edgemicro_bar

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

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

ターゲット リクエスト ヘッダーを追加または変更する場合、考慮すべき基本的なパターンが 2 つあります。一つは受信データ(POST リクエストなど)を含むデータと、含まないデータ(単純な 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 の最新バージョンを入手するには、次のコマンドを使用します。

edgemicro --version

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

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

オプション 説明
pfx PFX 形式のクライアントの秘密鍵、証明書、CA 証明書を含む pfx ファイルのパス。
passphrase 秘密鍵または PFX のパスフレーズを含む文字列。
ca 信頼できる証明書のリスト(PEM 形式)を含むファイルのパス。
ciphers 使用する暗号を記述する文字列。「:」で区切ります。
rejectUnauthorized true の場合、サーバー証明書は指定された CA のリストに対して検証されます。検証で不合格になると、エラーが返されます。
secureProtocol 使用する SSL メソッド。たとえば、SSLv3_method を使用して SSL をバージョン 3 に強制します。
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/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(global)オプションを使用して 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 つのプロセスモデルは使用されなくなりました。新しいアーキテクチャは、自動化とコンテナ化を容易にします。

名前空間付き構成ファイル

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

新しい環境変数

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

キャッシュされた構成

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 エージェントを適切に使用するようになりました。これにより、高負荷時のパフォーマンスと全体的な安定性が改善されます。

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

Edge Microgateway は、node-inspector などのリモート デバッガで動作するように構成できます。

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

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

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

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

バグの修正 v1.1.2

以下のバグはバージョン 1.1.2 で修正されました。

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