【问题标题】:Creating an internal API with Lambda on AWS在 AWS 上使用 Lambda 创建内部 API
【发布时间】:2016-10-29 12:59:34
【问题描述】:

我想使用 AWS Labmda + API Gateway 构建一个无服务器系统,其中我将拥有一些公共 API 和其他一些仅供内部使用的 API(所有这些都将使用 Lambda 函数和 Node JS 实现)。

我的问题是关于如何创建那些不会暴露给外界而只会暴露给少数 lambda 函数的内部 API。

我知道网关中定义的所有 API 都是公开的。如何将 API 的调用者管理为仅来自我自己认可的 AWS 资源(特别是我的 Lambda 函数)?

我知道一个可能的答案是直接调用 Lambda 函数,而不是通过 API 网关。这当然会起作用,但这里的缺点是它将实现与 AWS 耦合,而我正在尝试获得一个解决方案,该解决方案由通过 REST API 相互调用的 Node 微服务构成。

谢谢。

【问题讨论】:

    标签: amazon-web-services lambda aws-lambda


    【解决方案1】:

    据记录 here:

    要为方法分配自定义访问权限,在 授权设置区域,对于授权类型,选择编辑,然后 然后选择 AWS_IAM。仅具有正确 IAM 策略的 IAM 角色 attach 将被允许调用此方法。

    然后,您只需为您的 Lambda 函数分配适当的 IAM 角色,以允许它们调用这些私有 API Gateway 方法。

    【讨论】:

    • 谢谢。通过更仔细地阅读本文,我发现将其作为直接的 HTTPS 请求并不是那么简单,因为如果您不使用 AWS 开发工具包,则需要做很多工作来验证请求(请参阅docs.aws.amazon.com/general/latest/gr/…)。我希望 AWS 能够在内部完成所有这些工作。我想内部 API 网关在这里对我来说可能会很好用(但不幸的是它不存在)。
    • 采用这种方式,对于内部调用,仍然会产生费用。知道如何最小化吗?
    • @Hammer 这个问题与成本无关。如果您有关于 API 网关费用的具体问题,请单独提出。
    猜你喜欢
    • 2017-01-22
    • 2017-02-08
    • 2021-03-20
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    • 2016-03-05
    • 2020-09-12
    • 2019-11-21
    相关资源
    最近更新 更多