从AWS Lambda调用AWS API网关 [英] Calling AWS API Gateway from AWS Lambda

查看:21
本文介绍了从AWS Lambda调用AWS API网关的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

场景为:

  1. 我有一个睡觉接口网关,它在被触发时会调用lambda,后者处理请求并返回响应。
  2. 此API终结点是公共的。
  3. 我还有另一个lambda,它将调用此API网关/端点并从其获取响应。

现在查询:

  1. 我和其他API一样,直接调用API的调用url。那么这样做对吗?
  2. 当我将调用URL放入浏览器地址栏时,它提供的身份验证令牌缺失。
  3. 在调用lambda时如何实际调用url,我的意思是如何传递令牌;在Node.js中?

谢谢😊

推荐答案

嗯,问题相当广泛。我正在尝试尽可能多地回答。

首先,您现在遵循的睡觉API-&>lambda的设计,叫做‘集成类型’是‘lambda函数’,使用的是‘使用lambda代理集成’。

请查看文档here和示例here

通读一下文档,我相信您会理解此模型的输入和输出。在较高级别,此模型API Gateway通过请求和响应传递,您(Lambda)将处理所有事情。

问题1: 我直接调用API的调用URL,就像调用任何其他API一样。那么这是正确的做法吗?

[回答]此模式没有问题。是的,您可以将此接口(Lambda Proxy)作为任意睡觉接口调用。

问题2: 当我将调用url放入浏览器地址栏时,它给出了缺少的身份验证令牌

[应答]请检查您的接口设置。如下面的屏幕截图所示,我的API使用Cognito作为授权器。这意味着消费者在调用接口时需要提供‘Token’(例如OAuth2)。您可以使用Lambda authorizerCognito authroizer。由你决定。 如果您不需要任何授权者,则可以将其设置为None,以便您的API不需要身份验证令牌。

简而言之,您现在收到的消息表示您的API具有"Authorizer",并且您没有随请求一起发送令牌。

问题3: 在调用lambda时如何实际调用url,我的意思是如何传递令牌;在Node.js中?

这很常见。你可以在谷歌上搜索一下‘OAuth2 in Node.js’,它会给你提供大量的例子

https://resources.infosecinstitute.com/securing-web-apis-part-ii-creating-an-api-authenticated-with-oauth-2-in-node-js/

https://stormpath.com/blog/talking-to-oauth2-services-with-nodejs

我希望这会有帮助。否则,请留下您的评论和问题。

谢谢,

这篇关于从AWS Lambda调用AWS API网关的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆