流程變數參考資料

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

本節提供流程變數的參考資訊。

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 Proxy。

下表說明 apiproxy 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
apiproxy.name 字串 唯讀 API Proxy 的名稱。例如「My Proxy」。 Proxy 要求
apiproxy.revision 字串 唯讀 API Proxy 的修訂版本編號。例如「6」。 Proxy 要求

如要進一步瞭解如何使用 API Proxy,請參閱 瞭解 API 和 API Proxy

application

application.basepath 屬性的容器。

下表說明 application 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
application.basepath 字串 唯讀 部署基本路徑 (在 API 部署期間指定)。 Proxy 要求

client

傳送要求至 Edge 路由器的應用程式或系統。

下表說明 client 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
client.cn 字串 唯讀

用戶端應用程式提供的 TLS/SSL 憑證中指定的一般名稱。

Proxy 要求
client.country 字串 唯讀

用戶端應用程式提供的 TLS/SSL 憑證中的國家/地區。

Proxy 要求
client.email.address 字串 唯讀

用戶端應用程式提供的 TLS/SSL 憑證中的電子郵件地址。

Proxy 要求
client.host 字串 唯讀

與 ProxyEndpoint 接收要求相關聯的 HTTP 主機 IP。

Proxy 要求
client.ip 字串 唯讀

傳送訊息至 Edge 路由器的用戶端或系統 IP 位址。適用對象 例如原始用戶端 IP 或負載平衡器 IP。

Proxy 要求
client.locality 字串 唯讀

用戶端提供的 TLS/SSL 憑證中的地區 (城市)。

Proxy 要求
client.organization 字串 唯讀 TLS/SSL 憑證中的機構 用戶端提供的 IP 位址(不一定等於 Apigee Edge 上的機構)。 Proxy 要求
client.organization.unit 字串 唯讀

用戶端提供的 TLS/SSL 憑證中的機構單位。

Proxy 要求
client.port 整數 唯讀

與來源用戶端要求對 ProxyEndpoint 的要求相關聯的 HTTP 通訊埠。

Proxy 要求
client.received.end.time 字串 唯讀

Proxy 完成接收要求的時間,以字串格式表示 和來自相同來源的 ProxyEndpoint例如:2013 年 8 月 21 日星期三 19:16:47 世界標準時間。

這個時間值是相應 32 位元時間戳記的字串 數量例如:「2013 年 8 月 21 日週三 19:16:47 UTC」對應至時間戳記值 1377112607413。

Proxy 要求
client.received.end.timestamp 唯讀

指定 Proxy 完成接收來自 和原始用戶端。這個值是含有 64 位元 (長) 整數, 自世界標準時間 1970 年 1 月 1 日午夜起經過的毫秒數。

Proxy 要求
client.received.start.time 字串 唯讀

Proxy 開始接收要求的時間,以字串格式表示 和來自相同來源的 ProxyEndpoint例如:2013 年 8 月 21 日星期三 19:16:47 世界標準時間

這個時間值是相應 32 位元時間戳記的字串 數量例如:「2013 年 8 月 21 日週三 19:16:47 UTC」對應至時間戳記值 1377112607413。

Proxy 要求
client.received.start.timestamp 唯讀

指定 Proxy 開始接收來自 和原始用戶端。這個值是含有 64 位元 (長) 整數, 自世界標準時間 1970 年 1 月 1 日午夜起經過的毫秒數。

Proxy 要求
client.scheme 字串 唯讀

根據用戶端應用程式所使用的傳輸方式,傳回 http 或 https 要求訊息。

Proxy 要求
client.sent.end.time 字串 唯讀

以字串格式表示的時間,表示 Proxy 完成傳送回應的時間。 從 ProxyEndpoint 連線到用戶端例如:「世界標準時間 2013 年 8 月 21 日週三 19:16:47」。

這個值是對應 32 位元的字串 client.sent.end.timestamp。例如,「世界標準時間 2013 年 8 月 21 日 19:16:47」 對應至時間戳記值 1377112607413。

PostClientFlow
client.sent.end.timestamp 唯讀 指定 ProxyEndpoint 完成傳回回應時間的時間戳記值 傳送至原始用戶端應用程式這個值是 64 位元 (長) 整數,其中包含 從世界標準時間 1970 年 1 月 1 日午夜起經過的毫秒數。 PostClientFlow
client.sent.start.time 字串 唯讀 ProxyEndpoint 開始傳回 回應原始用戶端應用程式。例如:「世界標準時間 2013 年 8 月 21 日 19:16:47」。

這個值是對應 32 位元的字串 client.sent.start.timestamp。例如,「世界標準時間 2013 年 8 月 21 日 19:16:47」 對應至時間戳記值 1377112607413。

PostClientFlow
client.sent.start.timestamp 唯讀 Proxy 開始從 ProxyEndpoint 傳送回應給用戶端時。這個 值是以包含毫秒數的 64 位元 (長) 整數表示 從世界標準時間 1970 年 1 月 1 日午夜起。 PostClientFlow
client.ssl.enabled 字串 唯讀

「true」如果為 TLS/SSL 設定 ProxyEndpoint;否則為「false」。

Proxy 要求
client.state 字串 唯讀

用戶端提供的 TLS/SSL 憑證狀態。

Proxy 要求

current

包含目前 API Proxy 流程的相關資訊。

下表說明 current 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
current.flow.name 字串 唯讀 目前執行流程的名稱 (例如「PreFlow」、「PostFlow」或 條件式流程的名稱)。 Proxy 要求
current.flow.description 字串 唯讀 目前執行流程的說明。這和 資料流 XML 設定中 <Description> 元素的值。 Proxy 要求

您可以在 Edge UI 的追蹤記錄檢視畫面中查看這些屬性。不過,這些屬性 預設會顯示在傳統版 UI 的「追蹤」檢視畫面中。

environment

environment.name 屬性的容器。

下表說明 environment 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
environment.name 字串 唯讀 執行交易的環境名稱。 Proxy 要求

error

代表 錯誤流程

下表說明 error 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
error message 讀取/寫入 message 類型錯誤,這是錯誤流程中的內容比對物件。 錯誤
error.content 字串 讀取/寫入 錯誤內容。 錯誤
error.message 字串 唯讀

與錯誤相關聯的訊息,其值只會在錯誤流程發生前提供 新的執行個體

錯誤
error.status.code 整數 唯讀

與錯誤相關的 HTTP 狀態碼。例如「400」。

錯誤
error.reason.phrase 字串 唯讀

與錯誤相關聯的原因詞組。例如:「錯誤的要求」。

錯誤
error.transport.message TransportMessage 唯讀

TransportMessage 類型的任何錯誤。

錯誤
error.state 整數 唯讀

發生錯誤的流程中的狀態。

錯誤
error.header.header_name 字串 讀取/寫入

取得或設定回應標頭。

錯誤

fault

在政策擲回錯誤時,設為執行階段錯誤代碼的流程變數。 每個政策的錯誤代碼值都不盡相同。

屬性 類型 讀取/寫入 說明 範圍開始
fault.fault_name 字串 唯讀 fault_name 是錯誤的名稱,如「執行階段錯誤」表格所述 在每個政策參考主題中加入。 錯誤

is

is.error 屬性的容器。

下表說明 is 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
is.error 布林值 唯讀

錯誤標記。

Proxy 要求

loadbalancing

提供 TargetEndpoint 負載平衡狀態的相關資訊。

下表說明 loadbalancing 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
loadbalancing.failedservers 字串陣列 唯讀

在 TargetEndpoint 負載平衡期間失敗的 TargetServer 清單。

目標回應
loadbalancing.isfallback 布林值 唯讀

「true」如果負載平衡期間叫用 TargetServer 已啟用備用功能 目標端點

目標回應
loadbalancing.targetserver 字串 唯讀

在 TargetEndpoint 進行負載平衡期間叫用的 TargetServer。只在 系統會在定義負載平衡器元素時設定 <Path> 元素。

目標回應

message

與要求流程中 request 相同值的情境物件 或回應流程中的 response,或錯誤中的 error 流程

下表說明 message 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
message message 讀取/寫入

與要求流程中 request 相同值的情境物件 或以 response 的形式顯示於回應流程中,或是在「錯誤」中傳回 error 流程

Proxy 要求
message.content 字串 讀取/寫入

要求、回應或錯誤訊息的內容。

Proxy 要求
message.formparam.param_name 字串 讀取/寫入

指定表單參數的值。

Proxy 要求
message.formparam.param_name.
 values
集合 唯讀

訊息中指定表單參數的所有值。

Proxy 要求
message.formparam.param_name.
 values.count
整數 唯讀

訊息中的指定表單參數值的計數。/p>

Proxy 要求
message.formparams.count 整數 唯讀

訊息中所有表單參數的計數。

Proxy 要求
message.formparams.names 集合 唯讀

訊息中所有表單參數的值。

Proxy 要求
message.formstring 字串 唯讀

訊息中的表單字串值。

Proxy 要求
message.header.header_name 字串 讀取/寫入

取得或設定訊息中指定 HTTP 標頭的值。如果標頭 包含逗號,讀時您只會收到到第 1 行 逗號)。如要保留完整的標頭,請填寫表單 request.header.header_name.
 values

Proxy 要求
message.header.header_name.N 字串 讀取/寫入

訊息中「第 N」特定標頭值的值 (要求或 視流程狀態而定。Apigee Edge 會將標頭文字值 。請注意,其值用於 N 的索引是從 1 開始,而非從 0 開始。

舉例來說,如果 Cache-control 標頭是「public,maxage=16544」,則 message.header.cache-control.1 的傳回值 「maxage=16544」。

Proxy 要求
message.header.header_name.
 values
集合 唯讀

訊息中指定 HTTP 標頭名稱的所有值。

Proxy 要求
message.header.header_name.
 values.count
整數 唯讀

訊息中指定 HTTP 標頭名稱值的計數。

Proxy 要求
message.headers.count 整數 唯讀

訊息中的所有 HTTP 標頭數量。

Proxy 要求
message.headers.names 集合 唯讀

訊息中所有 HTTP 標頭的值

Proxy 要求
message.path 字串 讀取/寫入

網址中的完整要求訊息路徑 (不含任何查詢參數)。

Proxy 要求
message.queryparam.param_name 字串 唯讀

傳回指定的訊息查詢參數。

Proxy 要求
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」
Proxy 要求
message.queryparam.param_name.
 values
集合 唯讀

訊息中特定查詢參數的所有值,格式為 以半形逗號分隔的清單。

舉例來說,如果查詢字串是 a=hello&a=world,則 message.queryparam.a.values 是「['hello', 'world']」。

Proxy 要求
message.queryparam.param_name.
 values.count
整數 唯讀

與您所傳送要求相關聯的指定查詢參數總數 用戶端應用程式的 ProxyEndpoint。

Proxy 要求
message.queryparams.count 整數 唯讀

所有與所傳送請求相關聯的查詢參數總數 用戶端應用程式的 ProxyEndpoint。

Proxy 要求
message.queryparams.names 集合 唯讀

清單中,所有與所傳入要求相關聯的查詢參數名稱 用戶端應用程式的 ProxyEndpoint。

如要使用 JavaScript 疊代查詢參數名稱,請參閱下列 Apigee 社群貼文:如何從「request.queryparams.names」疊代集合? Apigee 社群中。

Proxy 要求
message.querystring 字串 唯讀

包含與要求相關聯的所有查詢參數名稱和值的字串 傳送至 ProxyEndpoint。

例如,針對 "http://api.apiFactory.com/inventoryors?name=nick&surname=danger" 要求, message.querystring 的值為「name=nick&surname=danger」。

Proxy 要求
message.reason.phrase 字串 唯讀

目標回應訊息的原因詞組。

目標回應
message.status.code 整數 唯讀

目標回應訊息的 HTTP 狀態碼。

目標回應
message.transport.message TransportMessage 唯讀

TransportMessage 類型的訊息,這是關聯物件。

Proxy 要求
message.uri 字串 唯讀

包含查詢參數的完整 URI 路徑 (位於網域網址後方)。

例如,針對 "http://api.apiFactory.com/inventoryors?name=nikola&surname=tesla" 要求, 這個變數會傳回 「inventoryors?name=nikola&surname=tesla」

Proxy 要求
message.verb 字串 唯讀

HTTP 動詞 (GETPUTPOST DELETE 等)。

Proxy 要求
message.version 字串 讀取/寫入

與用戶端傳送至 ProxyEndpoint 的要求相關聯的 HTTP 版本 應用程式。

Proxy 要求

如要進一步瞭解訊息,請參閱 訊息範本函式參考資料

messageid

要求的全域專屬 ID 容器。

下表說明 messageid 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
messageid 字串 唯讀

保留要求的全域專屬 ID,包括路由器主機名稱。 這個 ID 可讓系統追蹤傳送至路由器的要求。 訊息處理器

這個 ID 會記錄在 Edge 錯誤記錄中,讓 messageid 與 發生錯誤。

Proxy 要求

organization

organization.name 屬性的容器。

下表說明 organization 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
organization.name 字串 唯讀

機構名稱。

Proxy 要求

如要進一步瞭解機構,請參閱 瞭解 機構

proxy

API Proxy 設定。

下表說明 proxy 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
proxy.basepath 字串 唯讀

API Proxy 設定中基本路徑的值。基本路徑是 URI 緊接在網址主機的片段。條件式流程 URI 依循基本 路徑。

在網址「http://myorg-test.apigee.net/v2/weatherapi/forecastrss?w=12797282」:

  • 主機為「myorg-test.apigee.net」(其中包括 機構名稱和環境)
  • 基本路徑為「/v2/weatherapi」

唯一的確認方法 則是查看 API Proxy 定義或檢查 proxy.basepath 的值 變數。Proxy 路徑後置字串會接在基本路徑 (「/forecastrss」),以及所有 查詢參數。

如果在 API Proxy 中定義動態基礎路徑 「/v2/*/weatherapi」這類變數,這個變數就會設為動態路徑 (「/v2/*/weatherapi」),即使基礎路徑會解析為靜態值,例如 &quot;/v2/foo/weatherapi&quot;.

Proxy 要求
proxy.client.ip 字串 唯讀

來電的 X-Forwarded-For 位址,也就是 從上次外部 TCP 握手接收的 IP 位址邊緣。這可能是呼叫 用戶端或負載平衡器

Proxy 要求
proxy.name 字串 唯讀

為 ProxyEndpoint 設定的名稱屬性。

Proxy 要求
proxy.pathsuffix 字串 唯讀

從用戶端傳送並在 並存取 Proxy 端點

basepath 定義為專門用來識別 API Proxy 的路徑元件。 API Proxy 公開網址包含貴機構名稱, 部署 Proxy 的環境、basepath、basepath 後置字串以及任何查詢 參數。

例如,在傳送至 http://myorg-test.apigee.net/v2/weatherapi/forecastrss?w=12797282 的要求中 Basepath 後置字串為「/forecastrss」。

Proxy 要求
proxy.url 字串 唯讀

取得與 ProxyEndpoint 接收的 Proxy 要求相關聯的完整網址。 包括任何出現的查詢參數 網址主機一律為 localhost 但如果使用 <LocalTargetConnection> 叫用 Proxy 執行 Proxy 鏈結

舉例來說,假設使用request 主機,請參閱存取要求訊息

Proxy 要求

如要進一步瞭解如何使用 API Proxy,請參閱 瞭解 API 和 API Proxy

request

完整的要求,包括顯示的任何酬載。

如要進一步瞭解要求資料,請參閱 如何將要求資料傳送至後端伺服器?

下表說明 request 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
request message 唯讀

完整的要求,包括顯示的任何酬載。

Proxy 要求
request.content 字串 讀取/寫入

取得或設定要求訊息的酬載。

Proxy 要求
request.formparam.param_name 字串 讀取/寫入

取得或設定來自以下請求的指定表單參數值: 用戶端應用程式

Proxy 要求
request.formparam.param_name.
 values
集合 唯讀

要求中特定表單參數的所有值,格式為 以半形逗號分隔的清單。

舉例來說,如果酬載 "a=hello&x=greeting&a=world",那麼 request.formparam.a.values 是「['hello', 'world']」。

Proxy 要求
request.formparam.param_name.
 values.count
整數 唯讀

與要求相關聯的指定表單參數的所有值總數。

Proxy 要求
request.formparam.param_name.N 字串 讀取/寫入

訊息中「第 N 個」特定表單參數的值。舉例來說 格式為「a=hello&a=world」,接著傳回 request.formparam.a.1 為「hello」。

Proxy 要求
request.formparams.count 整數 唯讀

從用戶端傳送的要求相關聯的所有表單參數計數 應用程式。

Proxy 要求
request.formparams.names 集合 唯讀

列出與要求相關聯的所有表單參數名稱。

Proxy 要求
request.formstring 字串 唯讀

從用戶端應用程式傳送要求中的完整 formparam

例如:「name=test&type=first&group=A」。

Proxy 要求
request.header.header_name 字串 讀取/寫入

取得或設定要求中特定標頭的值。如果標頭 包含逗號,讀時您只會收到到第 1 行 逗號)。

如要保留完整的標頭,請填寫表單 request.header.header_name.values

Proxy 要求
request.header.header_name.N 字串 讀取/寫入

要求中的「第 N」特定標頭值。Apigee Edge 以半形逗號分隔標題文字值。請注意,其值用於 N 的索引是 以 1 為基礎,而非以 0 為基礎

舉例來說,如果 Cache-control 標頭為「public, maxage=16544」, 則 request.header.cache-control.1 傳回的值就是 「maxage=16544」。

Proxy 要求
request.header.header_name.
 values
集合 唯讀

要求中特定標頭的所有值。

Proxy 要求
request.header.header_name.
 values.count
整數 唯讀

要求中特定標頭所有值的計數。

Proxy 要求
request.headers.count 整數 唯讀

要求中所有標頭的計數。

Proxy 要求
request.headers.names 集合 唯讀

要求中所有標頭的名稱。

Proxy 要求
request.path 字串 唯讀

未經 Proxy 處理的資源路徑 (不含主機) 排除查詢參數

例如,後端服務的 URI 是 「https://example.com/rest/api/latest」,然後使用 request.path 為「/rest/api/latest」。

Proxy 要求
request.queryparam.param_name 字串 讀取/寫入

在要求中找到特定查詢參數的值。

Proxy 要求
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」
Proxy 要求
request.queryparam.param_name.
 values
集合 唯讀

請求中特定查詢參數的所有值,格式為 以半形逗號分隔的清單。

舉例來說,如果 request.querystring 是 "a=hello&b=lovely&a=world",然後 request.queryparam.a.values 是「['hello', 'world']」。

Proxy 要求
request.queryparam.param_name.
 values.count
整數 唯讀

要求中特定查詢參數的所有值總數。

Proxy 要求
request.queryparams.count 整數 唯讀

要求中所有查詢參數的計數。

Proxy 要求
request.queryparams.names 集合 唯讀

要求中所有查詢參數的名稱。

若要使用 JavaScript 疊代查詢參數名稱,請參閱: 如何從「request.queryparams.names」疊代集合? Apigee 社群

Proxy 要求
request.querystring 字串 唯讀

從用戶端應用程式傳送的要求中,完整查詢參數清單。

舉例來說,如果要求是「http://host.com/123?name=first&surname=second&place=address」, 那麼這個變數就會傳回「name=first&surname=second&place=address」。

Proxy 要求
request.transportid 字串 唯讀

以 TransportMessage 類型當做要求的 ID,這是關聯物件。

Proxy 要求
request.transport.message 傳輸訊息 唯讀

TransportMessage 類型的要求,這是一個連續物件。

Proxy 要求
request.uri 字串 唯讀

在 API Proxy 中,ProxyEndpoint 中的 Proxy <BasePath> ( 以及 Proxy 的基準網址,兩者都會對應至 TargetEndpoint 呼叫。例如:

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

指向

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

在「要求」中,request.uri 是 Proxy 基本路徑 + 地址的剩餘部分,包括查詢參數。

回應中,request.uri 是 位址 (包括查詢參數) 位於 HTTPTargetConnection 後方

差別在於原始要求會進入 Proxy,但接著是 Proxy 會向目標服務發出另一個要求。

假設以下呼叫是對我們的範例 Proxy 提出,其擁有基本路徑 「/my-mock-proxy」:

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

Proxy 呼叫:

http://mocktarget.apigee.net

哪些會附加「/user?user=Dude」。

  • 要求:request.uri = "/my-mock-proxy/user?user=Dude"
  • 回應:request.uri = "/user?user=Dude"
Proxy 要求 (回應之間的差異)
request.url 字串 唯讀

向目標端點提出要求的完整網址,包括 查詢字串參數,但不包含通訊埠編號 (如果已指定)。

例如,如果對範例 Proxy 發出呼叫 「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」。

Proxy 要求
request.version 字串 唯讀

要求的 HTTP 版本。例如「1.1」。

Proxy 要求

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 的索引是 以 1 為基礎,而非以 0 為基礎

舉例來說,如果 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 Proxy TargetEndpoint。

目標要求
route.target 字串 唯讀

所執行 TargetEndpoint 的名稱。例如「default」。

目標要求

router

router.uuid 屬性的容器,已經淘汰。

下表說明 router 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
router.uuid 字串 唯讀

已淘汰並傳回空值。(舊稱為處理 proxy.)

Proxy 要求

servicecallout

說明服務摘要政策的 TargetEndpoint。

下表說明 servicecallout 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
servicecallout.policy_name.expectedcn 字串 讀取/寫入

目標端點的預期通用名稱,在 服務摘要政策。只有在 TargetEndpoint 參照時,這個情況才有意義 將要求連線至 TLS/SSL 端點

Proxy 要求
servicecallout.policy_name.target.url 字串 讀取/寫入

特定服務呼叫政策的 TargetEndpoint 網址。

Proxy 要求
servicecallout.requesturi 字串 讀取/寫入

服務呼叫政策政策的 TargetEndpoint URI。URI 是 TargetEndpoint URL,不含通訊協定和網域規格。

Proxy 要求

system

指出系統的 IP 位址及 Proxy 的詳細資料。

下表說明 system 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
system.interface.interface_name 字串 唯讀

系統的 IP 位址

Proxy 要求
system.pod.name 字串 唯讀

執行 Proxy 的 Pod 名稱。

Proxy 要求
system.region.name 字串 唯讀

資料中心的名稱 執行 Proxy 的區域

Proxy 要求
system.time 字串 唯讀

讀取這個變數的時間。例如:「世界標準時間 2013 年 8 月 21 日 19:16:47」。

這個值是對應 system.timestamp。例如,「世界標準時間 2013 年 8 月 21 日 19:16:47」對應於 時間戳記值「1377112607413」

Proxy 要求
system.time.year 整數 唯讀

system.time的年份。

Proxy 要求
system.time.month 整數 唯讀

system.time的月份。

Proxy 要求
system.time.day 整數 唯讀

system.time 中的日。

Proxy 要求
system.time.dayofweek 整數 唯讀

system.time的星期幾。

Proxy 要求
system.time.hour 整數 唯讀

system.time 的小時部分。

Proxy 要求
system.time.minute 整數 唯讀

system.time的分鐘部分。

Proxy 要求
system.time.second 整數 唯讀

system.time 的第二部分。

Proxy 要求
system.time.millisecond 整數 唯讀

system.time 的毫秒部分。

Proxy 要求
system.time.zone 字串 唯讀

系統時區。

Proxy 要求
system.timestamp 唯讀

64 位元 (長) 整數,代表讀取這個變數的時間。這個鍵 是自世界標準時間 1970 年 1 月 1 日午夜起經過的毫秒數。例如: 「1534783015000」。

Proxy 要求
system.uuid 字串 唯讀

處理 Proxy 的訊息處理工具 UUID。

Proxy 要求

target

說明要求的目標。

下表說明 target 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
target.basepath 字串 唯讀

目標服務的資源路徑 (不含網域),不含查詢 參數,指定在 Proxy 的 TargetEndpoint 中定義。

舉例來說,假設某個 API Proxy 呼叫下列目標:

<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 為空值。

目標要求
target.copy.pathsuffix 布林值 讀取/寫入

設為「true」時,從 ProxyEndpoint 轉送至 TargetEndpoint 的要求會保留路徑 後置字串 (在 ProxyEndpoint 基本中定義的 URI 路徑片段) 路徑)。

目標要求
target.copy.queryparams 布林值 讀取/寫入

設為「true」時,從 ProxyEndpoint 轉由至 TargetEndpoint 的要求會保留查詢 參數。

目標要求
target.country 字串 唯讀

目標伺服器提供的 TLS/SSL 憑證國家/地區

目標回應
target.cn 字串 唯讀

目標端點的通用名稱。這只有在 TargetEndpoint 端點時才有意義 指的是 TLS/SSL 端點

目標要求
target.email.address 字串 唯讀

目標伺服器提供的 TLS/SSL 憑證電子郵件地址

目標回應
target.expectedcn 字串 讀取/寫入

目標端點的預期通用名稱。只有在 TargetEndpoint 參照的是 TLS/SSL 端點。

Proxy 要求
target.host 字串 唯讀

將回應傳回 API Proxy 的目標服務網域名稱。

目標回應
target.ip 字串 唯讀

將回應傳回 API Proxy 的目標服務 IP 位址。

目標回應
target.locality 字串 唯讀

目標伺服器提供的 TLS/SSL 憑證地區 (城市)

目標回應
target.name 字串 唯讀

從目標端點傳送訊息的目標訊息。

目標要求
target.organization 字串 唯讀

目標伺服器提供的 TLS/SSL 憑證機構。

目標回應
target.organization.unit 字串 唯讀

目標伺服器提供的 TLS/SSL 憑證的機構單位。

目標回應
target.port 整數 唯讀

將回應傳回 API Proxy 的目標服務通訊埠號碼。

目標回應
target.received.end.time 字串 唯讀

以字串格式表示的時間,TargetEndpoint 完成接收 回應。例如:「世界標準時間 2013 年 8 月 21 日 19:16:47」。

這個時間值是相應 32 位元時間戳記的字串 數量例如,「世界標準時間 2013 年 8 月 21 日 19:16:47」對應至時間戳記值 「1377112607413」之間。

目標回應
target.received.end.
  timestamp
唯讀

指定 TargetEndpoint 完成接收回應的時間戳記值 目標。例如「1534783015000」。這個值為 64 位元 (長) 整數 指定自世界標準時間 1970 年 1 月 1 日午夜起經過的毫秒數。

目標回應
target.received.start.time 字串 唯讀

以字串格式表示的時間,也就是 TargetEndpoint 開始接收到 回應。例如:「世界標準時間 2013 年 8 月 21 日 19:16:47」。

這個時間值是相應 32 位元時間戳記的字串 數量例如,「世界標準時間 2013 年 8 月 21 日 19:16:47」對應至時間戳記值 「1377112607413」。

目標回應
target.received.start.
  timestamp
唯讀

指定 TargetEndpoint 開始接收回應的時間戳記值 目標。例如「1534783015000」。這個值為 64 位元 (長) 整數 指定自世界標準時間 1970 年 1 月 1 日午夜起經過的毫秒數。

目標回應
target.scheme 字串 唯讀

範圍開始:目標回應
類型:字串
權限:讀取/寫入

根據要求訊息傳回 http 或 https。

目標要求
target.sent.end.time 字串 唯讀

時間,以字串格式表示,當 Proxy 停止將要求傳送至此處的時間。 指定在 TargetEndpoint 中指定的網址。例如:「世界標準時間 2013 年 8 月 21 日 19:16:47」。

這個時間值是相應 32 位元時間戳記的字串 數量例如,「世界標準時間 2013 年 8 月 21 日 19:16:47」對應至時間戳記值 「1377112607413」。

目標要求
target.sent.end.timestamp 唯讀

指定 Proxy 完成將要求傳送至網址的時間戳記值 目標端點中部署的 Pod。例如「1377112607413」。這個值為 64 位元 (長) 整數,內含 1 月 1 日午夜起經過的毫秒數。 世界標準時間 1970。

目標要求
target.sent.start.time 字串 唯讀

以字串格式表示的時間,Proxy 開始將要求傳送至 指定在 TargetEndpoint 中指定的網址。例如:「世界標準時間 2013 年 8 月 21 日 19:16:47」。

這個時間值是相應 32 位元時間戳記的字串 數量例如,「世界標準時間 2013 年 8 月 21 日 19:16:47」對應至時間戳記值 「1377112607413」。

目標要求
target.sent.start.timestamp 唯讀

指定 Proxy 開始傳送要求到網址的時間戳記值 目標端點中部署的 Pod。例如「1534783015000」。這個值為 64 位元 (長) 整數,用來指定從午夜算起的毫秒數, 世界標準時間 1970 年 1 月 1 日

目標要求
target.ssl.enabled 布林值 唯讀

TargetEndpoint 是否在 TLS/SSL 上執行。

Proxy 要求
target.state 字串 唯讀

目標伺服器提供的 TLS/SSL 憑證狀態。

目標回應
target.url 字串 讀取/寫入

TargetEndpoint XML 檔案中設定的網址或動態目標網址 (如果 target.url 會在訊息流程中設定)。變數不含任何 額外的路徑元素或查詢參數如果呼叫範圍超出範圍,則傳回空值; 否則不設定。

目標要求

variable

variable.expectedcn 屬性的容器。

下表說明 variable 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
variable.expectedcn 字串 讀取/寫入

如果是在 TLS/SSL 上執行變數,則會使用一般名稱公開變數。

Proxy 要求

如要進一步瞭解如何使用 TLS,請參閱 TLS/SSL 簡介

virtualhost

指定虛擬主機的詳細資料。

下表說明 virtualhost 變數的屬性:

屬性 類型 讀取/寫入 說明 範圍開始
virtualhost.aliases.values 字串陣列 唯讀

在特定要求期間命中的虛擬主機主機別名。

Proxy 要求
virtualhost.name 字串 唯讀

處理來源用戶端要求的虛擬主機名稱。

Proxy 要求
virtualhost.ssl.enabled 布林值 唯讀

傳回「true」會在虛擬主機設定中啟用 TLS/SSL。

Proxy 要求

如要進一步瞭解如何使用虛擬主機,請參閱 設定虛擬主機