16.08.17 - Apigee Edge for Public Cloud リリースノート

Apigee Edge のドキュメントを表示しています。
Apigee X のドキュメントをご覧ください。
info

2016 年 8 月 30 日(火)、Apigee Edge for Public Cloud の新しいバージョンをリリースしました。

新機能とアップデート

このリリースにおける新機能とアップデートは次のとおりです。

Assign Message と Raise Fault の JSON ペイロード

Assign Message ポリシーまたは Raise Fault ポリシーを使用して JSON ペイロードを設定する場合、メッセージで変数を使用していない場合でも、ペイロードをバックスラッシュ「\」で始める、Payload 要素で variablePrefix と variableSuffix を指定するなど、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 分間の例でこれを行う方法は次のとおりです。

  1. 最初に、必ずロードバランサ、ルーター、Message Processor が 3 分後にタイムアウトになるように構成してください。
  2. 次に、関連するプロキシが 3 分でタイムアウトになるように構成します。値はミリ秒単位で指定します。次に例を示します。
    <ProxyEndpoint name="default">
      <HTTPProxyConnection>
        <BasePath>/v1/weather</BasePath>
        <Properties>
          <!-- api.timeout is in milliseconeds -->
          <Property name="api.timeout">180000</Property>
        </Properties>
        ...
  3. ただし、システムのタイムアウト値を上げると、パフォーマンス上の問題が発生する可能性があるのでご注意ください。これは、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 ポリシーがインポート時に正しく検証されない(ドキュメントに記載されているように、結果が出力変数に割り当てられない)