假设我有一个代码片段和覆盖代码的测试(这里的玩笑只是一个例子)。
有没有可能
将测试定义为 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/云函数)来实现这个场景,以及从哪里开始。 (任何示例、链接、材料)。
谢谢。
答案 0 :(得分:1)
据我所知,您的函数将从存储桶中获取代码。这会引入更多延迟,因为代码是在启动时加载的,并且从其他来源(如存储桶)动态获取代码会增加额外的延迟,因此我不推荐它。在无服务器上,您应该始终致力于尽快完成您的请求。
可以吗?是的,因为我从其他人那里问过,并说 Javascript 的动态性足以做到这一点。但话又说回来,注意后果。除非你有一个非常具体的用例,否则如果我是你,这不是一个非常理想的方法。
但是,这就是我想到的。您可以尝试使用客户端库从 Cloud Storage download 您的代码并将其放在 /tmp
上:
请注意,这是您可以write files 的唯一目录,它会将其存储在内存中。
然后从您的无服务器功能加载下载的资源。我还没有完全测试过如何做到这一点,但是 here's a thread 向您展示了如何。