【以下的问题经过翻译处理】 大家好!
这是我第一次尝试使用docker化应用程序,我想在Fargate上部署一个cron任务,以运行docker镜像。
一些背景:
docker镜像通过CI / CD管道从我的gitlab帐户发布到ECR。该镜像是一个slim伯斯特python,我利用docker in docker构建该镜像。推到ECR成功。
镜像的基础知识是:
1.创建一个带有requirements.txt中指定库的python env
2.将库导入到main.py中以及func.py文件中的所有用户定义的函数
main.py运行一系列DDL sql和DML sql,通过snowflake python SDK传递到我们的snowflake 数据准备Stage。然后,将Stage上的数据循环发送到外部API(SmartyStreets),并将GET结果发送回snowflake(基本上标准化自由文本地址字段是应用程序的重点)。
我的目标是:每天一次通过计划的Fargate任务运行它。
没有任何内容发送到snowflake。我确定在运行docker容器的任务方面,我可能遗漏了一些非常愚蠢的事情,但找不到它。查看了许多YouTube上的教程,但它们似乎
我的问题是:我定义了一个 fargate 集群,我有一个任务定义,并创建了一个计划规则(EventBridge),但没有任何反应。当我尝试手动运行任务定义时,没有任何反应。该任务显示其处于挂起状态然后消失,并且也没有给出任何日志(告诉我某些内容失败),并且在我创建的事件桥规则的计划时间内没有任何反应。在 SQL DML 上,我有一个将此过程记录到snowflake表的开始|结束时间,这表明没有向snowflake发送任何内容。我敢肯定,在获取运行 docker 容器的任务时,我缺少一些非常愚蠢的东西,但没有找到它。在 youtube 上查看了很多教程,但它们似乎都是针对 Fargate *服务 *(通常是flask)的网络应用程序驱动的,而不是像我试图做的那样按计划进行的简单突发 ETL 作业。
关于如何将这一切联系在一起的任何示例???
添加了注释 我很确定我选择的子网的 IP 在我们的snowflake上被列入白名单,但我预计 API 作为其外部会失败。但此时我只想触发 docker 容器/