首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将原木从远程调用的、文件化的芹菜工人返回到气流容器

如何将原木从远程调用的、文件化的芹菜工人返回到气流容器
EN

Stack Overflow用户
提问于 2022-06-08 13:03:09
回答 1查看 256关注 0票数 1

我正在从事一个Dockerized /Django项目,其中包括一个用于芹菜工人的容器,我一直在将现成的气流码头容器集成到其中。

我已经在预先存在的容器中成功地运行了芹菜任务,方法是使用指定的redis代理和后端实例化芹菜应用程序,并通过send_task进行远程调用;然而,芹菜任务执行的日志记录都不能返回到气流日志。

最初,作为一个概念的证明,因为我对气流完全陌生,我把它设置为运行相同的代码,方法是将它暴露在气流容器中,并创建气流任务在气流芹菜工人容器上运行它。这确实导致捕获了所有的日志记录,但这绝对不是我们希望它架构的方式,因为这使得气流容器由于django项目的依赖项的重复而变得非常胖。

文档中说,“大多数任务处理程序在任务完成后发送日志”,但是我无法找到更多的细节,这些细节可能会给我提供在我的情况下如何启用同样的功能的线索。

在远程执行芹菜任务时,有没有办法将这些日志送回气流中?

EN

Stack Overflow用户

发布于 2022-09-16 10:22:23

而不是“返回日志到气流”,一个容易实现的替代方案(因为气流本身支持它)是激活远程日志记录。这样,来自所有工作人员的所有日志都将结束,例如在S3上,而way服务器将自动获取它们。

以下说明如何使用S3后端配置远程日志记录。其他选项(例如,Elastic)也可以类似地实现。

  1. remote_logging中将True设置为airflow.cfg
  2. 建立气流连接URI。这个例子来自官方文档是特别有用的海事组织。一个人最终应该拥有这样的东西:
代码语言:javascript
复制
aws://AKIAIOSFODNN7EXAMPLE:wJalrXUtnFEMI%2FK7MDENG%2FbPxRfiCYEXAMPLEKEY@/? 
endpoint_url=http%3A%2F%2Fs3%3A4566%2F

如果需要的话,也可以通过webserver创建连接器。

  1. 使连接URI可用于气流。这样做的一种方法是确保环境变量AIRFLOW_CONN_{YOUR_CONNECTION_NAME}可用。连接名REMOTE_LOGS_S3示例
代码语言:javascript
复制
export AIRFLOW_CONN_REMOTE_LOGS_S3=aws://AKIAIOSFODNN7EXAMPLE:wJalrXUtnFEMI%2FK7MDENG%2FbPxRfiCYEXAMPLEKEY@/?endpoint_url=http%3A%2F%2Fs3%3A4566%2F
  1. remote_log_conn_id设置为airflow.cfg中的连接名称(例如REMOTE_LOGS_S3)
  2. remote_base_log_folderairflow.cfg中设置为所需的桶/前缀。示例:
代码语言:javascript
复制
remote_base_log_folder = s3://my_bucket_name/my/prefix

这个相关SO更深入地涉及远程日志记录。

如果需要调试,在本地(即工作人员内部)查看任何工作日志应该会有所帮助。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72546194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档