我正在使用jmeter + ECS(docker运行时)。我通过 cdk 部署将 docker 镜像部署到 ECR 并使用 cli 运行 ENTRYPOINT ["./entrypoint.sh"]
jmeter -n -t JMeter.jmx -l test-report.xml
我使用 lambda 来触发任务定义,下面是 lambda 中的示例代码。
const handler = async (event, context) => {
const ecs = new ECS();
await ecs.runTask({
// code run
}).promise();
return;}
module.exports = { handler };
我想将文件 test-report.xml 复制到 lambda 的文件夹 /tmp/ 。有没有办法解决这个问题?
在 ECS 任务完成运行之前,Lambda 函数调用实际上将退出并不再存在。 Lambda 函数调用可能会在 ECS 任务进入“RUNNING”状态之前退出。
Lambda 函数将没有机会访问 ECS 任务生成的输出文件。
您需要重新考虑如何处理这些输出文件。我建议您的 ECS 任务将输出文件复制到 S3 存储桶,作为退出前执行的最后一件事。然后,您可以拥有另一个 Lambda 函数,该函数在上传新对象时由 S3 存储桶触发,然后该函数可以从 S3 读取文件,并在此时对该文件执行您需要执行的任何操作。