【发布时间】:2019-05-25 19:10:43
【问题描述】:
感谢Zappa,我有一个用 Flask 编写并在 API Gateway 和 Lambda 上运行的多端点网络服务。
我有第二个非常小的 lambda,用 Node 编写,它会定期访问其中一个 Web 服务端点。为此,我将小 lambda 配置为可以访问 Internet,然后使用 Node 的 https.request 和以下选项:
const options = {
hostname: 'XXXXXXXXXX.execute-api.us-east-1.amazonaws.com',
port: 443,
path: '/path/to/my/endpoint',
method: 'POST',
headers: {
'Authorization': `Bearer ${s3cretN0tSt0r3d1nTheC0de}`,
}
};
这很好用。但现在我想知道我是否应该 改为让小 lambda 直接使用 AWS SDK 调用 API 端点。我见过其他的 S.O.关于从 lambdas 调用 lambdas 的问题,但我没有看到目标 lambda 是多端点 Web 服务的任何示例。我发现的所有示例都使用了new AWS.Lambda({...}),然后使用参数调用了invokeFunction。
有没有办法将事件传递给目标 lambda,其中包含我要调用的特定端点的路径? (以及身份验证标头等)* * * * 或 * * * * 这只是一个非常愚蠢的想法,因为我已经有工作代码了吗?我的想法是,直接 SDK lambda 调用可能(这是真的吗?)绕过 API 网关并且更便宜,但是,直接通过 API 网关访问端点更适合记录。而且由于定期 lambda 每天运行一次,所以它可能还是免费的。
如果我现在拥有的是最好的,那是一个很好的答案。 lambda 调用答案也很酷,因为我找不到目标 lambda 具有多个 https 端点的好例子。
【问题讨论】:
-
定期 Lambda 的目的是什么?仅仅是为了减少冷启动还是有一些商业目的(例如 cron 任务)?
-
这是一个 cron.... 端点之一进行了一些分析计算。是的,“做 cron 事情的小 lambda”本可以访问(Aurora)数据库,但现在的情况是,API 是目前位于数据库前面的唯一东西。
标签: amazon-web-services aws-lambda