【发布时间】:2019-07-07 21:03:43
【问题描述】:
我在下面提到了两个 AWS 服务
- 堆栈 1: Api 网关 + Lambda(无服务器)
- 堆栈 2: 使用 AWS S3 的 SPA(单页应用程序)。
我想单独公开Stack 1'或'同时部署Stack 1 & Stack 2,这样两个堆栈就可以无缝地相互通信。
我目前的解决方案:
我正在考虑使用Cross Stack reference(使用导出/导入),以便Stack 1 将输出其URL,以便将来可以引用它(如果我想在将来部署Stack 2)。
我的问题:
- 如何将 API 和 SPA 绑定在一起?
- 虽然我知道如何在 SPA (AWS S3) 中引用
Cross Stack的 ExportedURL值,但我不确定如何在 AWS S3 中使我的代码 (index.html) 动态化,以便调用 @ 987654330@的API。
更新:
想知道我的问题是否足够清楚。问我问题的另一种方式是“我如何在 Javascript/Ruby 等代码中使用从Stack 1 吐出的URL?”。我知道如何在另一个 cloudformation 模板中引用 URL 而不是在代码中。
【问题讨论】:
-
您能否将 API Gateway 资源移动到您的 Stack 2 中?
-
我不认为这对我的方案是最好的,因为我试图将
Stack 1和Stack 1 + Stack 2公开为两个不同的服务。在我只需要Stack1的情况下,您的建议将适合我的情况。 @yorodm -
顺便说一句,如果我把它移到 Stack 2,你有什么建议? @yorodm
-
好的,如果你想公开 Stack 1,比如说一个 REST API,并通过导出它的 API Gateway URL 从 Stack 2 使用它,你需要从这方面获得一些东西,将它转换成你总是可以知道的东西.另一个 API 网关或带有一堆 HTTP 解析器的 Appsync 端点
-
我认为我没有关注您的评论。您有什么解决问题的建议?
标签: amazon-web-services amazon-s3 aws-lambda amazon-cloudformation aws-api-gateway