このセクションでは、フロー変数のリファレンス情報を提供します。
Apigee Edge では、次のフロー変数を定義しています。
apigee
loadbalancing
router
apiproxy
message
servicecallout
application
messageid
system
client
organization
target
current
proxy
variable
environment
request
virtualhost
error
response
is
route
以降のセクションでは、これらの各変数について説明します。
フロー変数の用語
フロー変数は、コンテキスト内の値を参照します。フロー変数の値は、プリミティブ型(文字列、ブール値、整数など)であることも、特定のオブジェクト(リクエスト / レスポンスの処理中に Edge によってインスタンス化されるオブジェクトなど)への参照であることもあります。
フロー変数がプリミティブ型またはオブジェクトのどちらを参照するかは、コンテキスト、つまりフロー変数を参照するタイミングによって決まります。フロー変数のコンテキストは、API プロキシがリクエスト / レスポンスを処理するフロー セグメントです。たとえば、レスポンス フロー コンテキストのどのセグメントでも、response
フロー変数は response
オブジェクトを参照します。
ほとんどの場合、フロー変数はオブジェクトを参照するものと考えることができます。参照先オブジェクトのプロパティにアクセスするには、ドット表記を使用します。たとえば、response
の content
プロパティにアクセスするには、response.content
を使用します。
フロー変数の操作
フロー変数の使用方法については、フロー変数の概要をご覧ください。
フロー変数を操作するときは、次の点に注意してください。
- 各フロー変数(
request
など)にはプロパティがあり、アクセスするにはドット表記構文を使用します。例:request.headers.count
- すべてのポリシーやツール(Trace ツールなど)からすべてのフロー変数にアクセスできるわけではありません。たとえば、リクエストの PreFlow で
response
にアクセスすることはできません。 - ほとんどのプロパティは読み取り専用です。読み書きが可能なプロパティもありますが、フローのどの時点でアクセスするかによっては、こうしたプロパティも読み取り専用になる場合があります。
- 一部のポリシーでは、ポリシー固有のフロー変数が定義されています。たとえば、ResponseCache ポリシーは
responsecache
変数を定義しています。詳しくは、ポリシー リファレンスをご覧ください。 - API プロキシとアプリで使用されている、文書化されていない変数に依存しないでください。たとえば、API プロキシで使用されている、文書化されていない X-Apigee.* ヘッダーはユーザーが使用するためのものではありません。したがって、随時 Apigee が削除または変更する可能性があるため、これらのヘッダーの値には依存しないでください。
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 ビット |
PostClientFlow |
client.sent.end.timestamp |
Long | 読み取り専用 | ProxyEndpoint が元のクライアント アプリへのレスポンスを返した日時を示すタイムスタンプ値。この値は、1970 年 1 月 1 日(UTC)の午前 0 時から経過したミリ秒数を含む 64 ビット(long 型)整数です。 | PostClientFlow |
client.sent.start.time |
文字列 | 読み取り専用 | ProxyEndpoint が発信元クライアント アプリへのレスポンス送信を開始した時刻。文字列形式で表記されます(例: "Wed, 21 Aug 2013 19:16:47 UTC")。 この値は、対応する 32 ビット |
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 ビューでは、これらのプロパティはデフォルトで表示されません。
従来の UI でプロパティを表示するには:
- Edge UI にログインします。
- [APIs] > [API Proxies] を選択します。[API Proxies] リストビューが表示されます。
- 該当する API プロキシを選択してプロキシの概要ビューを表示します。リストにプロキシが表示されない場合は、組織に関する注意事項の説明に沿って適切な組織を選択してください。
- [Trace] タブをクリックします。[Trace] ビューが表示されます。
- [View Options] で、[Show All FlowInfos] チェックボックスをオンにします。次に例を示します。
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。ロードバランサ要素を定義するときに |
ターゲット レスポンス |
message
リクエスト フローでは request
と同じ値、レスポンス フローでは response
と同じ値、エラーフローでは error
と同じ値を持つコンテキスト依存オブジェクト。
次の表に、message
変数のプロパティを示します。
プロパティ | 型 | 読み取り / 書き込み | 説明 | スコープの開始 |
---|---|---|---|---|
message |
message |
読み取り / 書き込み |
リクエスト フローでは |
プロキシ リクエスト |
message.content |
文字列 | 読み取り / 書き込み |
リクエスト、レスポンス、またはエラー メッセージの内容。 |
プロキシ リクエスト |
message.formparam.param_name |
文字列 | 読み取り / 書き込み |
指定されたフォーム パラメータの値。 |
プロキシ リクエスト |
message.formparam.param_name. |
コレクション | 読み取り専用 |
メッセージに含まれる、指定されたフォーム パラメータのすべての値。 |
プロキシ リクエスト |
message.formparam.param_name. |
整数 | 読み取り専用 |
メッセージに含まれる、指定されたフォーム パラメータの値の数。 |
プロキシ リクエスト |
message.formparams.count |
整数 | 読み取り専用 |
メッセージに含まれるすべてのフォーム パラメータの合計数。 |
プロキシ リクエスト |
message.formparams.names |
コレクション | 読み取り専用 |
メッセージに含まれるすべてのフォーム パラメータの値。 |
プロキシ リクエスト |
message.formstring |
文字列 | 読み取り専用 |
メッセージに含まれるフォーム文字列の値。 |
プロキシ リクエスト |
message.header.header_name |
文字列 | 読み取り / 書き込み |
メッセージに含まれる、指定された HTTP ヘッダーの値を取得または設定します。ヘッダーにカンマが含まれている場合は、読み取り時に、最初のカンマまでのテキスト セグメントのみが返されます。ヘッダー全体が必要な場合は、 |
プロキシ リクエスト |
message.header.header_name.N |
文字列 | 読み取り / 書き込み |
フローの状態により、リクエストまたはレスポンスのメッセージに含まれる特定のヘッダーの N 番目の値。Apigee Edge は、ヘッダーのテキスト値をカンマで区切ります。値が N に使用されるインデックスの最初の値は 0 ではなく 1 です。 たとえば、 |
プロキシ リクエスト |
message.header.header_name. |
コレクション | 読み取り専用 |
メッセージに含まれる、指定された HTTP ヘッダー名のすべての値。 |
プロキシ リクエスト |
message.header.header_name. |
整数 | 読み取り専用 |
メッセージに含まれる、指定された HTTP ヘッダー名の値の数。 |
プロキシ リクエスト |
message.headers.count |
整数 | 読み取り専用 |
メッセージに含まれるすべての HTTP ヘッダーの合計数。 |
プロキシ リクエスト |
message.headers.names |
コレクション | 読み取り専用 |
メッセージに含まれるすべての HTTP ヘッダーの値。 |
プロキシ リクエスト |
message.path |
文字列 | 読み取り / 書き込み |
クエリ パラメータを除く、URL の完全なリクエスト メッセージパス。 |
プロキシ リクエスト |
message.queryparam.param_name |
文字列 | 読み取り専用 |
指定されたメッセージ クエリ パラメータを返します。 |
プロキシ リクエスト |
message.queryparam.param_name.N |
文字列 | 読み取り / 書き込み |
メッセージ内の N 番目のクエリ パラメータの値。たとえば、 一例として、"type=siteid:1&type=language:us-en&type=currency:USD" のように単一のクエリ パラメータ名に複数の値を書き込むには、次のように設定します。
|
プロキシ リクエスト |
message.queryparam.param_name. |
コレクション | 読み取り専用 |
メッセージに含まれる特定のクエリ パラメータのすべての値。カンマ区切りのリストとしてフォーマット化されます。 たとえば、クエリ文字列が |
プロキシ リクエスト |
message.queryparam.param_name. |
整数 | 読み取り専用 |
クライアント アプリから 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.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 動詞( |
プロキシ リクエスト |
message.version |
文字列 | 読み取り / 書き込み |
クライアント アプリケーションから ProxyEndpoint に送信されたリクエストに関連付けられている HTTP バージョン。 |
プロキシ リクエスト |
メッセージの詳細については、メッセージ テンプレート関数リファレンスをご覧ください。
messageid
グローバルに一意なリクエスト ID のコンテナ。
次の表に、messageid
変数のプロパティを示します。
プロパティ | 型 | 読み取り / 書き込み | 説明 | スコープの開始 |
---|---|---|---|---|
messageid |
文字列 | 読み取り専用 |
Router ホスト名が含まれた、リクエストのグローバルに一意な ID を保存します。Router で受信したリクエストを Message Processor に送信した後、この ID を使用して、そのリクエストをトラッキングできます。 この ID は、 |
プロキシ リクエスト |
organization
organization.name
プロパティのコンテナ。
次の表に、organization
変数のプロパティを示します。
プロパティ | 型 | 読み取り / 書き込み | 説明 | スコープの開始 |
---|---|---|---|---|
organization.name |
文字列 | 読み取り専用 |
組織の名前。 |
プロキシ リクエスト |
組織の詳細については、組織についてをご覧ください。
proxy
API プロキシ構成。
次の表に、proxy
変数のプロパティを示します。
プロパティ | 型 | 読み取り / 書き込み | 説明 | スコープの開始 |
---|---|---|---|---|
proxy.basepath |
文字列 | 読み取り専用 |
API プロキシ構成に含まれる API プロキシのベースパス。ベースパスは、URL 内でホストの後に続く URI フラグメントです。条件付きフロー URI は、ベースパスの後に続きます。 URL "http://myorg-test.apigee.net/v2/weatherapi/forecastrss?w=12797282" の場合:
ベースパスを把握するには、API プロキシ定義を調べるか、proxy.basepath の値を確認するしか方法はありません。ベースパスの後には、プロキシパス接尾辞("/forecastrss")と任意のクエリ パラメータが続きます。 API プロキシ構成で動的ベースパス(例: /v2/*/weatherapi)を定義すると、ベースパスが静的な値(/v2/foo/weatherapi)に解決されるとしても、この変数にはその動的パス(/v2/*/weatherapi)が値として設定されます。 |
プロキシ リクエスト |
proxy.client.ip |
文字列 | 読み取り専用 |
着信呼び出しの |
プロキシ リクエスト |
proxy.name |
文字列 | 読み取り専用 |
ProxyEndpoint に構成された名前属性。 |
プロキシ リクエスト |
proxy.pathsuffix |
文字列 | 読み取り専用 |
クライアントから送信されて ProxyEndpoint で受信した、API プロキシ ベースパスの接尾辞の値。 ベースパスは、API プロキシを一意に識別するパス コンポーネントとして定義されます。API プロキシの公開 URL は、組織名、プロキシがデプロイされている環境、ベースパス、ベースパスの接尾辞、および任意のクエリ パラメータで構成されます。 たとえば、 |
プロキシ リクエスト |
proxy.url |
文字列 | 読み取り専用 |
存在するすべてのクエリ パラメータを含む、ProxyEndpoint で受信したプロキシ リクエストに関連付けられている完全な URL を取得します。 元のホストを使用して |
プロキシ リクエスト |
API プロキシの処理の詳細については、API と API プロキシについてをご覧ください。
request
存在するすべてのペイロードを含む、完全なリクエスト。
リクエスト データの詳細については、リクエスト データをバックエンド サーバーに渡す方法をご覧ください。
次の表に、request
変数のプロパティを示します。
プロパティ | 型 | 読み取り / 書き込み | 説明 | スコープの開始 |
---|---|---|---|---|
request |
message |
読み取り専用 |
存在するすべてのペイロードを含む、完全なリクエスト。 |
プロキシ リクエスト |
request.content |
文字列 | 読み取り / 書き込み |
リクエスト メッセージのペイロードを取得または設定します。 |
プロキシ リクエスト |
request.formparam.param_name |
文字列 | 読み取り / 書き込み |
クライアント アプリケーションから送信されたリクエストに含まれる、指定されたフォーム パラメータの値を取得または設定します。 |
プロキシ リクエスト |
request.formparam.param_name. |
コレクション | 読み取り専用 |
リクエストに含まれる特定のフォーム パラメータのすべての値。カンマ区切りのリストとしてフォーマット化されます。 たとえば、ペイロードが "a=hello&x=greeting&a=world" の場合、 |
プロキシ リクエスト |
request.formparam.param_name. |
整数 | 読み取り専用 |
リクエストに関連付けられている、指定されたフォーム パラメータのすべての値の合計数。 |
プロキシ リクエスト |
request.formparam.param_name.N |
文字列 | 読み取り / 書き込み |
メッセージ内の特定の N 番目のフォーム パラメータの値。たとえば、フォーム文字列が "a=hello&a=world" の場合、 |
プロキシ リクエスト |
request.formparams.count |
整数 | 読み取り専用 |
クライアント アプリケーションから送信されたリクエストに関連付けられているフォーム パラメータの合計数。 |
プロキシ リクエスト |
request.formparams.names |
コレクション | 読み取り専用 |
リクエストに関連付けられているすべてのフォーム パラメータ名のリスト。 |
プロキシ リクエスト |
request.formstring |
文字列 | 読み取り専用 |
クライアント アプリから送信されたリクエストの完全な 例: "name=test&type=first&group=A"。 |
プロキシ リクエスト |
request.header.header_name |
文字列 | 読み取り / 書き込み |
リクエスト内で検出された特定のヘッダーの値を取得または設定します。ヘッダーにカンマが含まれている場合は、読み取り時に、最初のカンマまでのテキスト セグメントのみが返されます。 ヘッダー全体が必要な場合は、 |
プロキシ リクエスト |
request.header.header_name.N |
文字列 | 読み取り / 書き込み |
リクエストに含まれる特定のヘッダーの N 番目の値。Apigee Edge は、ヘッダーのテキスト値をカンマで区切ります。値が N に使用されるインデックスの最初の値は 0 ではなく 1 です。 たとえば、 |
プロキシ リクエスト |
request.header.header_name. |
コレクション | 読み取り専用 |
リクエストに含まれる特定のヘッダーのすべての値。 |
プロキシ リクエスト |
request.header.header_name. |
整数 | 読み取り専用 |
リクエストに含まれる特定のヘッダーのすべての値の合計数。 |
プロキシ リクエスト |
request.headers.count |
整数 | 読み取り専用 |
リクエストに含まれるすべてのヘッダーの合計数。 |
プロキシ リクエスト |
request.headers.names |
コレクション | 読み取り専用 |
リクエストに含まれるすべてのヘッダーの名前。 |
プロキシ リクエスト |
request.path |
文字列 | 読み取り専用 |
クエリ パラメータを除いた、バックエンド サービスへのプロキシを使用しないリソースパス(ホストは含まれません)。 たとえば、バックエンド サービスへの URI が "https://example.com/rest/api/latest" の場合、 |
プロキシ リクエスト |
request.queryparam.param_name |
文字列 | 読み取り / 書き込み |
リクエストで検出された特定のクエリ パラメータの値。 |
プロキシ リクエスト |
request.queryparam.param_name.N |
文字列 | 読み取り / 書き込み |
リクエスト内の N 番目のクエリ パラメータの値。 たとえば、 一例として、"type=siteid:1&type=language:us-en&type=currency:USD" のように単一のクエリ パラメータ名に複数の値を書き込むには、次のように設定します。
|
プロキシ リクエスト |
request.queryparam.param_name. |
コレクション | 読み取り専用 |
リクエストに含まれる特定のクエリ パラメータのすべての値。カンマ区切りのリストとしてフォーマット化されます。 たとえば、 |
プロキシ リクエスト |
request.queryparam.param_name. |
整数 | 読み取り専用 |
リクエストに含まれる特定のクエリ パラメータのすべての値の合計数。 |
プロキシ リクエスト |
request.queryparams.count |
整数 | 読み取り専用 |
リクエストに含まれるすべてのクエリ パラメータの合計数。 |
プロキシ リクエスト |
request.queryparams.names |
コレクション | 読み取り専用 |
リクエストに含まれるすべてのクエリ パラメータの名前。 JavaScript を使用してクエリ パラメータ名を反復処理するには、Apigee コミュニティで How do you iterate Collection from "request.queryparams.names" in JS? をご覧ください。 |
プロキシ リクエスト |
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 のプロキシ
これは次を指しています。
リクエストでは、 レスポンスでは、 こうした違いが生じる理由は、元のリクエストはプロキシに取り込まれますが、プロキシはその後、ターゲット サービスに対して別のリクエストを送信するためです。 たとえば、ベースパスが "/my-mock-proxy" となっているサンプル プロキシに対して次の呼び出しを行うとします。
プロキシは次の URL を呼び出します。
これにより、"/user?user=Dude" がその URL に追加されます。
|
プロキシ リクエスト(レスポンスでは異なります) |
request.url |
文字列 | 読み取り専用 |
ターゲット エンドポイントに対して行われたリクエストの完全な URL。この URL にはクエリ文字列パラメータは含まれますが、ポート番号(指定されている場合)は含まれません。 たとえば、サンプル プロキシに対して "http://my_org-test.apigee.net/my-mock-proxy/user?user=Dude" を呼び出す場合、ターゲット エンドポイントが "http://example.com:8080" であれば、値は次のようになります。
|
ターゲット レスポンス |
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. |
整数 | 読み取り専用 |
レスポンスに含まれる、指定されたフォーム パラメータのすべての値の合計数。 |
ターゲット レスポンス |
response.formparams.count |
整数 | 読み取り専用 |
レスポンスに含まれるすべてのフォーム パラメータの合計数。 |
ターゲット レスポンス |
response.formparams.names |
コレクション | 読み取り専用 |
レスポンスに含まれるすべてのフォーム パラメータの名前。 |
ターゲット レスポンス |
response.header.header_name |
文字列 | 読み取り / 書き込み |
レスポンスに含まれる、指定された HTTP ヘッダーの値を取得または設定します。 ヘッダーのテキストにカンマが含まれている場合、Apigee Edge は複数の値があると推測します。この場合、 ヘッダー全体を読み取るには、 |
ターゲット レスポンス |
response.header.header_name. |
コレクション | 読み取り専用 |
レスポンスに含まれる、指定された HTTP ヘッダーのすべての値。 |
ターゲット レスポンス |
response.header.header_name. |
整数 | 読み取り専用 |
レスポンスに含まれる、指定された HTTP ヘッダーのすべての値の合計数。 |
ターゲット レスポンス |
response.header.header_name.N |
文字列 | 読み取り / 書き込み |
レスポンスに含まれる特定のヘッダーの N 番目の値。Apigee Edge は、ヘッダーのテキスト値をカンマで区切ります。値が N に使用されるインデックスの最初の値は 0 ではなく 1 です。 たとえば、 |
ターゲット レスポンス |
response.headers.count |
整数 | 読み取り専用 |
レスポンスに含まれるすべてのヘッダーの合計数。 |
ターゲット レスポンス |
response.headers.names |
コレクション | 読み取り専用 |
レスポンスに含まれるすべてのヘッダーの名前。 |
ターゲット レスポンス |
response.reason.phrase |
文字列 | 読み取り / 書き込み |
特定のリクエストに対するレスポンスの理由句。 |
ターゲット レスポンス |
response.status.code |
整数 | 読み取り / 書き込み |
リクエストに対して返されたレスポンス コード。この変数を使用して、 |
ターゲット レスポンス |
response.transport.message |
文字列 | 読み取り専用 |
コンテキスト依存オブジェクトである TransportMessage タイプのレスポンス。 |
ターゲット レスポンス |
route
<RouteRule>
と TargetEndpoint の名前を指定します。
次の表に、route
変数のプロパティを示します。
プロパティ | 型 | 読み取り / 書き込み | 説明 | スコープの開始 |
---|---|---|---|---|
route.name |
文字列 | 読み取り専用 |
ProxyEndpoint で実行された |
ターゲット リクエスト |
route.target |
文字列 | 読み取り専用 |
実行された TargetEndpoint の名前。例: "default"。 |
ターゲット リクエスト |
router
router.uuid
プロパティのコンテナ。非推奨です。
次の表に、router
変数のプロパティを示します。
プロパティ | 型 | 読み取り / 書き込み | 説明 | スコープの開始 |
---|---|---|---|---|
router.uuid |
文字列 | 読み取り専用 |
非推奨であり、null を返します(以前は、プロキシを処理する Router の UUID が返されました)。 |
プロキシ リクエスト |
servicecallout
ServiceCallout ポリシーの TargetEndpoint を記述します。
次の表に、servicecallout
変数のプロパティを示します。
プロパティ | 型 | 読み取り / 書き込み | 説明 | スコープの開始 |
---|---|---|---|---|
servicecallout.policy_name.expectedcn |
文字列 | 読み取り / 書き込み |
ServiceCallout policy ポリシーで参照される TargetEndpoinnt の予期される一般名。これは、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.time.year |
整数 | 読み取り専用 |
|
プロキシ リクエスト |
system.time.month |
整数 | 読み取り専用 |
|
プロキシ リクエスト |
system.time.day |
整数 | 読み取り専用 |
|
プロキシ リクエスト |
system.time.dayofweek |
整数 | 読み取り専用 |
|
プロキシ リクエスト |
system.time.hour |
整数 | 読み取り専用 |
|
プロキシ リクエスト |
system.time.minute |
整数 | 読み取り専用 |
|
プロキシ リクエスト |
system.time.second |
整数 | 読み取り専用 |
|
プロキシ リクエスト |
system.time.millisecond |
整数 | 読み取り専用 |
|
プロキシ リクエスト |
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 プロキシが次のターゲットを呼び出すとします。
この例では、 ターゲットが次のようになっているとします。
|
ターゲット リクエスト |
target.copy.pathsuffix |
ブール値 | 読み取り / 書き込み |
"true"の場合、ProxyEndpoint から TargetEndpoint に転送されるリクエストで、パスの接尾辞(ProxyEndpoint のベースパスで定義された URI の後に続く URI パスのフラグメント)が保持されます。 |
ターゲット リクエスト |
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. |
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. |
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(メッセージ フロー中に |
ターゲット リクエスト |
variable
variable.expectedcn
プロパティのコンテナ。
次の表に、variable
変数のプロパティを示します。
プロパティ | 型 | 読み取り / 書き込み | 説明 | スコープの開始 |
---|---|---|---|---|
variable.expectedcn |
文字列 | 読み取り / 書き込み |
TLS / SSL で実行される場合、共通名として公開されている変数。 |
プロキシ リクエスト |
TLS の操作方法について詳しくは、TLS/SSL の概要をご覧ください。
virtualhost
仮想ホストの詳細を指定します。
次の表に、virtualhost
変数のプロパティを示します。
プロパティ | 型 | 読み取り / 書き込み | 説明 | スコープの開始 |
---|---|---|---|---|
virtualhost.aliases.values |
文字列の配列 | 読み取り専用 |
特定のリクエスト実行中にアクセスした仮想ホストのホスト エイリアス。 |
プロキシ リクエスト |
virtualhost.name |
文字列 | 読み取り専用 |
発信元クライアント リクエストに対応する仮想ホストの名前。 |
プロキシ リクエスト |
virtualhost.ssl.enabled |
ブール値 | 読み取り専用 |
仮想ホストの構成で TLS / SSL が有効にされている場合は "true" を返します。 |
プロキシ リクエスト |
仮想ホストの操作方法について詳しくは、仮想ホストの構成をご覧ください。