如何将文件从docker镜像ecr复制到aws lambda

问题描述 投票:0回答:1

我正在使用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/ 。有没有办法解决这个问题?

docker aws-lambda jmeter amazon-ecs amazon-ecr
1个回答
1
投票

在 ECS 任务完成运行之前,Lambda 函数调用实际上将退出并不再存在。 Lambda 函数调用可能会在 ECS 任务进入“RUNNING”状态之前退出。

Lambda 函数将没有机会访问 ECS 任务生成的输出文件。

您需要重新考虑如何处理这些输出文件。我建议您的 ECS 任务将输出文件复制到 S3 存储桶,作为退出前执行的最后一件事。然后,您可以拥有另一个 Lambda 函数,该函数在上传新对象时由 S3 存储桶触发,然后该函数可以从 S3 读取文件,并在此时对该文件执行您需要执行的任何操作。

© www.soinside.com 2019 - 2024. All rights reserved.