Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントをご覧ください。 info
2016 年 8 月 30 日(火)、Apigee Edge for Public Cloud の新しいバージョンをリリースしました。
新機能とアップデート
このリリースにおける新機能とアップデートは次のとおりです。
Assign Message と Raise Fault の JSON ペイロード
この機能強化により、JSON メッセージの形式を適切に設定するための回避策は不要になり、無効な JSON を作成することなく、中かっこを使用して変数を指定できるようになります。たとえば、次の例では、JSON メッセージに message.content の値が挿入されます。
<Payload contentType="application/json">{"message" : "{message.content}"}</Payload>
回避策を使用した場合、コードはそのまま動作します。また、中かっこではなく variablePrefix と variableSuffix を使用して変数を指定することもできます。
Assign Message ポリシーと Raise Fault ポリシーのリファレンス ドキュメントの <Set><Payload> 要素をご覧ください。(APIRT-1160)
XML to JSON ポリシーの機能強化
XML to JSON ポリシーが次の機能で強化されました。ポリシーは次のように構成できます。
- 変換時に一部の XML 要素を配列として扱い、JSON ドキュメントの角かっこ「[]」に値を入れます。
- 最終的な JSON ドキュメントで、XML ドキュメント階層のレベルを削除または除去します。
詳細については、XML to JSON ポリシーをご覧ください。(APIRT-1144)
API プロダクトのリソースパス内の複数のワイルドカード
API プロダクトでリソースパスを定義するときに、リソースパスの複数の場所にワイルドカードを含めることができます。たとえば、/team/*/invoices/** は、/team の後に 1 つの値、invoices/ の後にリソースパスがある API 呼び出しを許可します。API 呼び出しで許可される URI は proxyBasePath/team/finance/invoices/company/a になります。
このリリース後に既存の API プロダクトのリソースパスが期待どおりに動作しなくなった場合は、組織に次のプロパティを設定して、以前の動作に戻します。features.enableStandardWildCardMatchForAPIProductResources = true
(MGMT-3273)
JavaScript の暗号関数
高性能な JavaScript crypto 関数の新しいセットが利用可能になり、MD5、SHA-1、SHA256、SHA512 のハッシュ オブジェクトの作成、取得、更新が可能になりました。crypto オブジェクトを使用すると、さまざまな形式で日付を取得することもできます。詳細については、JavaScript オブジェクト モデルをご覧ください。(APIRT-2886)
Java Callout JAR バージョンの確認
Java JAR リソースを API プロキシにアップロードするときに、Java リソースのバージョンが Edge でサポートされている Java のバージョン(サポート対象のソフトウェアとバージョンに記載)と互換性がない場合は、HTTP 500 ではなく HTTP 400 ステータス コードが返されます。(MGMT-3420)
API プロキシ リソースの検証
環境または組織のスコープに API プロキシ リソース ファイル(JavaScript や Java JAR など)が保存されている場合、検証フレームワークでは、検証に合格するために、これらのリソースを API プロキシレベルでプロキシ バンドルに含める必要がなくなりました。リソースの検証は、インポート時ではなくデプロイ時に行われるようになりました。(MGMT-1430)
個々の API プロキシにタイムアウトを構成する
API プロキシは、指定した時間の経過後にタイムアウト(504 ゲートウェイ タイムアウト ステータス)するように構成できます。これは主に、実行に比較的時間がかかる API プロキシを使用する Private Cloud のお客様向けの機能です。たとえば、3 分でタイムアウトになるプロキシが必要だとします。API プロキシの構成で新しい api.timeout プロパティを使用できます。3 分間の例でこれを行う方法は次のとおりです。
- 最初に、必ずロードバランサ、ルーター、Message Processor が 3 分後にタイムアウトになるように構成してください。
- 次に、関連するプロキシが 3 分でタイムアウトになるように構成します。値はミリ秒単位で指定します。次に例を示します。
<ProxyEndpoint name="default"> <HTTPProxyConnection> <BasePath>/v1/weather</BasePath> <Properties> <!-- api.timeout is in milliseconeds --> <Property name="api.timeout">180000</Property> </Properties> ... - ただし、システムのタイムアウト値を上げると、パフォーマンス上の問題が発生する可能性があるのでご注意ください。これは、api.timeout の設定がないすべてのプロキシで、ロードバランサ、ルーター、Message Processor に新しく設定された大きいタイムアウト値が使用されるためです。このため、長いタイムアウトを要求しない別の API プロキシで、より短期のタイムアウトが使用されるように構成します。たとえば、次の例の API プロキシは、1 分後にタイムアウトになるように設定しています。
<Property name="api.timeout">60000</Property>
タイムアウトが標準の Edge Message Processor のタイムアウトである 57 秒より短ければ、Edge のタイムアウトを変更できない Cloud のお客様も、API プロキシを構成できます。
変数を使用して値を入力することはできません。このプロパティについては、エンドポイント プロパティのリファレンスをご覧ください。(APIRT-1778)
Message Logging ポリシーの TLS/SSL
<KeyStore> と <TrustStore> は、メッセージ ロギング ポリシーの SSLInfo 構成で設定できます。これにより、ロギング サービスで一方向と双方向の TLS/SSL を使用できます。プロキシの
TargetEndpoint の場合と同様に、Message Logging ポリシーで SSLInfo を構成します。ただし、メッセージ ロギングの TLS/SSL は TCP プロトコルのみをサポートします。(APIRT-1858)
修正済みのバグ
このリリースでは以下のバグが修正されています。このリストは、サポート チケットの修正状況を確認するユーザーを対象としています。すべてのユーザーに詳細情報を提供することを目的としたものではありません。
| 問題 ID | 説明 |
|---|---|
| SECENG-609 | 関連付けられたトラストストアの削除中、またはトラストストア内の有効な証明書が削除されたときに、ランタイム呼び出しが失敗しない |
| MGMT-3404 | Node.js ログの表示/取得とプロキシのデプロイが非常に遅い |
| MGMT-3400 | 呼び出しを行うユーザーの名前に「+」記号が含まれている場合、/userroles 管理 API の呼び出しが失敗する |
| MGMT-3368 | resources/node/resources ディレクトリを含む API プロキシ バンドルをインポートすると、java.lang.ArrayIndexOutOfBoundsException: 1 が発生する |
| MGMT-3364 | OAuthV2: redirect_uri のチェック |
| MGMT-3319 | エントリの 1 つに null 値がある Vault のエントリを一覧表示する機能が組織(CPS と非 CPS)で動作しない |
| MGMT-3226 | 組織レベル/環境レベルでのクエリで、API が失敗する原因となるすべてのデータが取得されないようにする Release_160302 には、リソースの合計サイズが 16 MB を超えると組織レベル/環境レベルでのリソースのリスト取得が失敗するというバグがありました。この修正で対応します。 |
| AXAPP-2429 | response_status_code を使用する Analytics API がデータアクセス エラーを返す |
| AXAPP-2386 | アナリティクスの日次メール レポートでレポートのコンテンツが空になる問題を修正 |
| AXAPP-2347 | 日次分析の概要メールが届かない |
| APIRT-3141 | コンストラクタが非公開になったため、新しい ExecutionResult() を呼び出すと Java コールアウトが失敗する |
| APIRT-3140 | HEAD API 呼び出しで ServiceCallout ポリシーが機能しない |
| APIRT-3131 | 外部認証プロバイダで収益化を使用している場合、API プロキシの createdBy が正しく表示されない |
| APIRT-3121 | 組織のリソース ファイルの変更が 100% 有効にならない |
| APIRT-3117 | MP が 100% の CPU 使用率に達し、トラフィックの処理を停止した |
| APIRT-3016 | デプロイでのルーター「Call timed out」エラー |
| APIRT-2975 | 証明書バンドルのアップロードに失敗しました |
| APIRT-2955 | FHIR 準拠の Content-Type ヘッダー「application/json+fhir」の JSON レスポンス データの特定の属性をマスクできない |
| APIRT-2946 | OAuthV2-RefreshToken ポリシーで、表示が false に設定されているにもかかわらず属性が非表示にならない |
| APIRT-2908 | 仮想ホストで TLS1.2 の更新後に内部 API 呼び出しに TLS1.2 を適用する必要がある |
| APIRT-2901 | キャッシュから返された gzip 圧縮レスポンスが二重圧縮される |
| APIRT-2873 | プロダクト、デベロッパー、プロキシの削除後に、VerifyAPIKey に関連する NullPointerException が MP でスローされる |
| APIRT-2871 | トレースに IOIntensive ポリシーが 2 回表示される |
| APIRT-2825 | アクセストークン エラー レスポンスの文法エラー |
| APIRT-2750 | 特定の組織でトラフィック エラーが多い |
| APIRT-2685 | 不明なエラーがスローされ、トラフィックが流れない |
| APIRT-2647 | 非本番環境/開発環境で「Underlying input stream returned zero bytes」エラーが発生する |
| APIRT-2630 | キャッシュから値を読み取ろうとすると断続的に問題が発生する |
| APIRT-2620 | 一部のブロック ステップ用の個別のスレッドプール |
| APIRT-2610 | Response Cache ポリシーで java.lang.ClassCastException が発生する |
| APIRT-2608 | Response Cache ポリシーでの Last-Modified ヘッダーの解析エラー |
| APIRT-2605 | 「organization」変数と「environment」変数は、ポリシーによる上書きを許可しない |
| APIRT-2566 | OAuthV2 ポリシーが不正な形式の WWW-Authenticate ヘッダーを返す |
| APIRT-2491 | 管理と mps 間の RPC タイムアウトのため、TargetServer の更新に失敗しました |
| APIRT-2386 | 許可された OAuth スコープが空の API プロダクトに空の文字列スコープが作成される |
| APIRT-2383 | XSL 変換ポリシーでエラーが発生してもデータがログに記録されない |
| APIRT-2364 | エラー時に OAuth の障害フロー変数が更新されない |
| APIRT-2216 | サーバー送信イベント - 本番環境でイベント ストリームに問題が発生している |
| APIRT-2079 | 作成されたセッションのタイムアウトが期限切れになってもデバッグ cURL 呼び出しが停止しない |
| APIRT-1495 | XML Threat Protection が fhir Content-Type をキャッチしない |
| APIRT-347 | XSL ポリシーがインポート時に正しく検証されない(ドキュメントに記載されているように、結果が出力変数に割り当てられない) |