为什么使用“--requirements_file”将依赖项上传到 GCS?

Why using "--requirements_file" uploads dependencies onto GCS?

我目前正在使用这些参数生成模板:

        --runner DataflowRunner \
        --requirements_file requirements.txt \
        --project ${GOOGLE_PROJECT_ID} \
        --output ${GENERATED_FILES_PATH}/staging \
        --staging_location=${GENERATED_FILES_PATH}/staging \
        --temp_location=${GENERATED_FILES_PATH}/temp \
        --template_location=${GENERATED_FILES_PATH}/templates/calculation-template \

并且 SDK 正在将 requirements.txt 内指定的依赖项上传到暂存部分内的 GCS。我不明白...对我来说,使用这种文件将允许工作人员直接从官方 pip 注册表中提取依赖项,而不是从我的 GCS 中提取依赖项,对吗?

这使得 运行 这个命令很长,因为它需要上传包:/

任何解释为什么会发生?也许我做错了什么?

谢谢,

我相信这样做是为了使 Dataflow worker 启动过程更加高效和一致(无论是在初始阶段还是在自动缩放时)。否则,每次启动 Dataflow worker 时,该 worker 都必须直接连接到 PyPI 以查找最新的匹配版本的依赖项。取而代之的是,一组依赖项在管道启动时暂存,并在整个管道执行过程中始终安装在工作人员中。