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

如何使用Cloudformation将lambda函数附加到现有API网关

方嘉言
2023-03-14

我正在尝试将lambda函数自动附加到已经存在的Api网关(未部署在堆栈中)。看起来AWS::ApiGateway::方法是实现这一点的最佳方法,但我似乎可以找到如何获取特定的Api网关RestApiId和ResourceId。我如何“获取”这些信息?有云形成的方法吗?或者我需要使用某种类型的lambda函数吗?

谢谢你帮我解决这个令人沮丧的问题!

共有2个答案

龙逸清
2023-03-14

我如何“获取”这些信息?

CFN中没有“获取”这样的功能。您必须手动提供所有内容作为输入参数或硬编码所需的值。或者,您必须开发一个自定义资源来为您获取该信息。自定义资源将使用需要自己编写的lambda函数。

祁博涛
2023-03-14

最快、最简单的方法是使用CFN参数。下面我举了一个小例子来说明如何做到这一点。该示例使用SAM无服务器lambda和HTTP API(API网关v2),但REST API(API网关v1)的解决方案非常类似。

Parameters:
  HttpApi:
    Type: String

Resources:
  SourceFunction:
    Type: AWS::Serverless::Function
    Properties:
      [...]
      Events:
        GetEndpoint:
          Type: HttpApi
          Properties:
            Path: /endpoint
            Method: GET
            ApiId: !Ref HttpApi

更多关于云层参数的信息可以在这里找到。关于无服务器功能的更多信息(如果您不熟悉AWS SAM)可以在这里找到。

 类似资料:
  • AWS CloudFormation模板,包括一个带有敏感环境变量的Lambda函数。我想设置一个KMS密钥并用它加密它们 添加基本的cloudformation来加密密钥,即使使用AWS/Lambda默认加密也可以

  • 我正在尝试使用CloudFormation创建Lambda函数的新版本。 我想拥有同一个Lambda函数的多个版本,这样我就可以(a)在不同的版本中指向别名——比如DEV和PROD——并且(b)能够回滚到更早的版本 这是我的Lambda版本的定义: 运行“aws cloudformation创建堆栈”时会创建一个版本,但后续的“aws cloudformation更新堆栈”命令不会执行任何操作。没

  • 问题内容: 我想将键值对作为查询参数附加到现有URL。虽然我可以通过检查URL是否存在查询部分还是片段部分并通过跳过一堆if子句来执行追加来做到这一点,但是我想知道是否有通过Apache进行清理的干净方法公共图书馆或类似的东西。 将是 将是 将是 将是 我之前已经运行过多次这种情况,并且我希望做到这一点而不会以任何方式破坏URL。 问题答案: 这可以通过使用java.net.URI类使用现有实例中

  • 我正在使用下面的代码。然而,当我运行代码时,我想在同一个TXT文件中一个接一个地添加新的XML。这是否可以使用JDOM。请帮帮我。。 xmlOutput。输出(文档,新FileWriter(“c:\updated.txt”));是否需要修改?

  • 有没有人可以为至少有一个使用KMS密钥加密的环境变量的Lambda发布一个基本的CloudFormation JSON对象,以及创建该密钥的JSON?

  • 问题内容: 我正在使用AJAX将数据附加到div元素,从JavaScript填充div,如何在不丢失div中找到的先前数据的情况下将新数据附加到div? 问题答案: 尝试这个: