本页面适用于 Apigee 和 Apigee Hybrid。
  
    查看 Apigee Edge 文档。
  
  
       
 
  
本部分介绍了以下常见 Apigee 流变量的参考信息:
后续部分介绍了各项变量。
本文档不包含特定于单个政策的流变量。这些流变量的文档与引入它们的政策一起提供。例如,responsecache 流变量在 ResponseCache 政策中进行了说明。如需查看可用政策的列表,请参阅
  政策参考概览。
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.resolved.ip | 字符串 | 只读 | 已解析的客户端 IP 地址。该值可以通过已配置的客户端 IP 解析设置来确定,也可以通过默认算法来确定(如果未指定客户端 IP 解析设置)。如需了解相关信息,请参阅客户端 IP 解析。 | 代理请求 | 
| 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.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 根查询。 | 范围 | 
| graphql.fragment | 复杂类型 | 只读/读写 | 对此查询的默认片段的引用。 | 范围 | 
| graphql.fragment.count | 整数 | 只读 | 此 GraqhQL 查询生成的片段数量。 | 范围 | 
| graphql.fragment.INDEX.selectionSet.INDEX | 类型 | 只读/读写 | 对指定索引处的选择集的引用。 | 范围 | 
| graphql.fragment.INDEX.selectionSet.INDEX.name | 字符串 | 只读/读写 | 指定索引处的选择集的名称。 | 范围 | 
| graphql.fragment.INDEX.selectionSet.count | 整数 | 只读 | 此片段中的选择集的数量。 | 范围 | 
| graphql.fragment.INDEX.selectionSet.name | 字符串 | 只读/读写 | 片段中的默认选择集的名称。 | 范围 | 
| graphql.operation | 复杂类型 | 只读/读写 | 对查询默认操作的引用。 您不能在操作级层设置配额,而应在环境级层进行设置。 | 范围 | 
| graphql.operation.name | 字符串 | 只读 | 查询的默认操作的名称。 | 范围 | 
| graphql.operation.operationType | 枚举 | 只读 | 可以对此 API 代理执行的查询的默认操作类型。可能的值有 query、mutation或all。 | 范围 | 
| graphql.operation.selectionSet | 复杂类型 | 查询的默认操作的默认选择集。 | 范围 | |
| graphql.operation.selectionSet.count | 整数 | 只读 | 查询的默认操作中的选择集数量。 | 范围 | 
| graphql.operation.selectionSet.name | 字符串 | 只读 | 查询默认操作的默认选择集的名称。 | 范围 | 
| graphql.operation.selectionSet.INDEX | 整数 | 只读 | 对选择集列表中指定索引处的选择集的引用。 | 范围 | 
| graphql.operation.selectionSet.INDEX.name | 字符串 | 只读 | 此操作的选择集列表中指定索引处的选择的名称。 | 范围 | 
| graphql.operation.selectionSet.INDEX.[selectionSet] | 复杂类型 | 只读/读写 | 一个或多个额外选择集对象。 选择集可以递归方式访问。例如,在  | 范围 | 
| graphql.operation.selectionSet.INDEX.directive | 复杂类型 | 对指定选择集中的默认指令的引用。 | 范围 | |
| graphql.operation.selectionSet.INDEX.directive.count | 复杂类型 | 范围 | ||
| graphql.operation.selectionSet.INDEX.directive.INDEX | 整数 | 只读 | 对指定索引处的指令的引用。 | 范围 | 
| graphql.operation.selectionSet.INDEX.directive.INDEX.argument.INDEX | 整数 | 只读 | 对指定索引处的参数的引用。 | 范围 | 
| graphql.operation.selectionSet.INDEX.directive.INDEX.argument.INDEX.name | 字符串 | 指定索引处参数的名称。 | 范围 | |
| graphql.operation.selectionSet.INDEX.directive.INDEX.argument.INDEX.value | 字符串 | 指定索引处参数的值。 | 范围 | |
| graphql.operation.selectionSet.INDEX.directive.name | 字符串 | 范围 | ||
| graphql.operation.variableDefinitions | 复杂类型 | 对查询默认操作的变量定义列表的引用。 | 范围 | |
| graphql.operation.variableDefinitions.count | 整数 | 查询默认操作的变量定义的数量。 | 范围 | |
| graphql.operation.variableDefinitions.INDEX | 整数 | 对指定索引处变量定义的引用。 | 范围 | |
| graphql.operation.variableDefinitions.INDEX.name | 字符串 | 指定索引处变量定义的名称。 | 范围 | |
| graphql.operation.variableDefinitions.INDEX.type | 指定索引处变量定义值的类型。 | 范围 | 
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.content.as.base64 | 字符串 | 只读 | 请求、响应或错误消息的 Base64 编码载荷内容。 | 代理请求 | 
| message.content.as.url.safe.base64 | 字符串 | 只读 | 请求、响应或错误消息的可在网址中安全使用的 base64 编码载荷内容。 | 代理请求 | 
| 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 政策,则此流变量可用。请参阅 MonetizationLimitsChecks 流变量。 | 代理请求 | 
| mint.limitscheck.is_subscription_found | 布尔值 | 只读 | 指定开发者是否对 API 产品具有有效订阅的标记。如果开发者有订阅,则设置为  如果 API 代理已附加 MonetizationLimitsCheck 政策,则此流变量可用。请参阅 MonetizationLimitsChecks 流变量。 | 代理请求 | 
| mint.limitscheck.prepaid_developer_balance | 数字 | 只读 | 与费率方案的币种关联的开发者预付费账号电子钱包中的当前余额。 | 代理请求 | 
| mint.limitscheck.prepaid_developer_currency | 字符串 | 只读 | 
 | 代理请求 | 
| mint.limitscheck.purchased_product_name | 字符串 | 只读 | 关联 API 产品的名称。 如果 API 代理已附加 MonetizationLimitsCheck 政策,则此流变量可用。请参阅 MonetizationLimitsChecks 流变量。 | 代理请求 | 
| mint.limitscheck.status_message | 字符串 | 只读 | 有关执行 MonetizationLimitsCheck 政策的其他信息,用于调试用途。 如果 API 代理已附加 MonetizationLimitsCheck 政策,则此流变量可用。请参阅 MonetizationLimitsChecks 流变量。 | 代理请求 | 
| 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 政策,则此流变量可用。请参阅 MonetizationLimitsChecks 流变量。 | 代理请求 | 
| mint.subscription_start_time_ms | 数字 | 只读 | API 产品订阅的激活时间(以从纪元算起的毫秒数为单位)。 如果 API 代理已附加 MonetizationLimitsCheck 政策,则此流变量可用。请参阅 MonetizationLimitsChecks 流变量。 | 代理请求 | 
| 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.content.as.base64 | 字符串 | 只读 | 请求消息的 Base64 编码载荷内容。 | 代理请求 | 
| request.content.as.url.safe.base64 | 字符串 | 只读 | 请求消息的可在网址中安全使用的 base64 编码载荷内容。 | 代理请求 | 
| 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.content.as.base64 | 字符串 | 只读 | 响应消息的 Base64 编码载荷内容。 | 目标响应 | 
| response.content.as.url.safe.base64 | 字符串 | 只读 | 响应消息的可在网址中安全使用的 base64 编码载荷内容。 | 目标响应 | 
| response.event.current.content | 字符串 | 读写 | 在 EventFlow 流式响应中返回的内容。如需了解详情,请参阅流式传输服务器发送的事件。 | EventFlow 响应 | 
| response.event.current.count | 整数 | 读取 | 以增量方式统计发送的响应事件数量。此值会针对收到的每个事件进行更新。 如需了解详情,请参阅流式传输服务器发送的事件。. | EventFlow 响应 | 
| 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.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.header.host | 字符串 | 读写 | Apigee 用于为发往目标的出站请求设置  | 目标请求 | 
| 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 的选项。