Amazon web services AWS无服务器应用程序模型(SAM)双交叉嵌套堆栈参考

Amazon web services AWS无服务器应用程序模型(SAM)双交叉嵌套堆栈参考,amazon-web-services,amazon-cloudformation,serverless,aws-serverless,Amazon Web Services,Amazon Cloudformation,Serverless,Aws Serverless,我有两个不同的堆栈: AWS::无服务器::应用程序1 AWS::无服务器::应用程序2 第一个堆栈需要导入第二个堆栈的值。 第二个堆栈需要导入第一个堆栈的值 如何做到这一点,这取决于彼此。这通常是应用程序设计不好的标志。他们为什么相互依赖?如果它们是如此交织,为什么它们是两个堆栈?如果是这样的话,听起来应该是单向依赖。如果您希望函数与api不紧密耦合,那就太好了,为什么它们依赖于api呢?我想在一个堆栈中分离我的无服务器api,在另一个堆栈中分离我的无服务器函数。因此,我可以先部署我的函数,然

我有两个不同的堆栈:

AWS::无服务器::应用程序1

AWS::无服务器::应用程序2

第一个堆栈需要导入第二个堆栈的值。 第二个堆栈需要导入第一个堆栈的值


如何做到这一点,这取决于彼此。

这通常是应用程序设计不好的标志。他们为什么相互依赖?如果它们是如此交织,为什么它们是两个堆栈?如果是这样的话,听起来应该是单向依赖。如果您希望函数与api不紧密耦合,那就太好了,为什么它们依赖于api呢?我想在一个堆栈中分离我的无服务器api,在另一个堆栈中分离我的无服务器函数。因此,我可以先部署我的函数,然后将其连接到API。但是,在AWS SAM中,当将资源放在一起时,它将首先创建函数,将函数连接到API,并创建API调用的函数权限。例如,当您有一个函数要由多个API调用,并且您不希望两个API的所有资源都在一个文件中时(顺便说一句,一个文件限制200个资源)。最好将其分离到各自的堆栈中。在AWS SAM中,API和函数相互依赖,以使用正确的权限创建。仍然不明白函数需要了解API的原因。听起来像是单向依赖。应用程序设计的基本原则是不创建循环依赖。如果存在ts,它建议要么你应该有一个模块,要么你应该重新考虑你的架构选择。在这种情况下,我不认为如果它们单独管理和部署,循环依赖在逻辑上是可能的。它们都需要存在,以便部署另一个模块,而这显然不起作用。