【发布时间】:2020-01-30 17:14:10
【问题描述】:
通过部署 AWS Lambda 函数(通过无服务器框架),并通过 AWS API Gateway 中的 HTTPS 端点公开它... 是否可以构造和设置 API Gateway id 从而确定该 Lambda 函数的 HTTP 端点的第一部分?
在部署 AWS Lambda 函数并添加 HTTP 事件时,我现在在 https://klv5e3c8z5.execute-api.eu-west-1.amazonaws.com/v1/fizzbuzz 中获得一个随机 id 作为(第一个主机名)。新/新部署会收到新的随机字符串,即 10 个字符的 id。
我想确定并设置该 ID,而不是使用它。 (我自己会确保它足够独特,或者自己处理端点命名冲突。)
原因是在一个单独的无服务器项目中,我需要使用那个端点(因此需要知道那个 id)。我不想让项目 1 确定它,然后在项目 2 中读取/检索它,而是想在项目 1 中构造和设置端点,以便我也可以在项目 2 中使用已知端点。
(建议使用自定义域作为该端点的替代/别名......但如果可能的话,我不想在混合中引入新组件,以及不包含 Cloud-it-might-take-30-minutes-to-create-a-domain-Front 更好:-))
如果这不可能,我可能需要使用http://www.goingserverless.com/blog/api-gateway-url 中描述的方法,提到端点正在通过 CloudFormation 堆栈从一个项目中公开,以便从中读取并在另一个项目中使用,但这会在部署第二个项目时引入(一点延迟和)依赖性。
【问题讨论】:
-
如您在问题中概述的那样,从您的两个脚本中导出/导入动态网关 ID 是实现此目的的正确方法。我没有看到项目 A 和 B 之间的依赖关系的问题。如果您的 A 端点不存在,那么 B 肯定不会工作,那么依赖关系是否有效?关于延迟,您构建这些无服务器堆栈的频率是多少,如果它们被更新而不是重新创建,更新应该会更快并且 ID 保持不变。
-
谢谢。您说得对,依赖项无效-第二个项目确实需要第一个项目可用 c.q.已部署。 (如果您将此评论作为答案,我将能够投票并接受它。)
标签: amazon-web-services aws-lambda aws-api-gateway serverless-framework