Aws lambda 通过lambda运行测试(无服务器)

Aws lambda 通过lambda运行测试(无服务器),aws-lambda,architecture,google-cloud-functions,serverless,Aws Lambda,Architecture,Google Cloud Functions,Serverless,假设我有一个代码片段和测试来覆盖代码(这里的jest只是一个示例) 可能吗 将测试定义为lambda/cloud函数: const sum = require('./sum'); test('adds 1 + 2 to equal 3', () => { expect(sum(1, 2)).toBe(3); }); 而被剪断的代码则被放在s3/gcp云存储上: function sum(a, b) { return a + b; } module.exports = sum;

假设我有一个代码片段和测试来覆盖代码(这里的jest只是一个示例)

可能吗

将测试定义为lambda/cloud函数:

const sum = require('./sum');

test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});
而被剪断的代码则被放在s3/gcp云存储上:

function sum(a, b) {
  return a + b;
}
module.exports = sum;
函数将侦听事件(文件存储在特定文件夹中)并执行测试代码

输出将存储回s3/GCP云存储上的文件,或通过API发送

我的问题:是否可以使用无服务器(lambda/cloud函数)实现此场景,以及从何处开始。(任何示例、链接、材料)


谢谢。

据我所知,您的函数将从存储桶中获取代码。这将引入更多的延迟,因为代码是在启动时加载的,从其他源(如bucket)动态获取代码将增加额外的延迟,所以我不推荐这样做。在无服务器上,您应该始终确保请求尽可能快地完成

有可能吗?是的,正如我从其他人那里问到的,Javascript是动态的,足以做到这一点。但是,请再次注意后果。除非你有一个非常具体的用例,否则如果我是你,这不是一个非常理想的方法

然而,以下是我想到的。您可以尝试使用客户端库从云存储中删除代码,并将其置于
/tmp

请注意,这是您可以访问的唯一目录,它将存储在内存中


然后从无服务器函数加载下载的资源。我还没有完全测试过如何做,但这会向您展示如何做。

您好,我只是想把事情弄清楚一点。您的“特定文件夹”存储在哪里,是否在存储桶中?什么样的事件会触发函数?这里有一个链接,可以了解更多关于云函数中的触发器和事件是的,在存储桶中。我认为这是最简单的方法,但是如果有更好的用例选择,请分享。