如何解决如何从 Lambda@Edge 函数访问 documentDB?
我正在尝试从 cloudFront 设置事件触发器 lambda@Edge 函数。
该函数需要访问数据库并在分发给用户之前替换url的元数据。
我面临的问题:
- 我的 DocumentDB 位于 VPC 私有子网中。无法在 VPC 外访问。
- 我的 Lambda edge 函数无法连接到我的 VPC,因为它们都在不同的区域。
我想到的方法是在我的网络服务器(公共子网)中创建一个 API 供我的 lambda 函数调用,但这似乎不是一个非常有效的方法
感谢如果您能给我一些建议或替代实施方式。
提前致谢
解决方法
Lambda@Edge 有一些限制,您可以阅读有关 here 的信息。 其中有:
- 您无法将 Lambda 函数配置为访问 VPC 内的资源。
这意味着 VPC 位于另一个区域不是您的问题,您只是不能在任何 VPC 中放置 Lambda @ Edge 函数。
我能想到的唯一解决方案是在 Internet 上公开您的 DocumentDB,这似乎不是一个好主意。您也许可以创建一个仅允许从 the CloudFront IP-Ranges 访问的安全组,尽管我无法确定 Lambda@Edge 是否实际使用相同的范围:/
通常我会避免在 Lambda@Edge 函数中放置太多业务逻辑 - 请记住,它们在每个请求(或至少对源的每个请求)上运行,并增加这些请求的延迟。尤其是网络请求在时间上非常昂贵,如果您使用数据库跨大洲与您的主要区域进行通信,则更是如此。
如果您需要更新 URL 元数据的信息是相当静态的,我会尝试将其序列化并将其分发到 lambda 包中 - 从本地存储读取要便宜得多且速度更快。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。