在教授计算机科学时,学生将他们的代码提交到我们的服务器,然后我们编译并运行单元测试。类似于 Codeforces、Codewars 和 HackerRank。
我们应该如何为此配置服务器?每次提交代码时启动一个新的最小 VM?是否有适合此目的的 VM 系统和 Linux 发行版?
或者是否有其他更有效的机制来实现此目的?是否可以配置用户帐户来安全地处理此问题?我们很乐意定期回收服务器。
我们不受任何数据中心或服务的约束。如果可行的话,我们很乐意使用 AWS Lambda 之类的东西。
答案1
AWS Lambda 最近推出了一项代码签名功能,以确认代码未经修改且来自受信任的发布者:https://aws.amazon.com/blogs/aws/new-code-signing-a-trust-and-integrity-control-for-aws-lambda/
您可以在 Lambda 之上添加一层来获取学生签名的代码,使用它创建一个 Lambda 函数,然后调用该函数来运行测试。
编辑:Lambda 将在沙盒容器中运行代码,并且 Lambda 函数的配置本身可以由管理员强制执行。