问题标签 [aws-lambda-edge]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-cloudfront - lambda@edge 没有被 cloudfront 触发
我正在使用 lambda@edge 通过云端重定向我的网站。
我已将我的版本化 lambda arn 附加到它拥有的所有 4 个事件的云前端缓存行为中。
当我点击我的云端端点时,它说
当我检查我的 lambda 日志/调用指标时,我根本看不到任何命中。
这可能是什么原因?
我尽我所能找到解决我的 lambda 没有被触发的问题??
amazon-web-services - lambda@edge 日志和调用计数未显示?
我已经创建了云前端分布并将 lambda 附加到触发器
根据我的 lambda,当我点击端点时,它会重定向到我想要重定向的页面。
但我无法在任何地区看到我的 lambda 日志。
它也没有显示调用计数。
有人遇到过这个问题吗??
这是我的 lambda 代码
amazon-web-services - Cloudfront 引用旧的 Lambda@Edge 版本
我对 AWS 还是很陌生,所以这可能是错误的,但我的 Cloudfront 发行版似乎指向了我的 Lambda@Edge 函数的旧版本。
我按照本教程进行了初始设置: https ://aws.amazon.com/blogs/networking-and-content-delivery/resizing-images-with-amazon-cloudfront-lambdaedge-aws-cdn-blog/
当我更新 Lambda 函数以完全满足我的需要时,它工作了数周,一直到 Origin Response 函数的第 16 版。但是,当我创建版本 17(将 .gif 格式化为 .png)时,出现了问题。我回滚到 16,但仍然收到 503 错误。从那以后,我创建了很多新版本,从一直回滚到创建新函数,我的 Origin Response 仍然抛出 503 错误。 https://d361pysytz4143.cloudfront.net/images/blackhat.png?d=200x200
我注意到我的 Cloudwatch for Origin Response 一直在引用版本 17,无论我删除日志堆栈和/或发布新的 Lambda 函数多少次。
00:50:51
开始请求 ID:6118af00-3d22-11e8-a163-5577c9775707 版本:17
开始请求 ID:6118af00-3d22-11e8-a163-5577c9775707 版本:17
00:50:51
2018-014-11TZ00.59 6118af00-3d22-11e8-a163-5577c9775707 类型错误:无法读取exports.handler.err (/var/task/index.js:19:51) 处未定义的属性“状态” 2018-04-11T00
:50:51.179Z 6118af00 -3d22-11e8-a163-5577c9775707 TypeError:无法读取exports.handler.err(/var/task/index.js:19:51)未定义的属性“状态”
我确保将 Cloudfront 附加到我最新的 Lambda 函数,因此它应该指向正确的函数,但它没有更新。如果我切换版本,查看器请求功能会正确更新。
发生了什么事,是否有任何缓存或我需要清除的东西?
amazon-web-services - AWS lambda@edge 调用计数未显示?
当 Cloudfront 中发生事件时,我正在使用 lambda@edge
我可以在距离 cloudfront 端点最近的区域看到 lambda@edge 的日志。
我看不到我的 lambda 被调用的次数(调用计数),我在哪里看到我的 lambda@edge 调用计数?
amazon-web-services - 如何从 lambda@edge 访问云端起源?
我已经在 Cloudfront 中使用 lambda@edge 完成了重定向。
如何在特定条件下从 lambda@edge 回击原点?
那可能吗 ??
amazon-web-services - 将标头从查看器请求传递到 AWS lambda@Edge 中的源请求
是否有可能将标头从查看器请求传递到原始请求,而不会将 AWS Lambda@Edge 中的 Vary 标头列入白名单。
amazon-web-services - 无法将 cloudfront 作为触发器添加到 lambda 函数
嗨,我已按照此说明尝试使用 Cloudfront 和 lambda@edge 调整图像大小。当我尝试测试调整大小的图像时,我不断收到以下错误消息:
与 CloudFront 分配关联的 Lambda 函数无效或没有所需的权限。
于是我查看了开头提到的那篇文章提供的云形成创建的lambda函数,发现里面没有触发器。
我尝试手动设置,但收到以下错误消息:
CloudFront 事件不能与 $LATEST 或别名关联。选择操作以发布新版本的函数,然后重试关联。
我按照错误消息中的说明进行操作;发布,并将 Cloudfront 添加为触发器,但似乎无法应用它。它仍在运行没有 Cloudfront 作为触发器的那个。
有没有办法将 Cloudfront 设置为触发器并使其正常工作?
amazon-cloudfront - 在记录之前修改 CloudFront 请求?
我正在构建一个 ELK 堆栈(第一次)来跟踪 CloudFront 分配的最终用户 REST API 使用情况(在 S3 源之前)。用户将刷新令牌作为其请求的一部分传递,我希望使用此令牌来识别哪些用户正在发出哪个请求。不幸的是,CloudFront 访问日志似乎缺少一些标头信息(尤其是我的用例中的授权/接受)。这给我留下了三个问题:
有没有办法告诉 CloudFront 记录其他项目?看来答案是否定的。
作为一种替代策略,我尝试使用 lambda@edge (在查看器请求中)修改请求对象,以将标头信息移动到查询字符串中(以便它被记录),但 lambda@edge 中的任何操作似乎都没有反映在日志中。(尽管它反映在 Origin Request 函数中)。这应该可能吗?
如果做我想做的事是不可能的,我认为另一种方法是完全放弃 CloudFront 日志,只用每个用户请求触发一个 http 请求来 logstash,但我觉得这很容易超载。
谢谢
url-rewriting - 用 lambda@edge 重写云端原始主机,如何?
我看到人们谈论如何根据各种信息重写 URI。但我想规范化正在请求的域名。这是我尝试过的:
我希望这会拉起请求,然后云端会针对我的规范化域提出请求。(对于示例和测试,我使用的是 slashdot,因为很明显这不是我的内容)。
最终,我试图在不进行重定向的情况下规范化请求,而是在命中命中源之前重写请求。
amazon-web-services - AWS Lambda@edge。如何从 S3 读取 HTML 文件并将内容放入响应正文
具体来说,在原始响应触发函数(EX. With 404 Status)中,如何读取存储在 S3 中的 HTML 文件并将其内容用于响应正文?
(我想像 CloudFront 一样手动返回自定义错误页面,但根据 cookie 选择它)。
注意:S3 中的 HTML 文件存储在我网站的同一个存储桶中。启用 OAI。
非常感谢!