当前位置: 首页 > 知识库问答 >
问题:

参考无服务器框架中现有的Cloudformation堆栈输出

岳刚洁
2023-03-14

我们正在评估是否在一些新的AWS应用程序基础架构中使用无服务器。我们大量使用Cloudformation(由Ansible部署),因此我们需要能够清晰地引用现有Cloudformation堆栈的输出——一个直接的例子是获取现有AWS网络基础设施的子网ID,以供lambda函数使用。

在浏览了很多次之后,我还没有看到一个现成的方法来实现这一点。我们现有的Cloudformation堆栈的命名方式是,如果我只需输入堆栈的名称和所需的输出变量,就可以可靠地在各种环境中获得所需的输出。我看到的一个可能的解决方案是使用aws cli提取变量,并将它们作为环境变量传递给serverless,但如果可能的话,我希望使用更简洁的方法。

共有2个答案

养鸿运
2023-03-14

我能想到的处理您的示例案例的最简单方法是让lambda使用boto3调用boto3.client('cloud d形成',region_name=*指定区域*)。describe_stacks(StackName=*指定堆栈*)['Stacks']。此列表包含与指定的StackName匹配的所有堆栈,如果您的所有网络架构体系都共享其名称的子集,您可以通过将StackName指定给该子字符串来列出所有堆栈。每个Stack对象都包含一个'输出'块。请参阅此处。

如果您想从任何地方公开它以便于使用,可以将API Gateway GET方法附加到lambda,并将其公开到HTML表单中。

杜弘伟
2023-03-14

如果无服务器框架允许您在云形成模板中使用内在函数,您可以通过从一个堆栈导出堆栈输出值(使用输出部分中的Export属性)并使用Fn::重要性另一个堆栈中的内在函数来引用导出的值,从而在云形成模板中创建跨堆栈引用。

 类似资料:
  • 请求(Request)和基础请求(BaseRequest) Request 对象中包含所有的HTTP请求信息。 BaseRequest 用在底层服务器中(底层服务器没有应用,路由,信号和中间件)。Request对象拥有Request.app和Request.match_info属性。 BaseRequest和Reuqest都是类字典对象,以便在中间件和信号处理器中共享数据。 class aioht

  • 我有一个在AWS中托管的网站,它使用了许多AWS服务。该环境是使用web控制台和AWS CLI的组合手动创建的。我想开始使用CloudFormation来管理它。我使用了CouldFormer工具来创建堆栈的模板,但我找不到一种方法来使用它来管理现有的环境。它将允许我创建一个没有太多问题的重复环境,但我真的不想删除整个生产环境,这样我就可以使用CloudFormation重新创建它。 有没有办法创

  • 我正在尝试部署一个简单的Slack lambda api,它使用库从特定通道中删除成员和固定消息。我遇到的问题是函数没有问题地执行,并且它没有问题地删除通道成员,但是我的Lambda函数不断返回: 作为反应体。当我使用检查日志时,也没有看到任何错误。我看到我的函数的console.log成功执行。 null 为什么会出现此错误,以及如何解决此错误? 在处理程序函数中引用了这一点之后,我使用了。使用

  • 如您所见,我正在使用codePipeline和codeBuild自动化部署。我的后端基于无服务器框架,它在触发命令时部署lambda函数。这就是我没有使用codeDeploy进行传统部署的原因<代码>构建规范。yml文件如下所示: 现在,我有3个关于CodeBuild和Serverless的问题: 问题1:命令依赖于一个名为的文件,其中包含数据库密码等秘密。此文件将不会被签入git。你认为在cod

  • 问题内容: 最近,我一直在寻找Java虚拟机规范(JVMS),以试图更好地理解使我的程序正常工作的原因,但是我找到了一段我不太了解的部分… 第4.7.4节介绍了 StackMapTable 属性,在该节中,文档介绍了有关堆栈映射框架的详细信息。问题是它有点罗word,我以身作则,学得最好。不读书。 我知道第一个堆栈映射框架是从方法描述符派生的,但是我不知道如何(应该在这里进行解释。)而且,我也不完

  • 我正在AWS Lambda上托管一个Nestjs应用程序(使用无服务器框架)。请注意,实现在AWS API网关之后。 问题:如何访问Nest中的参数? 这是我如何引导NestJS服务器的: 以下是一个控制器中的功能: 我很难理解如何访问< code>event参数,该参数在“普通”node 12.x Lambda函数中很容易访问: