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

配置 WebSocket API 的日志记录

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

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

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

参数 说明
$context.apiId

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

$context.authorize.error 授权错误消息。
$context.authorize.latency 授权延迟时间(以毫秒为单位)。
$context.authorize.status 从授权尝试返回的状态代码。
$context.authorizer.error 从授权方返回的错误消息。
$context.authorizer.integrationLatency Lambda 授权方延迟(以毫秒为单位)。
$context.authorizer.integrationStatus 从 Lambda 授权方返回的状态代码。
$context.authorizer.latency 授权方延迟(以毫秒为单位)。
$context.authorizer.requestId Amazon 终端节点的请求 ID。
$context.authorizer.status 从授权方返回的状态代码。
$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.authenticate.error 从身份验证尝试返回的错误消息。
$context.authenticate.latency 身份验证延迟时间(以毫秒为单位)。
$context.authenticate.status 从身份验证尝试返回的状态代码。
$context.connectedAt

Epoch 格式的连接时间。

$context.connectionId

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

$context.domainName

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

$context.error.message

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

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

错误响应类型。

$context.error.validationErrorString

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

$context.eventType

事件类型:CONNECTMESSAGEDISCONNECT

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

与请求关联的 Amazon 账户 ID。

$context.identity.apiKey

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

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

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

$context.identity.cognitoAuthenticationProvider

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

例如,对于 Amazon Cognito 身份池中的身份,cognito-idp. region.amazonaws.com/user_pool_id,cognito-idp.region.amazonaws.com/user_pool_id:CognitoSignIn:token subject claim

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

$context.identity.cognitoAuthenticationType

发出请求的调用方的 Amazon Cognito 身份验证类型。仅当使用 Amazon Cognito 凭证对请求签名时才可用。可能的值包括经过身份验证的身份的 authenticated 和未经身份验证的身份的 unauthenticated

$context.identity.cognitoIdentityId

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

$context.identity.cognitoIdentityPoolId

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

$context.identity.principalOrgId

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

$context.identity.sourceIp

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

$context.identity.user

将获得资源访问权限授权的用户的委托人标识符。对于使用 IAM 授权的路由支持此项。

$context.identity.userAgent

API 调用方的用户代理。

$context.identity.userArn

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

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

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

$context.requestId

$context.extendedRequestId 相同。

$context.requestTime CLF 格式的请求时间 (dd/MMM/yyyy:HH:mm:ss +-hhmm)。
$context.requestTimeEpoch Epoch 格式的请求时间,以毫秒为单位。
$context.routeKey

选定的路由键。

$context.stage

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

$context.status

响应状态。

$context.waf.error 从 返回的错误消息Amazon WAF
$context.waf.latency Amazon WAF 延迟时间(以毫秒为单位)
$context.waf.status 从 返回的状态代码Amazon WAF