问题标签 [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.

0 投票
1 回答
1149 浏览

aws-lambda - SNS 到 SQS 与直接 SQS 放入 Lambda@Edge 应用程序

我正在研究使用 Lambda@Edge 将从外部源生成的事件放入内部 SQS 队列中。lambda 只需要在必要时对其进行转换,放下手,然后离开。我希望这尽可能快,所以我的问题是,除了 SQS 之外,使用 SNS 是否有好处,还是应该只使用 SQS?

换句话说,给定这两种配置,对于最终用户来说,一种性能会更好吗?

A) 请求进入 Lambda@Edge,lambda 转换请求并将事件发送到 SNS,SNS 将事件发送到 SQS。

B) 请求进入 Lambds@Edge,lambda 转换请求并将事件直接放入 SQS。

编辑:

我说的是跨区域。

0 投票
0 回答
1917 浏览

amazon-web-services - AWS Lambda@edge 将 cookie 设置为原始响应

我的目标是保护 aws s3 存储桶链接,我试图通过使用 cloudfront 作为可访问 s3 存储桶的链接来解决此问题,因此当用户尝试访问 cloudfront 链接时,如果有基本身份验证他们的浏览器中没有 cookie,但如果有 cookie,则检查此 cookie 中的身份验证值并授予用户访问权限。PS:这不是一个网站,我的任务是保护 s3 存储桶链接。

这是我的尝试,在查看器请求中使用 lambda@edge,如果用户未登录,则有身份验证页面,否则,他们被允许访问,它可以工作,但我无法设置 cookie,因为在 aws 文档的某个地方,云端删除头文件中的 set-cookies:CloudFront 从转发到您的源的请求中删除 Cookie 标头,并从返回给您的查看器的响应中删除 Set-Cookie 标头

这是我的代码:

您的建议将非常受欢迎。提前致谢。

0 投票
1 回答
452 浏览

amazon-cloudformation - 使用 cloudformation 模板在云端添加 Lambda@edge includebody 字段?

我正在尝试Lambda@Edge使用 cloudformation 在云端添加关联。根据aws 文档,他们只有两个字段,例如EventTypeLambdaFunctionARN。但我想添加IncludeBodycloudformation 以便我Lambda@Edge阅读请求的正文。当我尝试添加 IncludeBodycloudformation 时,它会说类似invalid property.

那么,我不能通过 cloudformation 添加它吗?或者我需要从控制台手动完成?

感谢任何帮助谢谢

0 投票
2 回答
897 浏览

amazon-cloudfront - 如何更改查看器响应 Cloudfront 事件中的状态代码?

我想使用 S3 对象元数据和 DB(或某些远程服务)中的某些角色数据(特定于当前用户)来保护 Cloudfront 响应。我想我应该viewer-response在这里使用事件,以便一起访问 S3 数据和用户数据。我尝试在对象中设置status和,但它不适用于事件,适用于所有其他事件。设置标题仍然有效。statusDescriptionresponseviewer-response

有没有办法让viewer-response返回另一个状态?AWS 文档没有说明它是否可能。也许还有另一种解决方案?

0 投票
1 回答
868 浏览

amazon-cloudfront - 触发 Dynamodb 时的 Lambda@Edge 给出 503 错误

我正在尝试Lambda通过 cloudfront viewer request 调用。这是我的 Lambda 代码

当我通过控制台触发相同的 lambda 时,它给出了正确的响应。但是当我通过 Cloudfront 进行部署时,它会提供503 Error. 但是我尝试了相同的代码 withcodeDynamodb Client它工作得非常好。这是工作的

我已经为 lambda@edge 提供了完整的 dynamodb 权限。

感谢任何帮助谢谢

0 投票
1 回答
37 浏览

aws-lambda-edge - Cloudfront 有条件到期

可以使用 Lambda@Edge 使 Cloudfront 缓存过期并强制获取新版本的网页吗?

我知道对于静态资产,可以添加一个额外的查询字符串来避免缓存版本,但现在我要求提供实际页面,例如该选项不可用的站点主页。

0 投票
1 回答
846 浏览

amazon-web-services - Lambda@Edge 和 AWS EC2 延迟比较

目前,我已经在多个区域的 EC2 实例上构建了一个应用程序。问题是当每个区域需要修补/维护一个实例时,如果出现故障,我们需要更多的努力来处理。

我决定使用 Lambda@Edge 而不是 EC2,问题是:

  1. Lambda@Edge 比这些 EC2 实例更好?
  2. 需要确保 Lambda@Edge 可以以相同的延迟或比 EC2 更好的延迟访问。有任何官方文件可以证明这一点吗?

谢谢

0 投票
1 回答
1173 浏览

amazon-s3 - Lambda@edge 重定向进入重定向循环

我在 aws s3 上有一个静态网站。已设置路线 53 和云前,一切顺利。s3 Bucket 设置为将 index.html 作为索引文档提供服务。

现在我添加了另一个名为 index-en.html 的文件,当请求国家是任何其他国家而不是我的祖国时应该提供该文件。

为此,我添加了一个带有以下代码的 lambda@edge 函数:

我还编辑了云端行为以将 Origin 和 Viewer-country 标头列入白名单,并设置 cloudfront Viewer-Request 事件和 lambda Function ARN 关系。

但是我收到“太多重定向错误”。

我有两个问题:

  1. 如何纠正“重定向错误太多”?
  2. 对于“TR”以外的查看者,默认登陆页面应该是 index-en.html,通过导航菜单可以访问另外 2 个英文页面。因此,当用户从页面导航请求特定页面时,他们应该能够访问这些页面,当没有请求页面时,应该提供默认登录页面。

感谢帮助。谢谢。

0 投票
0 回答
70 浏览

amazon-web-services - lambda@edge count s3 资产视图

我正在尝试创建一个 lambda 函数,该函数计算从 s3 访问资产(在本例中为 mp4 文件)的次数。这将用于更新存储每个文件的视图的数据库。尝试使用 lambda@edge 来获取查看器请求触发器会导致 lambda 被触发的次数不同,具体取决于您是使用移动设备还是桌面设备还是使用不同的浏览器。这是因为来自每个浏览器的请求看起来不同。我想我可以为每种类型的浏览器请求设置子句,但我觉得这不是一个很好的方法。确保每个请求只会触发一次 lambda 的提示?

0 投票
1 回答
686 浏览

amazon-web-services - AWS CloudFront 到 S3 后期支持?

第三方程序需要从我们的 CDN 访问静态文件。问题是,他们不是通过 GET 获取这些文件,而是通过 POST 发出这个请求。

在测试这个POST => cdn.company.com/somefile时,我得到 -

CloudFront 行为设置为支持所有方法 -

缓存行为

并且 CORS 配置包括 POST 方法-

不知道还需要做什么。我的怀疑是 S3(正确地)假设 POST 正在尝试将信息添加到存储桶,它应该只返回路径中的文件。Cloudfront 到 s3 有可能吗?我是否需要将请求转发给将下载文件的 lambda?