aws-lambda - 从 AWS Lambda 调用 AWS API Gateway
问题描述
场景是:
- 我有一个 Rest api 网关,它在触发时会调用一个处理请求并返回响应的 lambda。
- 这个 api 端点是公共的。
- 我有另一个 lambda,它将调用此 API 网关/端点并从中获取响应。
现在查询:
- 我直接调用 api 的调用 url,就像任何其他 api 一样。那么这是正确的方法吗?
- 当我将调用 url 放在浏览器地址栏中时,它给出了缺少的身份验证令牌。
- 如何在调用 lambda 时实际调用 url,我的意思是如何传递令牌;在 Node.js 中?
谢谢
解决方案
好吧,这些问题已经足够广泛了。我尽量回答。
首先,您所遵循的 Rest API -> Lambda 的设计,它被称为“集成类型”是“Lambda 函数”并使用“使用 Lambda 代理集成”。
通读文档相信你会理解这个模型的进出。在高层次上,这个模型 API 网关正在传递请求和响应,而您 (Lambda) 将处理一切。
问题1: 我是直接调用api的invoke url,和其他api一样。那么这是正确的方法吗?
[答]这个模型没有问题。是的,您可以将此 API(Lambda 代理)称为任何 Rest API。
问题 2: 当我将调用 url 放在浏览器地址栏中时,它给出了缺少身份验证令牌
[Answer]请检查您的API的设置。如下图所示,我的 api 使用 Cognito 作为授权方。这意味着消费者在调用 API 时需要提供“令牌”(例如 oAuth2)。您可以使用Lambda 授权者或Cognito授权者。由你决定。如果您不需要任何授权人,您可以将其设置为 NONE,这样您的 API 就不需要身份验证令牌。
简而言之,您现在收到的消息意味着您的 API 有一个“授权者”,并且您没有随请求一起发送令牌。
问题3: 调用lambda时如何实际调用url,我的意思是如何传递token;在 Node.js 中?
这很常见。您可以像“Node.js 中的 oAuth2”一样在 Google 上搜索它,它会为您提供大量示例
https://stormpath.com/blog/talking-to-oauth2-services-with-nodejs
我希望它有所帮助。否则,请留下您的意见和问题。
谢谢,
推荐阅读
- testing - Katalon中的e2e测试用例可以用Javascript语言编写吗
- c# - 在参数的事件注册中出现错误
- ios - Lottie 动画 'CALayer 位置包含 NaN: [nan nan]' 错误
- python - 获取 IndexError:在 Python 中解析 HTML 时出现列表索引超出范围错误
- debugging - 从协程内省 _ENV
- python - 如何使用循环将字典的特定项解压缩到变量中
- web-scraping - 无法从 url 中选择表
- azure - 如何将 Azure APIM 连接到逻辑应用以转换 API 响应的 JSON 结构?
- html - 如何摆脱AA
- python - Python:从文本中查找和删除字符串