フロー変数リファレンス

このセクションでは、フロー変数のリファレンス情報を提供します。

Apigee Edge では、次のフロー変数を定義しています。

apigee              loadbalancing        router
    apiproxy            message              servicecallout
    application         messageid            system
    client              organization         target
    current             proxy                variable
    environment         request              virtualhost
    error               response
    is                  route

以降のセクションでは、これらの各変数について説明します。

apigee

ポリシーの実行時間に関する情報を提供するヘルパー変数。

次の表に、apigee 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
apigee.metrics.policy.policy_name.timeTaken 整数 読み取り専用 ポリシーの実行にかかった時間(ナノ秒)。 ポリシー

apiproxy

API プロキシに関する情報を提供します。

次の表に、apiproxy 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
apiproxy.name 文字列 読み取り専用 API プロキシの名前。例: "My Proxy"。 プロキシ リクエスト
apiproxy.revision 文字列 読み取り専用 API プロキシのリビジョン番号。例: "6"。 プロキシ リクエスト

API プロキシの操作方法について詳しくは、API と API プロキシについてをご覧ください。

application

application.basepath プロパティのコンテナ。

次の表に、application 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
application.basepath 文字列 読み取り専用 デプロイベースのパス(API のデプロイ時に指定されたもの)。 プロキシ リクエスト

client

Edge Router にリクエストを送信したアプリケーションまたはシステム。

次の表に、client 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
client.cn 文字列 読み取り専用

クライアント アプリから提示された TLS / SSL 証明書に示されている共通名。

プロキシ リクエスト
client.country 文字列 読み取り専用

クライアント アプリから提示された TLS / SSL 証明書に示されている国。

プロキシ リクエスト
client.email.address 文字列 読み取り専用

クライアント アプリから提示された TLS / SSL 証明書に示されているメールアドレス。

プロキシ リクエスト
client.host 文字列 読み取り専用

ProxyEndpoint で受信したリクエストに関連付けられている HTTP ホスト IP。

プロキシ リクエスト
client.ip 文字列 読み取り専用

Edge Router にメッセージを送信しているクライアントまたはシステムの IP アドレス。たとえば、元のクライアントの IP であることも、ロードバランサの IP であることもあります。

プロキシ リクエスト
client.locality 文字列 読み取り専用

クライアントから提示された TLS / SSL 証明書に示されている地域(市区町村)。

プロキシ リクエスト
client.organization 文字列 読み取り専用 クライアントから提示された TLS / SSL 証明書に示されている組織(必ずしも Apigee Edge の組織に相当するわけではありません)。 プロキシ リクエスト
client.organization.unit 文字列 読み取り専用

クライアントから提示された TLS / SSL 証明書に示されている組織単位。

プロキシ リクエスト
client.port 整数 読み取り専用

ProxyEndpoint に送信されたクライアント リクエストに関連付けられている HTTP ポート。

プロキシ リクエスト
client.received.end.time 文字列 読み取り専用

プロキシが ProxyEndpoint で発信元クライアントからのリクエスト受信を完了した時刻。文字列形式で表記されます。例: Wed, 21 Aug 2013 19:16:47 UTC。

この時刻の値は、対応する 32 ビット タイムスタンプの数値を文字列で表現したものです。たとえば、'Wed, 21 Aug 2013 19:16:47 UTC' はタイムスタンプ値 1377112607413 に相当します。

プロキシ リクエスト
client.received.end.timestamp Long 読み取り専用

プロキシが ProxyEndpoint で発信元クライアントからのリクエスト受信を完了した時刻を示すタイムスタンプ値。この値は、1970 年 1 月 1 日午前 0 時(UTC)からの経過時間(ミリ秒)を含んだ 64 ビット(long 型)の整数です。

プロキシ リクエスト
client.received.start.time 文字列 読み取り専用

プロキシが ProxyEndpoint で発信元クライアントからのリクエスト受信を開始した時刻。文字列形式で表記されます。例: Wed, 21 Aug 2013 19:16:47 UTC。

この時刻の値は、対応する 32 ビット タイムスタンプの数値を文字列で表現したものです。たとえば、'Wed, 21 Aug 2013 19:16:47 UTC' はタイムスタンプ値 1377112607413 に相当します。

プロキシ リクエスト
client.received.start.timestamp Long 読み取り専用

プロキシが ProxyEndpoint で発信元クライアントからのリクエスト受信を開始した時刻を示すタイムスタンプ値。この値は、1970 年 1 月 1 日午前 0 時(UTC)からの経過時間(ミリ秒)を含んだ 64 ビット(long 型)の整数です。

プロキシ リクエスト
client.scheme 文字列 読み取り専用

クライアント アプリがリクエスト メッセージを送信するために使用した転送プロトコルに応じて、http または https を返します。

プロキシ リクエスト
client.sent.end.time 文字列 読み取り専用

プロキシが ProxyEndpoint からクライアントへのレスポンス送信を完了した時刻。文字列形式で表記されます。例: "Wed, 21 Aug 2013 19:16:47 UTC"。

この値は、対応する 32 ビットの client.sent.end.timestamp を文字列で表現したものです。たとえば、"Wed, 21 Aug 2013 19:16:47 UTC" はタイムスタンプ値 1377112607413 に相当します。

PostClientFlow
client.sent.end.timestamp Long 読み取り専用 ProxyEndpoint が発信元クライアント アプリへのレスポンス送信を完了した時刻を示すタイムスタンプ値。この値は、1970 年 1 月 1 日午前 0 時(UTC)からの経過時間(ミリ秒)を含んだ 64 ビット(long 型)の整数です。 PostClientFlow
client.sent.start.time 文字列 読み取り専用 ProxyEndpoint が発信元クライアント アプリへのレスポンス送信を開始した時刻。文字列形式で表記されます。例: "Wed, 21 Aug 2013 19:16:47 UTC"。

この値は、対応する 32 ビットの client.sent.start.timestamp を文字列で表現したものです。たとえば、"Wed, 21 Aug 2013 19:16:47 UTC" はタイムスタンプ値 1377112607413 に相当します。

PostClientFlow
client.sent.start.timestamp Long 読み取り専用 プロキシが ProxyEndpoint からクライアントへのレスポンス送信を開始した時刻。この値は、1970 年 1 月 1 日午前 0 時(UTC)からの経過時間(ミリ秒)を含んだ 64 ビット(long 型)の整数です。 PostClientFlow
client.ssl.enabled 文字列 読み取り専用

ProxyEndpoint が TLS / SSL 用に構成されている場合は "true"。そうでない場合は "false"。

プロキシ リクエスト
client.state 文字列 読み取り専用

クライアントから提示された TLS / SSL 証明書に示されている状態。

プロキシ リクエスト

current

現在の API プロキシフローに関する情報が格納されます。

次の表に、current 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
current.flow.name 文字列 読み取り専用 現在実行されているフローの名前(「PreFlow」、「PostFlow」など。または条件付きフローの名前)。 プロキシ リクエスト
current.flow.description 文字列 読み取り専用 現在実行されているフローの説明。これは、フローの XML 構成に含まれる <Description> 要素の値と同じです。 プロキシ リクエスト

上記のプロパティは Edge UI の Trace ビューで確認できます。ただし、従来の UI の Trace ビューでは、これらのプロパティはデフォルトで表示されません。

environment

environment.name プロパティのコンテナ。

次の表に、environment 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
environment.name 文字列 読み取り専用 トランザクションが実行された環境の名前。 プロキシ リクエスト

error

エラーフローでのエラー メッセージを表すコンテキスト依存オブジェクト。

次の表に、error 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
error message 読み取り / 書き込み message タイプのエラー。エラーフローのコンテキストに依存するオブジェクトです。 エラー
error.content 文字列 読み取り / 書き込み エラーの内容。 エラー
error.message 文字列 読み取り専用

エラーに関連付けられているメッセージ。このプロパティの値は、エラーフローの実行前にのみ使用できます。

エラー
error.status.code 整数 読み取り専用

エラーに関連付けられている HTTP ステータス コード。例: "400"。

エラー
error.reason.phrase 文字列 読み取り専用

エラーに関連付けられている理由句。例: "Bad Request"。

エラー
error.transport.message TransportMessage 読み取り専用

TransportMessage タイプのエラー。

エラー
error.state 整数 読み取り専用

エラーが発生したフロー内での状態。

エラー
error.header.header_name 文字列 読み取り / 書き込み

レスポンス ヘッダーを取得または設定します。

エラー

is

is.error プロパティのコンテナ。

次の表に、is 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
is.error ブール値 読み取り専用

エラーフラグ。

プロキシ リクエスト

loadbalancing

TargetEndpoint の負荷分散状態に関する情報を提供します。

次の表に、loadbalancing 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
loadbalancing.failedservers 文字列の配列 読み取り専用

TargetEndpoint での負荷分散中にエラーが発生した TargetServer のリスト。

ターゲット レスポンス
loadbalancing.isfallback ブール値 読み取り専用

TargetEndpoint での負荷分散中に呼び出された TargetServer に対してフォールバックが有効にされている場合は "true"。

ターゲット レスポンス
loadbalancing.targetserver 文字列 読み取り専用

TargetEndpoint での負荷分散中に呼び出された TargetServer。ロードバランサ要素の定義時に <Path> 要素が設定された場合にのみ設定されます。

ターゲット レスポンス

message

コンテキスト依存オブジェクト。リクエスト フローでは request と同じ値、レスポンス フローでは response と同じ値、エラーフローでは error と同じ値になります。

次の表に、message 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
message message 読み取り / 書き込み

コンテキスト依存オブジェクト。リクエスト フローでは request と同じ値、レスポンス フローでは response と同じ値、エラーフローでは error と同じ値になります。

プロキシ リクエスト
message.content 文字列 読み取り / 書き込み

リクエスト、レスポンス、またはエラー メッセージの内容。

プロキシ リクエスト
message.formparam.param_name 文字列 読み取り / 書き込み

指定されたフォーム パラメータの値。

プロキシ リクエスト
message.formparam.param_name.
 values
コレクション 読み取り専用

メッセージに含まれる、指定されたフォーム パラメータのすべての値。

プロキシ リクエスト
message.formparam.param_name.
 values.count
整数 読み取り専用

メッセージに含まれる、指定されたフォーム パラメータの値の数。

プロキシ リクエスト
message.formparams.count 整数 読み取り専用

メッセージに含まれるすべてのフォーム パラメータの合計数。

プロキシ リクエスト
message.formparams.names コレクション 読み取り専用

メッセージに含まれるすべてのフォーム パラメータの値。

プロキシ リクエスト
message.formstring 文字列 読み取り専用

メッセージに含まれるフォーム文字列の値。

プロキシ リクエスト
message.header.header_name 文字列 読み取り / 書き込み

メッセージに含まれる、指定された HTTP ヘッダーの値を取得または設定します。ヘッダーにコンマが含まれている場合は、読み取り時に、最初のコンマまでのテキスト セグメントのみが返されます。ヘッダー全体が必要な場合は、次の形式を使用します。request.header.header_name.
 values

プロキシ リクエスト
message.header.header_name.N 文字列 読み取り / 書き込み

フローの状態により、リクエストまたはレスポンスのメッセージに含まれる特定のヘッダーの N 番目の値。Apigee Edge は、ヘッダーのテキスト値をコンマで区切ります。値が N に使用されるインデックスの最初の値は 0 ではなく 1 です。

たとえば、Cache-control ヘッダーが "public,maxage=16544" となっている場合、message.header.cache-control.1 は値 "maxage=16544" を返します。

プロキシ リクエスト
message.header.header_name.
 values
コレクション 読み取り専用

メッセージに含まれる、指定された HTTP ヘッダー名のすべての値。

プロキシ リクエスト
message.header.header_name.
 values.count
整数 読み取り専用

メッセージに含まれる、指定された HTTP ヘッダー名の値の数。

プロキシ リクエスト
message.headers.count 整数 読み取り専用

メッセージに含まれるすべての HTTP ヘッダーの合計数。

プロキシ リクエスト
message.headers.names コレクション 読み取り専用

メッセージに含まれるすべての HTTP ヘッダーの値。

プロキシ リクエスト
message.path 文字列 読み取り / 書き込み

クエリ パラメータを除く、URL の完全なリクエスト メッセージパス。

プロキシ リクエスト
message.queryparam.param_name 文字列 読み取り専用

指定されたメッセージ クエリ パラメータを返します。

プロキシ リクエスト
message.queryparam.param_name.N 文字列 読み取り / 書き込み

メッセージに含まれる N 番目のクエリ パラメータの値。たとえば、request.querystring が "a=hello&a=world" となっている場合、message.queryparam.a.1 は値 "hello" を返します。

一例として、"type=siteid:1&type=language:us-en&type=currency:USD" のように単一のクエリ パラメータ名に複数の値を書き込むには、次のように設定します。

  • message.queryparam.type.1 を "siteid:1" に設定
  • message.queryparam.type.2 を "language:en-us" に設定
  • message.queryparam.type.3 を "currency:USD" に設定
プロキシ リクエスト
message.queryparam.param_name.
 values
コレクション 読み取り専用

メッセージに含まれる特定のクエリ パラメータのすべての値。コンマ区切りリストとしてフォーマット化されます。

たとえば、クエリ文字列が a=hello&a=world となっている場合、message.queryparam.a.values の値は "['hello', 'world']" となります。

プロキシ リクエスト
message.queryparam.param_name.
 values.count
整数 読み取り専用

クライアント アプリから ProxyEndpoint に送信されたリクエストに関連付けられている、指定されたクエリ パラメータの合計数。

プロキシ リクエスト
message.queryparams.count 整数 読み取り専用

クライアント アプリから ProxyEndpoint に送信されたリクエストに関連付けられているすべてのクエリ パラメータの合計数。

プロキシ リクエスト
message.queryparams.names コレクション 読み取り専用

クライアント アプリから ProxyEndpoint に送信されたリクエストに関連付けられているすべてのクエリ パラメータ名のリスト。

JavaScript を使用してクエリ パラメータ名を繰り返し処理する方法は、Apigee コミュニティの投稿、How do you iterate Collection from "request.queryparams.names" in JS? で説明しています。この投稿は、Apigee コミュニティでご覧いただけます。

プロキシ リクエスト
message.querystring 文字列 読み取り専用

クライアント アプリから ProxyEndpoint に送信されたリクエストに関連付けられているすべてのクエリ パラメータの名前と値が含まれる文字列。

たとえば、リクエスト "http://api.apifactory.com/inventors?name=nick&surname=danger" の場合、message.querystring の値は "name=nick&surname=danger" になります。

プロキシ リクエスト
message.reason.phrase 文字列 読み取り専用

ターゲットから返されたレスポンス メッセージの理由句。

ターゲット レスポンス
message.status.code 整数 読み取り専用

ターゲットから返されたレスポンス メッセージの HTTP ステータス コード。

ターゲット レスポンス
message.transport.message TransportMessage 読み取り専用

コンテキスト依存オブジェクトである TransportMessage タイプのメッセージ。

プロキシ リクエスト
message.uri 文字列 読み取り専用

クエリ パラメータを含む、(ドメイン URL の後に続く)完全な URI パス。

たとえば、リクエスト "http://api.apifactory.com/inventors?name=nikola&surname=tesla" の場合、この変数は "inventors?name=nikola&surname=tesla" を返します。

プロキシ リクエスト
message.verb 文字列 読み取り専用

リクエストに関連付けられている HTTP 動詞(GETPUTPOSTDELETE など)。

プロキシ リクエスト
message.version 文字列 読み取り / 書き込み

クライアント アプリケーションから ProxyEndpoint に送信されたリクエストに関連付けられている HTTP バージョン。

プロキシ リクエスト

メッセージについて詳しくは、メッセージ テンプレート関数リファレンスをご覧ください。

messageid

グローバルに一意なリクエスト ID のコンテナ。

次の表に、messageid 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
messageid 文字列 読み取り専用

Rounter ホスト名が含まれた、リクエストのグローバルに一意な ID を格納します。Router で受信したリクエストを Message Processor に送信した後、この ID を使用して、そのリクエストをトラッキングできます。

messageid をエラーに関連付けるために、この ID が Edge エラーログに記録されます。

プロキシ リクエスト

organization

organization.name プロパティのコンテナ。

次の表に、organization 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
organization.name 文字列 読み取り専用

組織の名前。

プロキシ リクエスト

組織について詳しくは、組織の概要をご覧ください。

proxy

API プロキシ構成。

次の表に、proxy 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
proxy.basepath 文字列 読み取り専用

API プロキシ構成に含まれる API プロキシのベースパス。ベースパスは、URL 内でホストの後に続く URI フラグメントです。条件付き URI は、ベースパスの後に続きます。

たとえば、http://myorg-test.apigee.net/v2/weatherapi/forecastrss?w=12797282 という URL では、次のようになります。

  • ホストは "myorg-test.apigee.net" です(ホスト名には組織名と環境が含まれます)。
  • ベースパスは "/v2/weatherapi" です。

ベースパスを把握するには、API プロキシ定義を調べるか、proxy.basepath の値を確認するしか方法はありません。ベースパスの後には、プロキシパス接尾辞("/forecastrss")と任意のクエリ パラメータが続きます。

API プロキシ構成で動的ベースパス(例: /v2/*/weatherapi)を定義すると、ベースパスが静的な値(/v2/foo/weatherapi)に解決されるとしても、この変数にはその動的パス(/v2/*/weatherapi)が値として設定されます。

プロキシ リクエスト
proxy.client.ip 文字列 読み取り専用

着信呼び出しの X-Forwarded-For アドレス。これは、Edge が最後の外部 TCP handshake によって受信した IP アドレスです。これは、呼び出し元クライアントかロードバランサのものである場合があります。

プロキシ リクエスト
proxy.name 文字列 読み取り専用

ProxyEndpoint に構成された名前属性。

プロキシ リクエスト
proxy.pathsuffix 文字列 読み取り専用

クライアントから送信されて ProxyEndpoint で受信した、API プロキシ ベースパスの接尾辞の値。

バースパスは、API プロキシを一意に識別するパス コンポーネントとして定義されます。API プロキシの公開 URL は、組織名、プロキシがデプロイされている環境、ベースパス、ベースパスの接尾辞、および任意のクエリ パラメータで構成されます。

たとえば、http://myorg-test.apigee.net/v2/weatherapi/forecastrss?w=12797282 に対するリクエストでは、"/forecastrss" がベースパスの接尾辞に該当します。

プロキシ リクエスト
proxy.url 文字列 読み取り専用

ProxyEndpoint で受信したリクエストに関連付けられている完全な URL を取得します。proxy.url に含まれるホストは、元のリクエストで使用されたホストではなく、Router ホストです。

元のホストを使用して request URL を構成する例については、リクエスト メッセージにアクセスするをご覧ください

プロキシ リクエスト

API プロキシの操作方法について詳しくは、API と API プロキシについてをご覧ください。

request

存在するすべてのペイロードを含む、完全なリクエスト。

リクエスト データについて詳しくは、リクエスト データをバックエンド サーバーに渡す方法をご覧ください。

次の表に、request 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
request message 読み取り専用

存在するすべてのペイロードを含む、完全なリクエスト。

プロキシ リクエスト
request.content 文字列 読み取り / 書き込み

リクエスト メッセージのペイロードを取得または設定します。

プロキシ リクエスト
request.formparam.param_name 文字列 読み取り / 書き込み

クライアント アプリケーションから送信されたリクエストに含まれる、指定されたフォーム パラメータの値を取得または設定します。

プロキシ リクエスト
request.formparam.param_name.
 values
コレクション 読み取り専用

リクエストに含まれる特定のフォーム パラメータのすべての値。コンマ区切りリストとしてフォーマット化されます。

たとえば、ペイロードが "a=hello&x=greeting&a=world" となっている場合、request.formparam.a.values の値は "['hello', 'world']" となります。

プロキシ リクエスト
request.formparam.param_name.
 values.count
整数 読み取り専用

リクエストに関連付けられている、指定されたフォーム パラメータのすべての値の合計数。

プロキシ リクエスト
request.formparam.param_name.N 文字列 読み取り / 書き込み

メッセージに含まれる N 番目のフォーム パラメータの値。たとえば、フォーム文字列が "a=hello&a=world" となっている場合、request.formparam.a.1 は値 "hello" を返します。

プロキシ リクエスト
request.formparams.count 整数 読み取り専用

クライアント アプリケーションから送信されたリクエストに関連付けられているパラメータの合計数。

プロキシ リクエスト
request.formparams.names コレクション 読み取り専用

リクエストに関連付けられているすべてのフォーム パラメータ名のリスト。

プロキシ リクエスト
request.formstring 文字列 読み取り専用

クライアント アプリから送信されたリクエストに含まれる完全な formparam

例: "name=test&type=first&group=A"。

プロキシ リクエスト
request.header.header_name 文字列 読み取り / 書き込み

リクエスト内で検出された特定のヘッダーの値を取得または設定します。ヘッダーにコンマが含まれている場合は、読み取り時に、最初のコンマまでのテキスト セグメントのみが返されます。

ヘッダー全体が必要な場合は、request.header.header_name.values の形式を使用します。

プロキシ リクエスト
request.header.header_name.N 文字列 読み取り / 書き込み

リクエストに含まれる特定のヘッダーの N 番目の値。Apigee Edge はヘッダーのテキスト値をコンマで区切ります。値が N に使用されるインデックスの最初の値は 0 ではなく 1 です。

たとえば、Cache-control ヘッダーが "public,maxage=16544" となっている場合、request.header.cache-control.1 は値 "maxage=16544" を返します。

プロキシ リクエスト
request.header.header_name.
 values
コレクション 読み取り専用

リクエストに含まれる特定のヘッダーのすべての値。

プロキシ リクエスト
request.header.header_name.
 values.count
整数 読み取り専用

リクエストに含まれる特定のヘッダーのすべての値の合計数。

プロキシ リクエスト
request.headers.count 整数 読み取り専用

リクエストに含まれるすべてのヘッダーの合計数。

プロキシ リクエスト
request.headers.names コレクション 読み取り専用

リクエストに含まれるすべてのヘッダーの名前。

プロキシ リクエスト
request.path 文字列 読み取り専用

クエリ パラメータを除いた、バックエンド サービスへのプロキシを使用しないリソースパス(ホストは含まれません)。

たとえば、バックエンド サービスへの URI が "https://example.com/rest/api/latest" となっている場合、request.path の値は "/rest/api/latest" となります。

プロキシ リクエスト
request.queryparam.param_name 文字列 読み取り / 書き込み

リクエストで検出された特定のクエリ パラメータの値。

プロキシ リクエスト
request.queryparam.param_name.N 文字列 読み取り / 書き込み

リクエストに含まれる N 番目のクエリ パラメータの値。

たとえば、request.querystring が "a=hello&a=world" となっている場合、request.queryparam.a.1 は値 "hello" を返します。

一例として、"type=siteid:1&type=language:us-en&type=currency:USD" のように単一のクエリ パラメータ名に複数の値を書き込むには、次のように設定します。

  • request.queryparam.type.1 を "siteid:1" に設定
  • request.queryparam.type.2 を "language:en-us" に設定
  • request.queryparam.type.3 を "currency:USD" に設定
プロキシ リクエスト
request.queryparam.param_name.
 values
コレクション 読み取り専用

リクエストに含まれる特定のクエリ パラメータのすべての値。コンマ区切りリストとしてフォーマット化されます。

たとえば、request.querystring が "a=hello&b=lovely&a=world" となっている場合、request.queryparam.a.values の値は "['hello', 'world']" となります。

プロキシ リクエスト
request.queryparam.param_name.
 values.count
整数 読み取り専用

リクエストに含まれる特定のクエリ パラメータのすべての値の合計数。

プロキシ リクエスト
request.queryparams.count 整数 読み取り専用

リクエストに含まれるすべてのクエリ パラメータの合計数。

プロキシ リクエスト
request.queryparams.names コレクション 読み取り専用

リクエストに含まれるすべてのクエリ パラメータの名前。

JavaScript を使用してクエリ パラメータ名を繰り返し処理する方法は、How do you iterate Collection from "request.queryparams.names" in JS? で説明しています。 この投稿は、Apigee コミュニティでご覧いただけます。

プロキシ リクエスト
request.querystring 文字列 読み取り専用

クライアント アプリから送信されたリクエストに含まれるクエリ パラメータの完全なリスト。

たとえば、リクエストが "http://host.com/123?name=first&surname=second&place=address" の場合、この変数は "name=first&surname=second&place=address" を返します。

プロキシ リクエスト
request.transportid 文字列 読み取り専用

コンテキスト依存オブジェクトである TransportMessage タイプのリクエストの ID。

プロキシ リクエスト
request.transport.message Transport-Message 読み取り専用

コンテキスト依存オブジェクトである TransportMessage タイプのリクエスト。

プロキシ リクエスト
request.uri 文字列 読み取り専用

API プロキシでは、ProxyEndpoint のプロキシ <BasePath>(およびプロキシのベース URL)は TargetEndpoint 内のターゲット サービス URL に対応します。次に例を示します。

<ProxyEndpoint>
...
  <BasePath>/my-mock-proxy</BasePath>

これは次を指しています。

<TargetEndpoint>
...
  <HTTPTargetConnection>
    http://mocktarget.apigee.net
  </HTTPTargetConnection>

リクエストでは、request.uri はプロキシのベースパスとアドレスの残りの部分(クエリ パラメータを含む)を合わせたものになります。

レスポンスでは、request.uri は、HTTPTargetConnection の後のアドレスの残りの部分(クエリ パラメータを含む)となります。

こうした違いが生じる理由は、元のリクエストはプロキシに取り込まれますが、プロキシはその後、ターゲット サービスに対して別のリクエストを送信するためです。

たとえば、バースパスが "/my-mock-proxy" となっているサンプル プロキシに対して次の呼び出しを行うとします。

http://my_org-test.apigee.net/my-mock-proxy/user?user=Dude

プロキシは次の URL を呼び出します。

http://mocktarget.apigee.net

これにより、URL の先頭に "/user?user=Dude" が付加されます。

  • リクエスト: request.uri = "/my-mock-proxy/user?user=Dude"
  • レスポンス: request.uri = "/user?user=Dude"
プロキシ リクエスト(レスポンスでは異なります)
request.url 文字列 読み取り専用

ターゲット エンドポイントに対して行われたリクエストの完全な URL。この URL にはクエリ文字列パラメータは含まれますが、ポート番号(指定されている場合)は含まれません。

たとえば、サンプル プロキシに対して "http://my_org-test.apigee.net/my-mock-proxy/user?user=Dude" を呼び出す場合、ターゲット エンドポイントが "http://example.com:8080" であれば、値は次のようになります。

  • リクエスト: 適用外
  • レスポンス: "http://example.com/user?user=Dude"
ターゲット レスポンス
request.verb 文字列 読み取り専用

リクエストで使用された HTTP 動詞。例: "GET"、"PUT"、"DELETE" など。

プロキシ リクエスト
request.version 文字列 読み取り専用

リクエストの HTTP バージョン。例: "1.1"。

プロキシ リクエスト

response

存在するすべてのペイロードを含む、完全なレスポンス。

次の表に、response 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
response message 読み取り / 書き込み

ターゲットから返された完全なレスポンス メッセージ。

ターゲット レスポンス
response.content 文字列 読み取り / 書き込み

ターゲットから返されたレスポンス メッセージのペイロードの内容。

ターゲット レスポンス
response.formparam.param_name 文字列 読み取り / 書き込み

レスポンスに含まれるフォーム パラメータの値。

ターゲット レスポンス
response.formparam.param_name.
 values.count
整数 読み取り専用

レスポンスに含まれる、指定されたフォーム パラメータのすべての値の合計数。

ターゲット レスポンス
response.formparams.count 整数 読み取り専用

レスポンスに含まれるすべてのフォーム パラメータの合計数。

ターゲット レスポンス
response.formparams.names コレクション 読み取り専用

レスポンスに含まれるすべてのフォーム パラメータの名前。

ターゲット レスポンス
response.header.header_name 文字列 読み取り / 書き込み

レスポンスに含まれる、指定された HTTP ヘッダーの値を取得または設定します。

ヘッダーのテキストにコンマが含まれている場合、Apigee Edge は複数の値があると推測します。この場合、response.header.header_name は最初の値のみを返します。

ヘッダー全体を読み取るには、response.header.header_name.values の形式を使用します。

ターゲット レスポンス
response.header.header_name.
 values
コレクション 読み取り専用

レスポンスに含まれる、指定された HTTP ヘッダーのすべての値。

ターゲット レスポンス
response.header.header_name.
 values.count
整数 読み取り専用

レスポンスに含まれる、指定された HTTP ヘッダーのすべての値の合計数。

ターゲット レスポンス
response.header.header_name.N 文字列 読み取り / 書き込み

レスポンスに含まれる特定のヘッダーの N 番目の値。Apigee Edge は、ヘッダーのテキスト値をコンマで区切ります。値が N に使用されるインデックスの最初の値は 0 ではなく 1 です。

たとえば、Cache-control ヘッダーが "public,maxage=16544" となっている場合、response.header.cache-control.1 は値 "maxage=16544" を返します。

ターゲット レスポンス
response.headers.count 整数 読み取り専用

レスポンスに含まれるすべてのヘッダーの合計数。

ターゲット レスポンス
response.headers.names コレクション 読み取り専用

レスポンスに含まれるすべてのヘッダーの名前。

ターゲット レスポンス
response.reason.phrase 文字列 読み取り / 書き込み

特定のリクエストに対するレスポンスの理由句。

ターゲット レスポンス
response.status.code 整数 読み取り / 書き込み

リクエストに対して返されたレスポンス コード。この変数を使用して、message.status.code に格納されるレスポンスのステータス コードをオーバーライドできます。詳しくは、message をご覧ください。

ターゲット レスポンス
response.transport.message 文字列 読み取り専用

コンテキスト依存オブジェクトである TransportMessage タイプのレスポンス。

ターゲット レスポンス

route

<RouteRule> と TargetEndpoint の名前を指定します。

次の表に、route 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
route.name 文字列 読み取り専用

ProxyEndpoint で実行された <RouteRule> の名前。例: "default"。RouteRule は、実行対象の API プロキシ TargetEndpoint を参照します。

ターゲット リクエスト
route.target 文字列 読み取り専用

実行された TargetEndpoint の名前。例: "default"。

ターゲット リクエスト

router

router.uuid プロパティのコンテナ。非推奨です。

次の表に、router 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
router.uuid 文字列 読み取り専用

非推奨であり、null を返します(以前は、プロキシを処理する Router の UUID が返されました)。

プロキシ リクエスト

servicecallout

ServiceCallout ポリシーの TargetEndpoint に関する情報を提供します。

次の表に、servicecallout 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
servicecallout.policy_name.expectedcn 文字列 読み取り / 書き込み

ServiceCallout ポリシーで参照されている TargetEndpoint に期待される共通名。これは、TargetEndpoint が TLS / SSL エンドポイントを参照している場合にのみ意味があります。

プロキシ リクエスト
servicecallout.policy_name.target.url 文字列 読み取り / 書き込み

特定の ServiceCallout ポリシーでの TargetEndpoint URL。

プロキシ リクエスト
servicecallout.requesturi 文字列 読み取り / 書き込み

ServiceCallout ポリシーでの TargetEndpoint URI。この URI は、プロトコルとドメインの指定を除く TargetEndpoint URL です。

プロキシ リクエスト

system

システムの IP アドレスとプロキシに関する詳細を指定します。

次の表に、system 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
system.interface.interface_name 文字列 読み取り専用

システムの IP アドレス。

プロキシ リクエスト
system.pod.name 文字列 読み取り専用

プロキシが稼働しているポッドの名前。

プロキシ リクエスト
system.region.name 文字列 読み取り専用

プロキシが稼働しているデータセンターのリージョンの名前。

プロキシ リクエスト
system.time 文字列 読み取り専用

この変数が読み取られた時刻。例: "Wed, 21 Aug 2013 19:16:47 UTC"。

この値は、対応する system.timestamp の値を文字列で表現したものです。たとえば、"Wed, 21 Aug 2013 19:16:47 UTC" はタイムスタンプ値 1377112607413 に相当します。

プロキシ リクエスト
system.time.year 整数 読み取り専用

system.time の年の部分。

プロキシ リクエスト
system.time.month 整数 読み取り専用

system.time の月の部分。

プロキシ リクエスト
system.time.day 整数 読み取り専用

system.time の日の部分。

プロキシ リクエスト
system.time.dayofweek 整数 読み取り専用

system.time の曜日の部分。

プロキシ リクエスト
system.time.hour 整数 読み取り専用

system.time の時間の部分。

プロキシ リクエスト
system.time.minute 整数 読み取り専用

system.time の分の部分。

プロキシ リクエスト
system.time.second 整数 読み取り専用

system.time の秒の部分。

プロキシ リクエスト
system.time.millisecond 整数 読み取り専用

system.time のミリ秒の部分。

プロキシ リクエスト
system.time.zone 文字列 読み取り専用

システムのタイムゾーン。

プロキシ リクエスト
system.timestamp Long 読み取り専用

この変数が読み取られた時刻を表す 64 ビット(long 型)の整数。この値は、1970 年 1 月 1 日午前 0 時(UTC)からの経過時間(ミリ秒数)です。例: "1534783015000"。

プロキシ リクエスト
system.uuid 文字列 読み取り専用

プロキシを処理する Message Processor の UUID。

プロキシ リクエスト

target

リクエストのターゲットに関する情報を提供します。

次の表に、target 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
target.basepath 文字列 読み取り専用

クエリ パラメータを除く、バックエンド サービスへのリソースパス(ドメインは含まれません)。このリソースパスは、プロキシの TargetEndpoint で定義されているものです。

たとえば、API プロキシが次のターゲットを呼び出すとします。

<TargetEndpoint name="default">
...
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net/user?user=Dude</URL>
  </HTTPTargetConnection>

この例での target.basepath は "/user" です。

ターゲットが次のようになっているとします。

<TargetEndpoint name="default">
...
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
  </HTTPTargetConnection>

この場合、target.basepath は null になります。

ターゲット リクエスト
target.copy.pathsuffix ブール値 読み取り / 書き込み

ProxyEndpoint から TargetEndpoint に転送されるリクエストで、パスの接尾辞(ProxyEndpoint のベースパスで定義された URI の後に続く URI パスのフラグメント)を保持する場合は "true"。

ターゲット リクエスト
target.copy.queryparams ブール値 読み取り / 書き込み

"true" の場合、ProxyEndpoint から TargetEndpoint に転送されるリクエストでクエリ パラメータが保持されます。

ターゲット リクエスト
target.country 文字列 読み取り専用

ターゲット サーバーから提示された TLS / SSL 証明書に示されている国。

ターゲット レスポンス
target.cn 文字列 読み取り専用

TargetEndpoint の共通名。これは、TargetEndpoint が TLS / SSL エンドポイントを参照している場合にのみ意味があります。

ターゲット リクエスト
target.email.address 文字列 読み取り専用

ターゲット サーバーから提示された TLS / SSL 証明書に示されているメールアドレス。

ターゲット レスポンス
target.expectedcn 文字列 読み取り / 書き込み

TargetEndpoint に期待される共通名。これは、TargetEndpoint が TLS / SSL エンドポイントを参照している場合にのみ意味があります。

プロキシ リクエスト
target.host 文字列 読み取り専用

API プロキシにレスポンスを返しているターゲット サービスのドメイン名。

ターゲット レスポンス
target.ip 文字列 読み取り専用

API プロキシにレスポンスを返しているターゲット サービスの IP アドレス。

ターゲット レスポンス
target.locality 文字列 読み取り専用

ターゲット サーバーから提示された TLS / SSL 証明書に示されている地域(市区町村)。

ターゲット レスポンス
target.name 文字列 読み取り専用

TargetEndpoint からのメッセージが到達するターゲット。

ターゲット リクエスト
target.organization 文字列 読み取り専用

ターゲット サーバーから提示された TLS / SSL 証明書に示されている組織。

ターゲット レスポンス
target.organization.unit 文字列 読み取り専用

ターゲット サーバーから提示された TLS / SSL 証明書に示されている組織単位。

ターゲット レスポンス
target.port 整数 読み取り専用

API プロキシにレスポンスを返しているターゲット サービスのポート番号。

ターゲット レスポンス
target.received.end.time 文字列 読み取り専用

TargetEndpoint がターゲットからのレスポンス受信を完了した時刻。文字列形式で表記されます。例: "Wed, 21 Aug 2013 19:16:47 UTC"。

この時刻の値は、対応する 32 ビット タイムスタンプの数値を文字列で表現したものです。たとえば、"Wed, 21 Aug 2013 19:16:47 UTC" はタイムスタンプ値 1377112607413 に相当します。

ターゲット レスポンス
target.received.end.
  timestamp
Long 読み取り専用

TargetEndpoint がターゲットからのレスポンス受信を完了した時刻を示すタイムスタンプ値。例: "1534783015000"。この値は、1970 年 1 月 1 日午前 0 時(UTC)からの経過時間(ミリ秒数)を示す 64 ビット(long 型)の整数です。

ターゲット レスポンス
target.received.start.time 文字列 読み取り専用

TargetEndpoint がターゲットからのレスポンス受信を開始した時刻。文字列形式で表記されます。例: "Wed, 21 Aug 2013 19:16:47 UTC"。

この時刻の値は、対応する 32 ビット タイムスタンプの数値を文字列で表現したものです。たとえば、"Wed, 21 Aug 2013 19:16:47 UTC" はタイムスタンプ値 1377112607413 に相当します。

ターゲット レスポンス
target.received.start.
  timestamp
Long 読み取り専用

TargetEndpoint がターゲットからのレスポンス受信を開始した時刻を示すタイムスタンプ値。例: "1534783015000"。この値は、1970 年 1 月 1 日午前 0 時(UTC)からの経過時間(ミリ秒数)を示す 64 ビット(long 型)の整数です。

ターゲット レスポンス
target.scheme 文字列 読み取り専用

スコープの開始: ターゲット レスポンス
: 文字列
権限: 読み取り / 書き込み

リクエスト メッセージに応じて、http または https を返します。

ターゲット リクエスト
target.sent.end.time 文字列 読み取り専用

プロキシが TargetEndpoint で指定された URL へのリクエスト送信を停止した時刻。文字列形式で表記されます。例: "Wed, 21 Aug 2013 19:16:47 UTC"。

この時刻の値は、対応する 32 ビット タイムスタンプの数値を文字列で表現したものです。たとえば、"Wed, 21 Aug 2013 19:16:47 UTC" はタイムスタンプ値 1377112607413 に相当します。

ターゲット リクエスト
target.sent.end.timestamp Long 読み取り専用

プロキシが TargetEndpoint で指定された URL へのリクエスト送信を停止した時刻を示すタイムスタンプ値。例: "1377112607413"。この値は、1970 年 1 月 1 日午前 0 時(UTC)からの経過時間(ミリ秒数)を含んだ 64 ビット(long 型)の整数です。

ターゲット リクエスト
target.sent.start.time 文字列 読み取り専用

プロキシが TargetEndpoint で指定された URL へのリクエスト送信を開始した時刻。文字列形式で表記されます。例: "Wed, 21 Aug 2013 19:16:47 UTC"。

この時刻の値は、対応する 32 ビット タイムスタンプの数値を文字列で表現したものです。たとえば、"Wed, 21 Aug 2013 19:16:47 UTC" はタイムスタンプ値 1377112607413 に相当します。

ターゲット リクエスト
target.sent.start.timestamp Long 読み取り専用

プロキシが TargetEndpoint で指定された URL へのリクエスト送信を開始した時刻を示すタイムスタンプ値。例: "1534783015000"。この値は、1970 年 1 月 1 日午前 0 時(UTC)からの経過時間(ミリ秒数)を示す 64 ビット(long 型)の整数です。

ターゲット リクエスト
target.ssl.enabled ブール値 読み取り専用

TargetEndpoint が TLS / SSL で実行されているかどうか。

プロキシ リクエスト
target.state 文字列 読み取り専用

ターゲット サーバーから提示された TLS / SSL 証明書に示されている状態。

ターゲット レスポンス
target.url 文字列 読み取り / 書き込み

TargetEndpoint XML ファイルで構成されている URL、または動的なターゲット URL(target.url がメッセージ フロー内で設定される場合)。この変数には、追加のパス要素やクエリ パラメータは格納されません。スコープ外で呼び出された場合、あるいは未設定の場合は null を返します。

ターゲット リクエスト

variable

variable.expectedcn プロパティのコンテナ。

次の表に、variable 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
variable.expectedcn 文字列 読み取り / 書き込み

TLS / SSL で実行される場合、共通名として公開されている変数。

プロキシ リクエスト

TLS の操作方法について詳しくは、TLS / SSL の概要をご覧ください。

virtualhost

仮想ホストの詳細を指定します。

次の表に、virtualhost 変数のプロパティを記載します。

プロパティ 読み取り / 書き込み 説明 スコープの開始
virtualhost.aliases 文字列の配列 読み取り専用

特定のリクエスト実行中にアクセスした仮想ホストのホスト エイリアス。

プロキシ リクエスト
virtualhost.name 文字列 読み取り専用

発信元クライアント リクエストに対応する仮想ホストの名前。

プロキシ リクエスト
virtualhost.ssl.enabled ブール値 読み取り専用

仮想ホストの構成で TLS / SSL が有効にされている場合は "true" を返します。

プロキシ リクエスト

仮想ホストの操作方法について詳しくは、仮想ホストの構成をご覧ください。