为 WebSocket API 配置日志记录 - Amazon API Gateway
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

为 WebSocket API 配置日志记录

您可以启用日志记录以将日志写入 CloudWatch Logs。您可以使用日志记录变量来自定义日志的内容。

有关如何设置 CloudWatch 日志记录的说明,请参阅使用 API Gateway 控制台设置 CloudWatch API 日志记录

当您指定 Log Format (日志格式) 时,您可以选择要记录的上下文变量。支持以下变量。

参数 说明
$context.connectionId

连接的唯一 ID,可用于对客户端进行回调。

$context.connectedAt

Epoch 格式的连接时间。

$context.domainName

WebSocket API 的域名。这可用于对客户端进行回调(而不是硬编码值)。

$context.eventType

事件类型:CONNECTMESSAGEDISCONNECT

$context.messageId

消息的唯一服务器端 ID。仅当 $context.eventTypeMESSAGE 时才可用。

$context.routeKey

选定的路由键。

$context.requestId

$context.extendedRequestId 相同。

$context.extendedRequestId 为 API 调用自动生成的 ID,其中包含用于调试/故障排除的更有用的信息。
$context.apiId

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

$context.authorizer.principalId

与由客户端发送的令牌相关联的委托人用户标识,从 API Gateway Lambda 授权方 Lambda 函数返回。(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.error.message

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

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

错误响应类型。

$context.error.validationErrorString

包含详细验证错误消息的字符串。

$context.identity.accountId

与请求关联的 AWS 账户 ID。

$context.identity.apiKey

API 所有者密钥与启用密钥的 API 请求关联。

$context.identity.apiKeyId API 密钥 ID 与启用密钥的 API 请求关联
$context.identity.caller

发出请求的调用方的委托人标识符。

$context.identity.cognitoAuthenticationProvider

发出请求的调用方使用的 Amazon Cognito 身份验证提供商。只有在使用 Amazon Cognito 凭证签署请求时才可用。

有关与此变量以及其他 Amazon Cognito $context 变量相关的信息,请参阅 Amazon Cognito 开发人员指南中的使用联合身份

$context.identity.sourceIp

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

$context.identity.user

发出请求的用户的委托人标识符。

$context.identity.userAgent

API 调用方的用户代理。

$context.identity.userArn

身份验证后标识的有效用户的 Amazon 资源名称 (ARN)。

$context.integrationLatency 集成延迟(毫秒),仅可用于访问日志记录。
$context.requestTime CLF 格式的请求时间 (dd/MMM/yyyy:HH:mm:ss +-hhmm)。
$context.requestTimeEpoch Epoch 格式的请求时间。
$context.stage

API 调用的部署阶段(例如测试或生产)。

$context.status

响应状态。