自定义 HTTP API 访问日志 - Amazon API Gateway
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

自定义 HTTP API 访问日志

您可以使用以下变量自定义 HTTP API 访问日志。要了解有关 HTTP API 的访问日志的更多信息,请参阅 配置 HTTP API 的日志记录

参数 说明
$context.accountId

API 拥有者的 AWS 账户 ID。

$context.apiId

API Gateway 分配给您的 API 的标识符。

$context.authorizer.claims.property

成功对方法调用方进行身份验证后从 JSON Web 令牌 (JWT) 返回的声明的属性。有关更多信息,请参阅 使用 JWT 授权方控制对 HTTP API 的访问

注意

调用 $context.authorizer.claims 将返回 null。

$context.authorizer.error 从授权方返回的错误消息。
$context.authorizer.latency 授权方延迟(以毫秒为单位)。
$context.authorizer.principalId

Lambda 授权方返回的委托人用户标识。

$context.authorizer.property

从 API Gateway Lambda 授权方函数返回的 context 映射的指定键/值对的值。例如,如果授权方返回以下 context 映射:

"context" : { "key": "value", "numKey": 1, "boolKey": true }

调用 $context.authorizer.key 将返回 "value" 字符串,调用 $context.authorizer.numKey 将返回 1,调用 $context.authorizer.boolKey 将返回 true

$context.authorizer.status 从授权方返回的状态代码。
$context.awsEndpointRequestId

x-amz-request-idx-amzn-requestId 标头中 AWS 终端节点的请求 ID。

$context.awsEndpointRequestId2

x-amz-id-2 标头中 AWS 终端节点的请求 ID。

$context.dataProcessed 处理的数据量(以字节为单位)。
$context.domainName

用于调用 API 的完整域名。这应与传入的 Host 标头相同。

$context.domainPrefix

$context.domainName 的第一个标签。此标签通常用作调用方/客户标识符。

$context.error.message

包含 API Gateway 错误消息的字符串。

$context.error.messageString $context.error.message 的带引号的值,即 "$context.error.message"
$context.error.responseType

一种 GatewayResponse 类型。有关更多信息,请参阅 使用 CloudWatch 指标监控 WebSocket API 执行设置网关响应以自定义错误响应

$context.extendedRequestId API Gateway 分配给 API 请求的扩展 ID,其中包含用于调试/故障排除的更多有用信息。
$context.httpMethod

所用的 HTTP 方法。有效值包括:DELETEGETHEADOPTIONSPATCHPOSTPUT

$context.identity.accountId

与请求关联的 AWS 账户 ID。对于使用 IAM 授权的路由支持此项。

$context.identity.caller

发出请求的调用方的委托人标识符。对于使用 IAM 授权的路由支持此项。

$context.identity.cognitoAuthenticationProvider

发出请求的调用方使用的 Amazon Cognito 身份验证提供商的逗号分隔列表。仅当使用 Amazon Cognito 凭证对请求签名时才可用。

有关更多信息,请参阅 Amazon Cognito 开发人员指南 中的使用联合身份

$context.identity.cognitoAuthenticationType

发出请求的调用方的 Amazon Cognito 身份验证类型。仅当使用 Amazon Cognito 凭证对请求签名时才可用。

$context.identity.cognitoIdentityId

发出请求的调用方的 Amazon Cognito 身份 ID。仅当使用 Amazon Cognito 凭证对请求签名时才可用。

$context.identity.cognitoIdentityPoolId

发出请求的调用方的 Amazon Cognito 身份池 ID。仅当使用 Amazon Cognito 凭证对请求签名时才可用。

$context.identity.principalOrgId

AWS 组织 ID。对于使用 IAM 授权的路由支持此项。

$context.identity.clientCert.clientCertPem

客户端在双向 TLS 身份验证过程中提供的 PEM 编码的客户端证书。当客户端使用已启用双向 TLS 的自定义域名访问 API 时提供。

$context.identity.clientCert.subjectDN

客户端提供的证书的主题的可分辨名称。当客户端使用已启用双向 TLS 的自定义域名访问 API 时提供。

$context.identity.clientCert.issuerDN

客户端提供的证书的颁发者的可分辨名称。当客户端使用已启用双向 TLS 的自定义域名访问 API 时提供。

$context.identity.clientCert.serialNumber

证书的序列号。当客户端使用已启用双向 TLS 的自定义域名访问 API 时提供。

$context.identity.clientCert.validity.notBefore

证书无效之前的日期。当客户端使用已启用双向 TLS 的自定义域名访问 API 时提供。

$context.identity.clientCert.validity.notAfter

证书无效后的日期。当客户端使用已启用双向 TLS 的自定义域名访问 API 时提供。

$context.identity.sourceIp

向 API Gateway 发出请求的 TCP 连接的源 IP 地址。

警告

如果有任何机会可以伪造 X-Forwarded-For 标头,则不应信任此值。

$context.identity.user

发出请求的用户的委托人标识符。对于使用 IAM 授权的路由支持此项。

$context.identity.userAgent

API 调用方的 User-Agent 标头。

$context.identity.userArn

身份验证后标识的有效用户的 Amazon 资源名称 (ARN)。对于使用 IAM 授权的路由支持此项。有关更多信息,请参阅https://docs.amazonaws.cn/IAM/latest/UserGuide/id_users.html

$context.integration.error 从集成返回的错误消息。等效于 $context.integrationErrorMessage
$context.integration.integrationStatus 对于 Lambda 代理集成,从 AWS Lambda(而不是从后端 Lambda 函数代码)返回的状态代码。
$context.integration.latency 集成延迟(毫秒)。等效于 $context.integrationLatency
$context.integration.requestId AWS 终端节点的请求 ID。等效于 $context.awsEndpointRequestId
$context.integration.status 从集成返回的状态代码。对于 Lambda 代理集成,这是 Lambda 函数代码返回的状态代码。等效于 $context.integrationStatus
$context.integrationErrorMessage

包含集成错误消息的字符串。

$context.integrationLatency 集成延迟(毫秒)。
$context.integrationStatus 对于 Lambda 代理集成,此参数表示从 AWS Lambda(而不是从后端 Lambda 函数)返回的状态代码。
$context.path 请求路径。例如:/{stage}/root/child
$context.protocol 请求的协议,例如,HTTP/1.1
$context.requestId

API Gateway 分配给 API 请求的 ID。

$context.requestTime CLF 格式的请求时间 (dd/MMM/yyyy:HH:mm:ss +-hhmm)。
$context.requestTimeEpoch Epoch 格式的请求时间。
$context.responseLatency 响应延迟(毫秒)。
$context.responseLength 响应负载长度。
$context.routeKey

API 请求的路由密钥,例如 /pets

$context.stage

API 请求的部署阶段(例如,betaprod)。

$context.status 方法响应状态。