监控 CloudFront Functions - Amazon CloudFront
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

监控 CloudFront Functions

CloudFront Functions 将操作指标发送到 Amazon CloudWatch,以便您可以监控自己的函数。查看这些指标可帮助您解决、跟踪和调试问题。

您可以使用 Amazon CloudWatch Logs 获取函数日志(console.log() 语句)。

除了函数日志外,CloudFront 标准日志(访问日志)CloudFront 实时日志中的每个请求的日志条目包含运行函数时发生的任何错误的相关信息。

注意

CloudFront Functions 仅为响应生产请求和响应而运行的 LIVE 阶段中的函数向 CloudWatch 发送指标和日志。测试函数时,CloudFront 不会向 CloudWatch 发送任何指标或日志。测试输出包含有关错误、计算利用率和函数日志(console.log() 语句)的信息,但这些信息不会发送到 CloudWatch。

主题

Metrics

CloudFront Functions 向 CloudWatch 发布以下四项指标:

  • 调用数 (FunctionInvocations) – 给定时间内开始(调用)函数的次数。

  • 验证错误数 (FunctionValidationErrors) – 函数在给定时间段内产生的验证错误数。当函数成功运行但返回无效数据(无效的事件对象)时,会发生验证错误。

  • 执行错误数 (FunctionExecutionErrors) – 给定时间内发生的执行错误数。当函数无法成功完成时,会发生执行错误。

  • 计算利用率 (ComputeUtilization) – 函数运行所花费的时间占最大允许时间的百分比。例如,值为 35 表示函数在最大允许时间的 35% 内完成。该指标是介于 0 到 100 之间的数字。

要在 CloudFront 控制台中查看这些指标,请转至监控页面。要查看特定函数的图形,请选择 Functions(函数),选择函数,然后选择 View function metrics(查看函数指标)。

所有这些指标都在 CloudFront 命名空间中发布到美国东部(弗吉尼亚北部)区域 (us-east-1) 的 CloudWatch。您还可以在 CloudWatch 控制台中查看这些指标。在 CloudWatch 控制台中,您可以查看每个函数或每个分配中每个函数的指标。

您还可以使用 CloudWatch 根据这些指标设置警报。例如,您可以根据执行时间指标设置警报,该指标表示函数运行所花费的可用时间百分比。当执行时间在一定时间内达到特定值时(例如,连续 15 分钟内超过 70% 的可用时间)时,警报将触发。您可以在创建警报时指定警报的值及其时间单位。

Logs

如果函数的代码包含 console.log() 语句,CloudFront Functions 会将这些日志行自动发送到 CloudWatch Logs。如果没有 console.log() 语句,则不会发送任何内容到 CloudWatch Logs 中。您可以使用 CloudWatch 控制台或 CloudWatch Logs API 访问日志文件。

CloudFront Functions 始终在美国东部(弗吉尼亚北部)区域 (us-east-1) 中创建日志流,无论哪个边缘站点运行该函数。日志组名称的格式为 /aws/cloudfront/function/FunctionName,其中 FunctionName 是您在创建函数时为函数指定的名称。日志流名称的格式为 YYYY/M/D/UUID

下面显示了发送到 CloudWatch Logs 的示例日志消息。每行都以唯一标识 CloudFront 请求的 ID 开头。消息以包含 CloudFront 分配 ID 的 START 行开头,以 END 行结尾。STARTEND 行之间是 console.log() 语句在函数中生成的日志行。

U7b4hR_RaxMADupvKAvr8_m9gsGXvioUggLV5Oyq-vmAtH8HADpjhw== START DistributionID: E3E5D42GADAXZZ U7b4hR_RaxMADupvKAvr8_m9gsGXvioUggLV5Oyq-vmAtH8HADpjhw== Example function log output U7b4hR_RaxMADupvKAvr8_m9gsGXvioUggLV5Oyq-vmAtH8HADpjhw== END

CloudFront Functions 使用 Amazon Identity and Access Management (IAM) 服务相关角色将日志发送到您的账户中的 CloudWatch Logs。服务相关角色是一种与 Amazon 服务直接关联的 IAM 角色。服务相关角色是由服务预定义的,具有服务代表您调用其他 Amazon 服务所需的所有权限。CloudFront Functions 使用名为 AWSServiceRoleForCloudFrontLogger 的服务相关角色。有关此角色的更多信息,请参阅Lambda@Edge 的服务相关角色(Lambda@Edge 使用同一个服务相关角色)。

CloudFront Functions 与 CloudFront 日志集成

当函数失败并出现验证错误或执行错误时,信息将记录在 CloudFront 的标准日志实时日志中。有关错误的信息记录在 x-edge-result-typex-edge-response-result-typex-edge-detailed-result-type 字段中。有关 CloudFront 日志的更多信息,请参阅CloudFront 日志记录