本页面适用于 Apigee 和 Apigee Hybrid。
查看 Apigee Edge 文档。
本部分介绍了关于流变量的参考信息。
Apigee 定义了以下流变量:
apigee
is
request
apiproduct
loadbalancing
response
apiproxy
message
route
client
messageid
servicecallout
current
mint
system
environment
organization
target
error
proxy
variable
fault
publishmessage
graphql
ratelimit
后续部分介绍了各项变量。
apigee
一个辅助变量,可提供有关政策执行时间的信息。
下表介绍了 apigee
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
apigee.metrics.policy.policy_name.timeTaken |
整数 | 只读 | 政策开始执行的时间(以纳秒为单位)。 | 政策 |
apiproduct
一个辅助变量,提供 API 产品相关信息。
下表介绍了 apiproduct
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
apiproduct.operation |
字符串 | 只读 |
API 产品操作的名称。此变量可帮助您区分配额政策的设置和 API 产品操作的配额设置。 例如 |
代理请求 |
apiproduct.operation.resource |
字符串 | 只读 |
与请求匹配的操作的资源名称。 |
代理请求 |
apiproduct.operation.methods |
数组 | 只读 |
匹配操作允许的一个 HTTP 方法数组。 |
代理请求 |
apiproduct.operation.attributes.key_name |
数组 | 只读 |
获取与 key_name 匹配的自定义特性值。 |
代理请求 |
详情请参阅以下内容:
apiproxy
描述 API 代理。
下表介绍了 apiproxy
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
apiproxy.name |
字符串 | 只读 | API 代理的名称。例如 My Proxy 。 |
代理请求 |
apiproxy.revision |
字符串 | 只读 | API 代理的修订版本号。例如 6 。 |
代理请求 |
apiproxy.basepath |
字符串 | 只读 | 部署基本路径(在 API 部署期间指定)。 | 代理请求 |
如需详细了解如何使用 API 代理,请参阅了解 API 和 API 代理。
client
向负载均衡器发送请求的应用或系统。
下表介绍了 client
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
client.cn |
字符串 | 只读 |
客户端应用提供的 TLS/SSL 证书中指定的通用名称。 |
代理请求 |
client.country |
字符串 | 只读 |
客户端应用提供的 TLS/SSL 证书中显示的国家/地区。 |
代理请求 |
client.email.address |
字符串 | 只读 |
客户端应用提供的 TLS/SSL 证书中指定的电子邮件地址。 |
代理请求 |
client.host |
字符串 | 只读 |
与 ProxyEndpoint 收到的请求相关的 HTTP 主机 IP。 |
代理请求 |
client.ip |
字符串 | 只读 |
向负载均衡器发送消息的客户端或系统的 IP 地址。例如,该属性可以是原始客户端 IP,也可以是负载均衡器 IP。 |
代理请求 |
client.locality |
字符串 | 只读 |
客户端提供的 TLS/SSL 证书中显示的市行政区(城市)。 |
代理请求 |
client.organization |
字符串 | 只读 | 客户端提供的 TLS/SSL 证书中显示的组织。(不一定与 Apigee 中的组织一致。) | 代理请求 |
client.organization.unit |
字符串 | 只读 |
客户端提供的 TLS/SSL 证书中显示的组织单元。 |
代理请求 |
client.port |
整数 | 只读 |
与向 ProxyEndpoint 发出原始客户端请求相关的 HTTP 端口。 |
代理请求 |
client.received.end.time |
字符串 | 只读 |
代理在 ProxyEndpoint 完成从原始客户端接收请求的时间(以字符串形式表示)。例如:世界协调时间 (UTC) 2013 年 8 月 21 日星期三 19:16:47。 此时间值是字符串表示形式,有相应的 32 位时间戳数量表示形式。例如,世界协调时间 (UTC) 2013 年 8 月 21 日星期三 19:16:47 对应时间戳值 1377112607413。 |
代理请求 |
client.received.end.timestamp |
长 | 只读 |
指定代理在 ProxyEndpoint 完成从原始客户端接收请求的时间戳值。此值是一个 64 位(长)整数,其中包含从世界协调时间 (UTC) 1970 年 1 月 1 日午夜起到操作发生时所经过的毫秒数。 |
代理请求 |
client.received.start.time |
字符串 | 只读 |
代理在 ProxyEndpoint 开始从原始客户端接收请求的时间(以字符串形式表示)。例如:世界协调时间 (UTC) 2013 年 8 月 21 日星期三 19:16:47 此时间值是字符串表示形式,有相应的 32 位时间戳数量表示形式。例如,世界协调时间 (UTC) 2013 年 8 月 21 日星期三 19:16:47 对应时间戳值 1377112607413。 |
代理请求 |
client.received.start.timestamp |
长 | 只读 |
指定代理在 ProxyEndpoint 开始从原始客户端接收请求的时间戳值。此值是一个 64 位(长)整数,其中包含从世界协调时间 (UTC) 1970 年 1 月 1 日午夜起到操作发生时所经过的毫秒数。 |
代理请求 |
client.scheme |
字符串 | 只读 |
根据客户端应用用来发送请求消息的传输方式返回 HTTP 或 HTTPS。 |
代理请求 |
client.sent.end.time |
字符串 | 只读 |
代理完成从 ProxyEndpoint 向客户端发送响应的时间(以字符串形式表示)。例如:世界协调时间 (UTC) 2013 年 8 月 21 日星期三 19:16:47。 此值是字符串表示形式,有相应的 32 位 |
PostClientFlow |
client.sent.end.timestamp |
长 | 只读 | 指定 ProxyEndpoint 完成向原始客户端应用返回响应的时间戳值。此值是一个 64 位(长)整数,其中包含从世界协调时间 (UTC) 1970 年 1 月 1 日午夜起到操作发生时所经过的毫秒数。 | PostClientFlow |
client.sent.start.time |
字符串 | 只读 | ProxyEndpoint 开始向源客户端应用发送响应的时间(以字符串形式表示)。例如,世界协调时间 (UTC) 2013 年 8 月 21 日星期三 19:16:47。 此值是字符串表示形式,有相应的 32 位 |
PostClientFlow |
client.sent.start.timestamp |
长 | 只读 | 代理开始从 ProxyEndpoint 向客户端发送响应的时间。此值被表示为一个 64 位(长)整数,其中包含从世界协调时间 (UTC) 1970 年 1 月 1 日午夜起到操作发生时所经过的毫秒数。 | PostClientFlow |
client.ssl.enabled |
字符串 | 只读 |
如果为 TLS/SSL 配置了 ProxyEndpoint,则为 |
代理请求 |
client.state |
字符串 | 只读 |
客户端提供的 TLS/SSL 证书中显示的状态。 |
代理请求 |
current
包含有关当前 API 代理流的信息。
下表介绍了 current
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
current.flow.name |
字符串 | 只读 | 当前正在执行的流的名称(例如 PreFlow 、PostFlow 或条件流的名称)。 |
代理请求 |
current.flow.description |
字符串 | 只读 | 当前正在执行的流的说明。这与流的 XML 配置中 <Description> 元素的值相同。 |
代理请求 |
您可以在 Apigee 界面的 Trace 视图中查看这些属性。
environment
environment.name
属性的容器。
下表介绍了 environment
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
environment.name |
字符串 | 只读 | 在其中运行事务的环境名称。 | 代理请求 |
error
用来表示错误流中错误消息的上下文对象。
下表介绍了 error
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
error |
message |
读写 | message 类型错误,该错误是错误流中的上下文对象。 |
错误 |
error.content |
字符串 | 读写 | 错误的内容。 | 错误 |
error.message |
字符串 | 只读 |
与错误相关的消息,其值仅在执行错误流之前可用。 |
错误 |
error.status.code |
整数 | 只读 |
与错误相关的 HTTP 状态代码。例如 |
错误 |
error.reason.phrase |
字符串 | 只读 |
与错误相关的原因短语。例如: |
错误 |
error.transport.message |
TransportMessage | 只读 |
|
错误 |
error.state |
整数 | 只读 |
出现错误的流中的状态。 |
错误 |
error.header.header_name |
字符串 | 读写 |
获取或设置响应标头。 |
错误 |
fault
提供有关运行时错误来源、原因和详细信息的信息。当政策抛出错误时,Apigee 会设置这些变量,并且值特定于每个政策。如需了解 fault
变量的设置时间,请参阅关于政策错误。
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
fault.name |
字符串 | 只读 | 故障的名称,正如每个政策参考文档主题中都包含的运行时错误表中所述。在应用到 FaultRules 的条件中,此变量可能会很有用。 | 错误 |
fault.reason |
字符串 | 只读 | 故障的原因。例如,当 OASValidation 政策检测到入站请求未根据 OpenAPI 规范进行验证时,会将此变量设置为字符串来描述政策名称、规范名称和详细信息(说明请求为何不符合规范)。其他政策会将此变量设置为适合其故障的消息。 | 错误 |
fault.category |
字符串 | 只读 | 类别。例如,如果错误是在政策步骤中发生,则此变量可能会存储值“Step”。在应用到 FaultRules 的条件中,此变量可能会很有用。 | 错误 |
fault.subcategory |
字符串 | 只读 | 子类别。例如,如果 OASValidation 政策检测到请求未根据 OpenAPI 规范进行验证,则会将此变量设置为“OASValidationFailure”。在应用到 FaultRules 的条件中,此变量可能会很有用。 | 错误 |
graphql
使您可以在运行时访问 GraphQL 查询的结果。如需了解详情,请参阅 GraphQL 政策。
下表介绍了 graphql
变量的属性:
属性 | 类型 | 读写 | 说明 | |
---|---|---|---|---|
graphql |
复杂类型 | 只读/读写 | GraphQL 根查询。 | SCOPE |
graphql.fragment |
复杂类型 | 只读/读写 | 对此查询的默认片段的引用。 | SCOPE |
graphql.fragment.count |
整数 | 只读 | 此 GraqhQL 查询生成的片段数量。 | SCOPE |
graphql.fragment.INDEX.selectionSet.INDEX |
TYPE | 只读/读写 | 对指定索引处的选择集的引用。 | SCOPE |
graphql.fragment.INDEX.selectionSet.INDEX.name |
字符串 | 只读/读写 | 指定索引处的选择集的名称。 | SCOPE |
graphql.fragment.INDEX.selectionSet.count |
整数 | 只读 | 此片段中的选择集的数量。 | SCOPE |
graphql.fragment.INDEX.selectionSet.name |
字符串 | 只读/读写 | 片段中的默认选择集的名称。 | SCOPE |
graphql.operation |
复杂类型 | 只读/读写 | 对查询默认操作的引用。 您不能在操作级层设置配额,而应在环境级层进行设置。 |
SCOPE |
graphql.operation.name |
字符串 | 只读 | 查询的默认操作的名称。 | SCOPE |
graphql.operation.operationType |
枚举 | 只读 | 可以对此 API 代理执行的查询的默认操作类型。可能的值有 query 、mutation 或 all 。 |
SCOPE |
graphql.operation.selectionSet |
复杂类型 | 查询的默认操作的默认选择集。 | SCOPE | |
graphql.operation.selectionSet.count |
整数 | 只读 | 查询的默认操作中的选择集数量。 | SCOPE |
graphql.operation.selectionSet.name |
字符串 | 只读 | 查询默认操作的默认选择集的名称。 | SCOPE |
graphql.operation.selectionSet.INDEX |
整数 | 只读 | 对选择集列表中指定索引处的选择集的引用。 | SCOPE |
graphql.operation.selectionSet.INDEX.name |
字符串 | 只读 | 此操作的选择集列表中指定索引处的选择的名称。 | SCOPE |
graphql.operation.selectionSet.INDEX.[selectionSet] |
复杂类型 | 只读/读写 | 一个或多个额外选择集对象。 选择集可以递归方式访问。例如,在 | SCOPE |
graphql.operation.selectionSet.INDEX.directive |
复杂类型 | 对指定选择集中的默认指令的引用。 | SCOPE | |
graphql.operation.selectionSet.INDEX.directive.count |
复杂类型 | SCOPE | ||
graphql.operation.selectionSet.INDEX.directive.INDEX |
整数 | 只读 | 对指定索引处的指令的引用。 | SCOPE |
graphql.operation.selectionSet.INDEX.directive.INDEX.argument.INDEX |
整数 | 只读 | 对指定索引处的参数的引用。 | SCOPE |
graphql.operation.selectionSet.INDEX.directive.INDEX.argument.INDEX.name |
字符串 | 指定索引处参数的名称。 | SCOPE | |
graphql.operation.selectionSet.INDEX.directive.INDEX.argument.INDEX.value |
字符串 | 指定索引处参数的值。 | SCOPE | |
graphql.operation.selectionSet.INDEX.directive.name |
字符串 | SCOPE | ||
graphql.operation.variableDefinitions |
复杂类型 | 对查询默认操作的变量定义列表的引用。 | SCOPE | |
graphql.operation.variableDefinitions.count |
整数 | 查询默认操作的变量定义的数量。 | SCOPE | |
graphql.operation.variableDefinitions.INDEX |
整数 | 对指定索引处变量定义的引用。 | SCOPE | |
graphql.operation.variableDefinitions.INDEX.name |
字符串 | 指定索引处变量定义的名称。 | SCOPE | |
graphql.operation.variableDefinitions.INDEX.type |
指定索引处变量定义值的类型。 | SCOPE |
is
is.error
属性的容器。
下表介绍了 is
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
is.error |
布尔值 | 只读 |
错误标记。 |
代理请求 |
loadbalancing
提供有关 TargetEndpoint 的负载均衡状态的信息。
下表介绍了 loadbalancing
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
loadbalancing.failedservers |
字符串数组 | 只读 |
在 TargetEndpoint 进行负载均衡期间失败的 TargetServer 列表。 |
目标响应 |
loadbalancing.isfallback |
布尔值 | 只读 |
如果在 TargetEndpoint 进行负载均衡期间调用的 TargetServer 启用了回退功能,则为 |
目标响应 |
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.formparams.names.string |
字符串 | 只读 |
消息中所有表单参数的名称的英文逗号分隔列表。 |
代理请求 |
message.formstring |
字符串 | 只读 |
消息中表单字符串的值。 |
代理请求 |
message.header.header_name |
字符串 | 读写 |
获取或设置在请求中找到的特定标头的值。如果标头包含逗号,则在阅读时您只能接收截止到第一个逗号为止的文本片段。 例如,如果 如果您希望将整个标头作为字符串,请使用类似于 |
代理请求 |
message.header.header_name.N |
字符串 | 读写 |
(请求或响应)消息中第 N 个特定标头的值,具体取决于流的状态。Apigee 使用逗号分隔标头文本值。对于最左侧的值,索引从 1 开始。 例如,如果 |
代理请求 |
message.header.header_name. |
集合 | 只读 |
消息中指定 HTTP 标头名称的所有值。 |
代理请求 |
message.header.header_name. |
整数 | 只读 |
消息中指定 HTTP 标头名称的值的计数。 |
代理请求 |
message.header.header_name. |
字符串 | 只读 |
消息中特定标头的所有值,以单个字符串的形式表示。 例如,如果 |
代理请求 |
message.headers.count |
整数 | 只读 |
消息中所有 HTTP 标头的计数。 |
代理请求 |
message.headers.names |
集合 | 只读 |
消息中所有 HTTP 标头的值。 |
代理请求 |
message.headers.names.string |
字符串 | 只读 |
邮件中所有标头的名称的英文逗号分隔列表。 |
代理请求 |
message.path |
字符串 | 读写 |
网址中完整的请求消息路径,不包括任何查询参数。 |
代理请求 |
message.queryparam.param_name |
字符串 | 只读 |
返回指定的消息查询参数。 |
代理请求 |
message.queryparam.param_name.N |
字符串 | 读写 |
消息中第 N 个查询参数的值。例如,如果 例如,要为单个查询参数名称(例如
|
代理请求 |
message.queryparam.param_name. |
集合 | 只读 |
消息中特定查询参数的所有值,采用逗号分隔列表格式。 例如,如果查询字符串为 |
代理请求 |
message.queryparam.param_name. |
整数 | 只读 |
与从客户端应用发送到 ProxyEndpoint 的请求相关的指定查询参数的总计数。 |
代理请求 |
message.queryparams.count |
整数 | 只读 |
与从客户端应用发送到 ProxyEndpoint 的请求相关的所有查询参数的总计数。 |
代理请求 |
message.queryparams.names |
集合 | 只读 |
与从客户端应用发送到 ProxyEndpoint 的请求相关的所有查询参数列表。 |
代理请求 |
message.queryparams.names.string |
字符串 | 只读 |
消息中所有查询参数的名称的英文逗号分隔列表。 |
代理请求 |
message.querystring |
字符串 | 只读 |
包含与从客户端应用发送到 ProxyEndpoint 的请求相关的所有查询参数名称和值的字符串。 例如,对于请求 |
代理请求 |
message.status.code |
整数 | 只读 |
来自目标的响应消息的 HTTP 状态代码。 |
目标响应 |
message.transport.message |
TransportMessage | 只读 |
TransportMessage 类型的消息,是一个上下文对象。 |
代理请求 |
message.uri |
字符串 | 只读 |
包含查询参数的完整 URI 路径(位于网域网址后面)。 例如,对于请求 |
代理请求 |
message.verb |
字符串 | 只读 |
与请求相关的 HTTP 动词( |
代理请求 |
message.version |
字符串 | 读写 |
与从客户端应用发送到 ProxyEndpoint 的请求相关的 HTTP 版本。 |
代理请求 |
如需详细了解消息,请参阅消息模板函数参考文档。
messageid
容纳请求的全局唯一 ID 的容器。
下表介绍了 messageid
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
messageid |
字符串 | 只读 |
保存请求的全局唯一 ID,其中包括负载均衡器主机名。此 ID 允许在将负载均衡器收到的请求发送到消息处理器后对其进行跟踪。 此 ID 记录在 Apigee 错误日志中,用于将 |
代理请求 |
mint
提供获利相关信息的帮助程序变量。
下表介绍了 mint
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
mint.limitscheck.is_request_blocked |
布尔值 | 只读 |
指定 API 请求是否已被阻止的标记。如果 如果 API 代理已附加 MonetizationLimitsCheck 政策,则此流变量可用。请参阅在 API 代理中强制执行获利限制。 |
代理请求 |
mint.limitscheck.is_subscription_found |
布尔值 | 只读 |
指定开发者是否对 API 产品具有有效订阅的标记。如果开发者有订阅,则设置为 如果 API 代理已附加 MonetizationLimitsCheck 政策,则此流变量可用。请参阅在 API 代理中强制执行获利限制。 |
代理请求 |
mint.limitscheck.prepaid_developer_balance |
数字 | 只读 |
与费率方案的币种关联的开发者预付费账号电子钱包中的当前余额。 |
代理请求 |
mint.limitscheck.prepaid_developer_currency |
字符串 | 只读 |
|
代理请求 |
mint.limitscheck.purchased_product_name |
字符串 | 只读 |
关联 API 产品的名称。 如果 API 代理已附加 MonetizationLimitsCheck 政策,则此流变量可用。请参阅在 API 代理中强制执行获利限制。 |
代理请求 |
mint.limitscheck.status_message |
字符串 | 只读 |
有关执行 MonetizationLimitsCheck 政策的其他信息,用于调试用途。 如果 API 代理已附加 MonetizationLimitsCheck 政策,则此流变量可用。请参阅在 API 代理中强制执行获利限制。 |
代理请求 |
mint.mintng_consumption_pricing_rates |
字符串 | 只读 |
基于消耗的费用。 在创建费率方案时设置费用。 |
PostClientFlow |
mint.mintng_consumption_pricing_type |
字符串 | 只读 |
基于消耗的价格类型。例如: 在创建费率方案时设置基于消耗的费用。 |
PostClientFlow |
mint.mintng_currency |
字符串 | 只读 |
计算收益所用的币种。 此流变量的值为 |
DataCapture 政策 |
mint.mintng_dev_share |
数字 | 只读 |
要与开发者分享的收益。 创建费率方案时设置要与开发者分享的收益。 |
PostClientFlow |
mint.mintng_is_apiproduct_monetized |
布尔值 | 只读 |
指定 API 产品当前是否启用获利功能的标记(例如,是否正在采用有效的费率方案)。 此流变量由附加到 API 代理的 VerifyAPIKey 或 VerifyAccessToken 政策添加。请参阅添加身份验证政策。 |
代理请求 |
mint.mintng_price |
数字 | 只读 |
用于计算开发者分成的收益。 此流变量的值为 |
DataCapture 政策和 PostClientFlow |
mint.mintng_price_multiplier |
数字 | 只读 |
每事务费用需要与这一倍数(系数)相乘。 此流变量的值为 |
DataCapture 政策和 PostClientFlow |
mint.mintng_rate |
数字 | 只读 |
API 调用收取的费率。 此流变量显示每次 API 调用的基于用量的费用。在创建费率方案时设置基于用量的费用。如果您在 DataCapture 政策中配置了 |
PostClientFlow |
mint.mintng_rate_before_multipliers |
数字 | 只读 |
在未进行 如果 DataCapture 政策捕获 |
PostClientFlow |
mint.mintng_rate_plan_id |
字符串 | 只读 |
费率方案的 ID。 此流变量由附加到 API 代理的 VerifyAPIKey 或 VerifyAccessToken 政策添加。请参阅添加身份验证政策。 |
代理请求 |
mint.mintng_revenue_share_rates |
字符串 | 只读 |
收益分成率。 在创建费率方案时设置收益分成率。 |
PostClientFlow |
mint.mintng_revenue_share_type |
字符串 | 只读 |
收益分成类型。例如: 在创建费率方案时设置收益分成类型。 |
PostClientFlow |
mint.mintng_tx_success |
布尔值 | 只读 |
指定事务是否获利。 此流变量的值为 |
DataCapture 政策 |
mint.prepaid_updated_developer_usage |
数字 | 只读 |
预付费开发者的当前使用情况。 使用情况根据您的费率方案配置和 perUnitPriceMultiplier 获利变量的值计算。 |
PostClientFlow |
mint.rateplan_end_time_ms |
数字 | 只读 |
费率方案的到期时间(以从纪元算起的毫秒数为单位)。 此流变量由附加到 API 代理的 VerifyAPIKey 或 VerifyAccessToken 政策添加。请参阅添加身份验证政策。 |
代理请求 |
mint.rateplan_start_time_ms |
数字 | 只读 |
费率方案的激活时间(以从纪元算起的毫秒数为单位)。 此流变量由附加到 API 代理的 VerifyAPIKey 或 VerifyAccessToken 政策添加。请参阅添加身份验证政策。 |
代理请求 |
mint.status |
字符串 | 只读 |
已获利调用的状态。 仅在发生错误时填充。 |
PostClientFlow |
mint.status_code |
数字 | 只读 |
获利调用的 HTTP 状态代码。仅在发生错误时填充。 |
PostClientFlow |
mint.subscription_end_time_ms |
数字 | 只读 |
API 产品订阅的到期时间(以从纪元算起的毫秒数为单位)。 如果 API 代理已附加 MonetizationLimitsCheck 政策,则此流变量可用。请参阅在 API 代理中强制执行获利限制。 |
代理请求 |
mint.subscription_start_time_ms |
数字 | 只读 |
API 产品订阅的激活时间(以从纪元算起的毫秒数为单位)。 如果 API 代理已附加 MonetizationLimitsCheck 政策,则此流变量可用。请参阅在 API 代理中强制执行获利限制。 |
代理请求 |
mint.tx_success_result |
布尔值 | 只读 |
指示事务是否成功获利。
|
PostClientFlow |
详情请参阅以下内容:
organization
organization.name
属性的容器。
下表介绍了 organization
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
organization.name |
字符串 | 只读 |
组织名称。 |
代理请求 |
如需详细了解组织,请参阅了解组织。
proxy
API 代理配置。
下表介绍了 proxy
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
proxy.basepath |
字符串 | 只读 |
API 代理端点配置中基本路径的值。基本路径是网址中位于主机后面的最左侧的 URI 片段。条件流 URI 遵循基本路径。 假设您配置了一个基本路径为
如果您在 API 代理配置中定义了动态基本路径(如 |
代理请求 |
proxy.client.ip |
字符串 | 只读 |
入站调用的 |
代理请求 |
proxy.name |
字符串 | 只读 |
为 ProxyEndpoint 配置的名称属性。 |
代理请求 |
proxy.pathsuffix |
字符串 | 只读 |
从客户端发送并在 ProxyEndpoint 接收的网址中的路径后缀值。 基本路径是最左侧的路径组件,可唯一标识环境组中的 API 代理。假设您配置了一个基本路径为 |
代理请求 |
proxy.url |
字符串 | 只读 |
获取与 ProxyEndpoint 收到的代理请求相关的完整网址,包括存在的任何查询参数。 |
代理请求 |
如需详细了解如何使用 API 代理,请参阅了解 API 和 API 代理。
publishmessage
在 PublishMessage 政策执行时填充。
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
publishmessage.message.id | 字符串 | 只读 | 从 Pub/Sub 服务器返回 messageId(已发布消息的 ID)。 仅当发布请求成功时,Apigee 才会设置此流变量。 |
代理请求 |
ratelimit
执行 Quota 或 SpikeArrest 政策时填充。
下表介绍了 ratelimit
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
ratelimit.policy_name.allowed.count | 长 | 只读 | 返回允许的配额计数。 | PostClientFlow |
ratelimit.policy_name.used.count | 长 | 只读 | 返回配额间隔内使用的当前配额。 | PostClientFlow |
ratelimit.policy_name.available.count | 长 | 只读 | 返回配额间隔内的可用配额计数。 | PostClientFlow |
ratelimit.policy_name.exceed.count | 长 | 只读 | 在超出配额后返回 1。 | PostClientFlow |
ratelimit.policy_name.total.exceed.count | 长 | 只读 | 在超出配额后返回 1。 | PostClientFlow |
ratelimit.policy_name.expiry.time | 长 | 只读 |
返回以毫秒为单位的 UTC 时间,该时间决定了配额何时失效,以及新的配额间隔何时开始。 如果配额政策的类型为 |
PostClientFlow |
ratelimit.policy_name.identifier | 字符串 | 只读 | 返回附加到政策的(客户端)标识符引用 | PostClientFlow |
ratelimit.policy_name.class | 字符串 | 只读 | 返回与客户端标识符关联的类 | PostClientFlow |
ratelimit.policy_name.class.allowed.count | 长 | 只读 | 返回类中定义的允许配额计数 | PostClientFlow |
ratelimit.policy_name.class.used.count | 长 | 只读 | 返回类中使用的配额 | PostClientFlow |
ratelimit.policy_name.class.available.count | 长 | 只读 | 返回类中的可用配额计数 | PostClientFlow |
ratelimit.policy_name.class.exceed.count | 长 | 只读 | 返回超出当前配额间隔中类限制的请求计数 | PostClientFlow |
ratelimit.policy_name.class.total.exceed.count | 长 | 只读 | 返回超出所有配额间隔内类限制的请求总计数,因此它是所有配额间隔的 class.exceed.count 总和。 |
PostClientFlow |
ratelimit.policy_name.failed | 布尔值 | 只读 |
指明政策是否失败(true 或 false)。 |
PostClientFlow |
详情请参阅以下内容:
request
完整的请求,包括存在的任何载荷。
如需详细了解请求数据,请参阅如何将请求数据传递给后端服务器?
下表介绍了 request
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
request |
message |
只读 |
完整的请求,包括存在的任何载荷。 |
代理请求 |
request.content |
字符串 | 读写 |
获取或设置请求消息的载荷。 |
代理请求 |
request.formparam.param_name |
字符串 | 读写 |
获取或设置从客户端应用发送的请求中指定表单参数的值。 |
代理请求 |
request.formparam.param_name. |
集合 | 只读 |
请求中特定表单参数的所有值,采用逗号分隔列表格式。 例如,如果载荷为 |
代理请求 |
request.formparam.param_name. |
整数 | 只读 |
与请求相关的指定表单参数的所有值计数。 |
代理请求 |
request.formparam.param_name.N |
字符串 | 读写 |
消息中第 N 个特定表单参数的值。例如,如果表单字符串是 |
代理请求 |
request.formparams.count |
整数 | 只读 |
与从客户端应用发送的请求相关的所有参数的计数。 |
代理请求 |
request.formparams.names |
集合 | 只读 |
与请求关联的所有参数名称的列表。 |
代理请求 |
request.formparams.names.string |
字符串 | 只读 |
与请求相关的所有表单参数名称的英文逗号分隔列表。 |
代理请求 |
request.formstring |
字符串 | 只读 |
从客户端应用发出的请求中的完整 例如 |
代理请求 |
request.grpc.rpc.name |
字符串 | 只读 |
仅在使用 gRPC 目标服务器时适用。RPC 名称。如需了解 gRPC 代理,请参阅创建 gRPC API 代理。 |
代理请求 |
request.grpc.service.name |
字符串 | 只读 |
仅在使用 gRPC 目标服务器时适用。gRPC 状态服务名称。如需了解 gRPC 代理,请参阅创建 gRPC API 代理。 |
代理请求 |
request.header.header_name |
字符串 | 读写 |
获取或设置在请求中找到的特定标头的值。如果标头包含逗号,则在阅读时您只能接收截止到第一个逗号为止的文本片段。 例如,如果 如果您希望将整个标头作为字符串,请使用类似于 |
代理请求 |
request.header.header_name.N |
字符串 | 读写 |
请求中第 N 个特定标头值的值。Apigee 使用逗号分隔标头文本值。对于最左侧的值,索引从 1 开始。 例如,如果 |
代理请求 |
request.header.header_name. |
集合 | 只读 |
请求中特定标头的所有值。 |
代理请求 |
request.header.header_name. |
整数 | 只读 |
请求中特定标头的所有值的计数。 |
代理请求 |
request.header.header_name. |
字符串 | 只读 |
请求中特定标头的所有值,以单个字符串的形式。 例如,如果 |
代理请求 |
request.headers.count |
整数 | 只读 |
请求中的所有标头的计数。 |
代理请求 |
request.headers.names |
集合 | 只读 |
请求中所有标头的名称。 |
代理请求 |
request.headers.names.string |
字符串 | 只读 |
请求中所有标头的名称的英文逗号分隔列表。 |
代理请求 |
request.path |
字符串 | 只读 |
指向后端服务的非代理资源路径(不包括主机),不包括查询参数。 例如,如果后端服务的 URI 为 |
代理请求 |
request.queryparam.param_name |
字符串 | 读写 |
在请求中找到的特定查询参数的值。 |
代理请求 |
request.queryparam.param_name.N |
字符串 | 读写 |
请求中第 N 个查询参数的值。 例如,如果 例如,要为单个查询参数名称(例如
|
代理请求 |
request.queryparam.param_name. |
集合 | 只读 |
请求中特定查询参数的所有值,采用逗号分隔列表格式。 例如,如果 |
代理请求 |
request.queryparam.param_name. |
整数 | 只读 |
请求中特定查询参数的所有值的计数。 |
代理请求 |
request.queryparams.count |
整数 | 只读 |
请求中所有查询参数的计数。 |
代理请求 |
request.queryparams.names |
集合 | 只读 |
请求中所有查询参数的名称。 |
代理请求 |
request.queryparams.names.string |
字符串 | 只读 |
请求中所有查询参数的名称的英文逗号分隔列表。 |
代理请求 |
request.querystring |
字符串 | 只读 |
从客户端应用发出的请求中的完整查询参数列表。 例如,如果请求为 |
代理请求 |
request.transportid |
字符串 | 只读 |
TransportMessage 类型请求的 ID 为上下文型。 |
代理请求 |
request.transport.message |
Transport-Message | 只读 |
TransportMessage 类型的请求为上下文型。 |
代理请求 |
request.uri |
字符串 | 只读 |
在 API 代理中,ProxyEndpoint 中的代理
指向
在请求中, 在响应中, 这种区别是因为原始请求进入了代理,但代理随后向目标服务发出另一个请求。 假设对我们的示例代理进行了以下调用,该代理的基本路径为
代理调用了:
将
|
代理请求(响应不同) |
request.url |
字符串 | 只读 |
向目标端点发出的请求的完整网址,包括查询字符串参数,但不包含端口号(如果已指定)。 例如,如果您调用示例代理
|
目标响应 |
request.verb |
字符串 | 只读 |
用于请求的 HTTP 动词。例如, |
代理请求 |
request.version |
字符串 | 只读 |
请求的 HTTP 版本。例如 |
代理请求 |
response
完整的响应,包括存在的任何载荷。
下表介绍了 response
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
response |
message |
读写 |
目标返回的完整响应消息。 |
目标响应 |
response.content |
字符串 | 读写 |
目标返回的响应消息的载荷内容。 |
目标响应 |
response.header.header_name |
字符串 | 读写 |
获取或设置响应中指定 HTTP 标头的值。 如果标头文本包含逗号,Apigee 将推断多个值。在这种情况下, 例如,如果 如果您希望将整个标头作为字符串,请使用类似于 |
目标响应 |
response.header.header_name. |
集合 | 只读 |
响应中指定 HTTP 标头的所有值。 |
目标响应 |
response.header.header_name. |
整数 | 只读 |
响应中指定 HTTP 标头的所有值的计数。 |
目标响应 |
response.header.header_name. |
字符串 | 只读 |
响应中特定标头的所有值,以单个字符串的形式表示。 例如,如果 |
目标响应 |
response.header.header_name.N |
字符串 | 读写 |
响应中第 N 个特定标头值的值。Apigee 使用逗号分隔标头文本值。对于最左侧的值,索引从 1 开始。 例如,如果 |
目标响应 |
response.headers.count |
整数 | 只读 |
响应中所有标头的计数。 |
目标响应 |
response.headers.names |
集合 | 只读 |
响应中所有标头的名称。 |
目标响应 |
response.headers.names.string |
字符串 | 只读 |
响应中所有标头的名称的英文逗号分隔列表。 |
目标响应 |
response.reason.phrase |
字符串 | 读写 |
特定请求的响应原因短语。 |
目标响应 |
response.status.code |
整数 | 读写 |
为请求返回的响应代码。您可以使用此变量替换存储在 |
目标响应 |
response.transport.message |
字符串 | 只读 |
TransportMessage 类型响应,是一个上下文对象。 |
目标响应 |
route
指定 <RouteRule>
和 TargetEndpoint 的名称。
下表介绍了 route
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
route.name |
字符串 | 只读 |
在 ProxyEndpoint 中执行的 |
目标请求 |
route.target |
字符串 | 只读 |
已执行的 TargetEndpoint 的名称。例如 |
目标请求 |
servicecallout
描述 ServiceCallout 政策的 TargetEndpoint。
下表介绍了 servicecallout
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
servicecallout.policy_name.expectedcn |
字符串 | 读写 |
ServiceCallout 政策中提到的 TargetEndpoint 的预期通用名称。仅当 TargetEndpoint 指的是 TLS/SSL 端点时,该属性才有意义。 |
代理请求 |
servicecallout.policy_name.target.url |
字符串 | 读写 |
特定 ServiceCallout 政策的 TargetEndpoint 网址。 |
代理请求 |
servicecallout.requesturi |
字符串 | 读写 |
ServiceCallout 政策的 TargetEndpoint URI。URI 是不包含协议和网域规范的 TargetEndpoint 网址。 |
代理请求 |
system
指定系统的 IP 地址,以及有关代理的详细信息。
下表介绍了 system
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
system.interface.interface_name |
字符串 | 只读 |
系统的 IP 地址。 |
代理请求 |
system.pod.name |
字符串 | 只读 |
代理在其中运行的 pod 的名称。 |
代理请求 |
system.region.name |
字符串 | 只读 |
代理在其中运行的数据中心区域的名称。 |
代理请求 |
system.time |
字符串 | 只读 |
读取此变量的时间。例如,格林尼治标准时间 (GMT) 2013 年 8 月 21 日星期三 19:16:47。 此值是对应的 |
代理请求 |
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 |
长 | 只读 |
64 位(长)整数,表示此变量被读取的时间。该值是从世界协调时间 (UTC) 1970 年 1 月 1 日午夜起到操作发生时所经过的毫秒数。例如 |
代理请求 |
system.uuid |
字符串 | 只读 |
处理代理的消息处理器的 UUID。 |
代理请求 |
target
描述请求的目标。
下表介绍了 target
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
target.basepath |
字符串 | 只读 |
已在代理的 TargetEndpoint 中作出定义的指向目标服务的资源路径(不包括网域),不包括查询参数。 例如,假设 API 代理调用以下目标:
在此示例中, 如果目标为:
|
目标请求 |
target.copy.pathsuffix |
布尔值 | 读写 |
该属性为 |
目标请求 |
target.copy.queryparams |
布尔值 | 读写 |
该属性为 |
目标请求 |
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 完成从目标接收响应的时间(以字符串形式表示)。例如,世界协调时间 (UTC) 2013 年 8 月 21 日星期三 19:16:47。 此时间值是字符串表示形式,有相应的 32 位时间戳数量表示形式。例如,世界协调时间 (UTC) 2013 年 8 月 21 日星期三 19:16:47 对应时间戳值 1377112607413。 |
目标响应 |
target.received.end. |
长 | 只读 |
指定 TargetEndpoint 完成从目标接收响应的时间戳值。例如 |
目标响应 |
target.received.start.time |
字符串 | 只读 |
TargetEndpoint 开始从目标接收响应的时间(以字符串形式表示)。例如,世界协调时间 (UTC) 2013 年 8 月 21 日星期三 19:16:47。 此时间值是字符串表示形式,有相应的 32 位时间戳数量表示形式。例如,世界协调时间 (UTC) 2013 年 8 月 21 日星期三 19:16:47 对应时间戳值 1377112607413。 |
目标响应 |
target.received.start. |
长 | 只读 |
指定 TargetEndpoint 开始从目标接收响应的时间戳值。例如 |
目标响应 |
target.scheme |
字符串 | 只读 |
范围开始:目标响应 根据请求消息返回 http 或 https。 |
目标请求 |
target.sent.end.time |
字符串 | 只读 |
代理停止向 TargetEndpoint 指定网址发送请求的时间(以字符串形式表示)。例如,世界协调时间 (UTC) 2013 年 8 月 21 日星期三 19:16:47。 此时间值是字符串表示形式,有相应的 32 位时间戳数量表示形式。例如,世界协调时间 (UTC) 2013 年 8 月 21 日星期三 19:16:47 对应时间戳值 1377112607413。 |
目标请求 |
target.sent.end.timestamp |
长 | 只读 |
指定代理停止向 TargetEndpoint 指定网址发送请求的时间戳值。例如 1377112607413。此值是一个 64 位(长)整数,其中包含从世界协调时间 (UTC) 1970 年 1 月 1 日午夜起到操作发生时所经过的毫秒数。 |
目标请求 |
target.sent.start.time |
字符串 | 只读 |
代理开始向 TargetEndpoint 指定网址发送请求的时间(以字符串形式表示)。例如,世界协调时间 (UTC) 2013 年 8 月 21 日星期三 19:16:47。 此时间值是字符串表示形式,有相应的 32 位时间戳数量表示形式。例如,世界协调时间 (UTC) 2013 年 8 月 21 日星期三 19:16:47 对应时间戳值 1377112607413。 |
目标请求 |
target.sent.start.timestamp |
长 | 只读 |
指定代理开始向 TargetEndpoint 指定网址发送请求的时间戳值。例如 |
目标请求 |
target.ssl.enabled |
布尔值 | 只读 |
TargetEndpoint 是否在 TLS/SSL 上运行。 |
代理请求 |
target.state |
字符串 | 只读 |
目标服务器提供的 TLS/SSL 证书中显示的状态。 |
目标响应 |
target.url |
字符串 | 读写 |
在 TargetEndpoint XML 文件或动态目标网址中配置的网址(前提是在消息流过程中已设置 |
目标请求 |
variable
variable.expectedcn
属性的容器。
下表介绍了 variable
变量的属性:
属性 | 类型 | 读写 | 说明 | 范围开始 |
---|---|---|---|---|
variable.expectedcn |
字符串 | 读写 |
为通用名称公开的变量(如果变量在 TLS/SSL 上运行)。 |
代理请求 |
如需详细了解如何使用 TLS,请参阅用于配置 TLS 的选项。