繁体   English   中英

ECS容器和Docker

[英]ECS Container and Docker

我一直坚持这一点的时间最长:我将 Python 代码部署为 dockerized 容器。

我在 Python CDK 中做这一切。

这是我创建集群的方式

vpc_test = _ec2.Vpc.from_lookup(self, "VPC",
                      vpc_id= "vpc-6****"
                )
    #Setting up the container to run the job
    cluster = _ecs.Cluster(self, "ClusterToGetFile",
                           vpc=vpc_test
                           )
    task_definition = _ecs.FargateTaskDefinition(self, "TaskDefinition",
                                                 cpu=2048,
                                                 memory_limit_mib=4096
                                                 )
    task_definition.add_container("getFileTask",

                           image = _ecs.ContainerImage.from_asset(directory="assets", file="Dockerfile-ecs-file-download"))

这是-Dockerfile-ecs-file-download

FROM python:3.9
WORKDIR /usr/app/src
COPY marketo-ecs-get-file/get_ecs_file_marketo.py ./
COPY marketo-ecs-get-file/requirements.txt ./
COPY common_functions ./
RUN  pip3 install -r requirements.txt  --no-cache
CMD ["python" , "./get_ecs_file_marketo.py"]

首先,我要做的就是手动运行任务(部署)。

我在 get_ecs_file_marketo.py.py 文件中的所有内容是

import logging
logging.info("ECS Container has stareted. ")

但是,当我部署任务时,我收到此错误:

Stopped reason
Essential container in task exited

我的计划是使用 ecs run 任务作为步骤 function 的一部分。 所以当 Lambda 处理完一些数据,需要做一个数据拉取时,它会调用这个容器的 RunTask。

理想情况下,我希望 Lambda 在步骤 function 中完成所有操作,但是,时间限制导致 Z945F3FC449518A73B9F5F32868DB466C3 在下载完整文件并将其推送到 S 之前死亡。 这将是一个常规练习,但是,需要预先安装 lambda,因为该作业需要对请求进行排队,并在 ecs/容器可以 go 并开始下载文件之前继续检查文件状态。

任何反馈表示赞赏。 谢谢。

这似乎完全按照我的预期工作。 您的脚本所做的只是打印一条日志消息并退出。

您并没有真正收到错误消息,只是通知您脚本停止运行(因为它已完成)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM