背景资料:
- 我们在 AWS
dev
环境中有大量的 lambda,CD 脚本可以根据每个 lambda 存储库上推送到 main
的任何内容进行更新(因此 dev
环境始终反映 production
)。
- 我们有一个微前端架构,前端有管道,可以“加入”与工单相关的任何拉取请求分支。票证在 URL 参数中指定。因此 https://dev.myapp.example.com/?use-ticket=12345 将在
dev
环境中运行该应用程序,其中包含与票证 12345“subbed in”关联的任何微前端分支。
- 所有 lambda 调用都是作为对 AWS ALB 的 HTTP 请求发生的,AWS ALB 在调用 lambda 之前应用一些身份验证(这适用于前端到 lambda 和 lambda 到 lambda 调用)。
提问:
我们需要一种方法来为前端 MFE 应用相同的 lambda 行为,而无需在 lambda 调用站点直接修改应用程序代码。
我们有什么
我们正在处理的约束:
- ALB 的上限为 200 条规则,因此每次打开 PR 时添加新的 ALB 规则以映射到新的 lambda PR 分支很可能无法扩展。
- 将 lambda ALB URL 替换为 lambda 函数 URL 将非常困难,因为 (a) 请求需要使用 IAM 身份验证(前端目前没有密钥)进行签名,以及 (b) 我们当前的 ALB 身份验证方案使用带有 JWT 的自定义标头,与 IAM 身份验证无关。
是否存在任何机制可以使我们在给定约束的情况下完成 lambda 的这种“替换”行为?