如何获得基于 CloudFront URL 模式请求计数的 CloudWatch 指标?

How to have a CloudWatch metric based on CloudFront URL pattern requests count?

我有一个 CloudFront 分配,需要获取一些 URL 模式的请求(例如 /user/[0-9]+/profile.html)。我想将它作为 ClowdWatch 指标,因为我想将它与其他一些指标结合起来并设置警报。

最简单的方法是什么?

我看到 CloudFront 向 CloudWatch 发送了一些预定义指标,包括请求数,但我无法使用 URL 模式对其进行过滤。此外,我看到 CloudFront 将日志发送到 S3,是否可以在 CloudWatch 中拥有相同的日志以便我可以按我需要的模式进行过滤?

CloudFront 预定义 "Requests" 指标显示请求总数,CloudFront 只能将日志发送到 S3 存储桶,不会将其发送到 CloudWatch 日志组。 在我看来,最好的方法是使用 Lambda。 您可以在 S3 上启用事件通知以在 PUT 请求上触发 lambda,lambda 函数可以解析文件并计算 URI /user/[0-9]+/profile.html 的事件并直接在 CloudWatch 指标上发布数据点。代码是这里的棘手部分。