【问题标题】:AWS - getting API-Gateway apiID from lambda nameAWS - 从 lambda 名称获取 API-Gateway apiID
【发布时间】:2021-05-07 13:48:40
【问题描述】:

我有一个 lambda,它应该从公共 URL 调用(通过 API-Gateway - 不需要授权)

我知道我可以通过调用 awsSdk.apiGateway.getApi(apiId) 来获取公共 URL

所以我需要从某个地方得到apiId。我听说可以通过lambda-name 获取api-id,但我在文档中找不到。

真的有可能吗?另一种方法是将api-id 保留在我的应用程序配置中(而不是lambda-name

【问题讨论】:

    标签: amazon-web-services aws-lambda aws-api-gateway aws-sdk aws-sdk-js


    【解决方案1】:

    如果您的 lambda 与代理集成一起使用,您可以按照page 中的说明检索输入数据中的 ID

    "requestContext": {
      ...
      "apiId": "gy415nuibc"
    },
    

    【讨论】:

      【解决方案2】:

      仅通过使用 lambda 名称,您无法获得apiId。也许您听到的是,在 lambda 中您可以获取 apiId,然后将其返回给调用者。这是有道理的,因为apiId 是 API 网关随每个请求传递给 lambda 函数的 event object 的一部分。

      要仅从 lambda 名称中获取 apiId,您必须为此开发自己的自定义解决方案。这仍然会有问题,因为单个 lambda 可以与多个 API 相关联,因此您可能也必须考虑到这一点。

      开发此类解决方案的最简单方法是在 API 及其 lambda 函数之间存储关联,例如DynamoDB 表,并在需要时仅根据 lambda 名称查询该表以获取 apiId

      【讨论】:

        猜你喜欢
        • 2020-04-21
        • 2019-07-08
        • 2020-05-28
        • 2017-06-26
        • 2019-05-11
        • 1970-01-01
        • 1970-01-01
        • 2017-09-19
        • 1970-01-01
        相关资源
        最近更新 更多