在 AWS 上使用 Lambda 创建内部 API
Creating an internal API with Lambda on AWS
我想使用 AWS Labmda + API 网关构建一个无服务器系统,其中我将有一些 public APIs 和其他一些 API 用于内部仅使用(全部将使用 Lambda 函数和 Node JS 实现)。
我的问题具体是关于如何创建那些内部 API 的,这些内部 API 不会暴露给外部世界,而只会暴露给少数 lambda 函数。
我知道网关中定义的所有 API 都是 public。我如何管理 API 的调用者仅来自我自己认可的 AWS 资源(特别是我的 Lambda 函数)?
我知道一个可能的答案是直接调用 Lambda 函数,而不是通过 API 网关。这当然会起作用,但不利的一面是它将实现耦合到 AWS,而我正在尝试获得一个解决方案,该解决方案由通过 REST APIs 相互调用的节点微服务构建而成。
谢谢。
如文档所述here:
To assign custom access permissions to the method, in the
Authorization Settings area, for Authorization Type, choose Edit, and
then choose AWS_IAM. Only IAM roles with the correct IAM policy
attached will be allowed to call this method.
然后您只需要为您的 Lambda 函数分配适当的 IAM 角色,以允许它们调用那些私有 API 网关方法。
我想使用 AWS Labmda + API 网关构建一个无服务器系统,其中我将有一些 public APIs 和其他一些 API 用于内部仅使用(全部将使用 Lambda 函数和 Node JS 实现)。
我的问题具体是关于如何创建那些内部 API 的,这些内部 API 不会暴露给外部世界,而只会暴露给少数 lambda 函数。
我知道网关中定义的所有 API 都是 public。我如何管理 API 的调用者仅来自我自己认可的 AWS 资源(特别是我的 Lambda 函数)?
我知道一个可能的答案是直接调用 Lambda 函数,而不是通过 API 网关。这当然会起作用,但不利的一面是它将实现耦合到 AWS,而我正在尝试获得一个解决方案,该解决方案由通过 REST APIs 相互调用的节点微服务构建而成。
谢谢。
如文档所述here:
To assign custom access permissions to the method, in the Authorization Settings area, for Authorization Type, choose Edit, and then choose AWS_IAM. Only IAM roles with the correct IAM policy attached will be allowed to call this method.
然后您只需要为您的 Lambda 函数分配适当的 IAM 角色,以允许它们调用那些私有 API 网关方法。