python数据流作业在部署后使用requirements_file参数后不接受来自pubsub订阅的消息

Posted

技术标签:

【中文标题】python数据流作业在部署后使用requirements_file参数后不接受来自pubsub订阅的消息【英文标题】:python dataflow job not accepting messages from a pubsub subcription after using requirements_file parameter after while deploying 【发布时间】:2021-01-11 22:36:48 【问题描述】:

我想在写入大查询之前使用数据流作业加密来自 pubsub 订阅的消息。我正在使用 pycryptodome==3.9.8, cryptography==3.1 python 库来做到这一点。

在数据流作业中,我使用以下两个导入

从加密导入随机 从 Crypto.Cipher 导入 AES

当我尝试在没有 --requirements_file 参数的情况下部署数据流管道时。它部署完美,但在向主题发布消息后会引发错误

ModuleNotFoundError: No module named 'Crypto' [while running 'generatedPtransform-81']

之后,我尝试使用 --requirements_file requirements.txt 标志再次部署管道。 数据流管道部署正常,但现在它不接受来自订阅的任何消息。数据流作业中没有错误,因为它没有获取消息。

我错过了什么吗?由于没有日志,所以很难识别。

【问题讨论】:

我在使用 requirements_file 时也遇到过同样的情况。一种解决方法是使用 setup.py issues.apache.org/jira/browse/BEAM-10115 ***.com/a/62046774/4756279 【参考方案1】:

重新发布@peter-kim 的评论作为答案:使用setup.py 文件,您应该能够做您需要的事情。见Dataflow fails when I add requirements.txt [Python]

【讨论】:

以上是关于python数据流作业在部署后使用requirements_file参数后不接受来自pubsub订阅的消息的主要内容,如果未能解决你的问题,请参考以下文章

Gitlab:构建后如何在后续作业中使用工件

在 Azure Devops 中部署管道后暂存槽的 Web 作业未停止

作业 安装部署

使用作为守护任务运行的延迟作业部署 Rails 应用程序

在 YARN 集群上部署 pyspark 作业时出现 FileNotFoundException

在 GCP 存储桶中创建对象时触发通过 Cloud Run 部署的数据流作业