Google cloud platform 启动Dataflow Flex模板时图像引用不正确

Google cloud platform 启动Dataflow Flex模板时图像引用不正确,google-cloud-platform,google-cloud-dataflow,Google Cloud Platform,Google Cloud Dataflow,我们正在使用Dataflow Flex模板,并遵循本指南()来准备和启动作业。这在我们的环境中起作用。但是,当我SSH到Dataflow VM上并运行docker ps时,我看到它引用的是一个不同的docker映像,与我们在模板中指定的映像(绿色下划线): 我从中启动的模板如下所示,作业是使用gcloud beta dataflow flex template run创建的: { "image": "gcr.io/<MY PROJECT ID>/sam

我们正在使用Dataflow Flex模板,并遵循本指南()来准备和启动作业。这在我们的环境中起作用。但是,当我SSH到Dataflow VM上并运行
docker ps
时,我看到它引用的是一个不同的docker映像,与我们在模板中指定的映像(绿色下划线):

我从中启动的模板如下所示,作业是使用
gcloud beta dataflow flex template run
创建的:

{
"image": "gcr.io/<MY PROJECT ID>/samples/dataflow/streaming-beam-sql:latest",
"metadata": {
    "description": "An Apache Beam streaming pipeline that reads JSON encoded messages from Pub/Sub, uses Beam SQL to transform the message data, and writes the results to a BigQuery",
    "name": "Streaming Beam SQL",
    "parameters": [
        {
            "helpText": "Pub/Sub subscription to read from.",
            "label": "Pub/Sub input subscription.",
            "name": "inputSubscription",
            "regexes": [
                ".*"
            ]
        },
        {
            "helpText": "BigQuery table spec to write to, in the form 'project:dataset.table'.",
            "is_optional": true,
            "label": "BigQuery output table",
            "name": "outputTable",
            "regexes": [
                "[^:]+:[^.]+[.].+"
            ]
        }
    ]
},
"sdkInfo": {
    "language": "JAVA"
}
}
{
“图像”:“gcr.io//samples/dataflow/streaming beam sql:latest”,
“元数据”:{
“描述”:“一个Apache Beam流媒体管道,从发布/订阅中读取JSON编码的消息,使用Beam SQL转换消息数据,并将结果写入BigQuery”,
“名称”:“流式波束SQL”,
“参数”:[
{
“helpText”:“要从中读取的发布/订阅。”,
“标签”:“发布/订阅输入订阅”,
“名称”:“inputSubscription”,
“正则表达式”:[
".*"
]
},
{
“helpText”:“要写入的BigQuery表规范,格式为'project:dataset.table'。”,
“是可选的”:是,
“标签”:“BigQuery输出表”,
“名称”:“可输出”,
“正则表达式”:[
"[^:]+:[^.]+[.].+"
]
}
]
},
“sdkInfo”:{
“语言”:“JAVA”
}
}
因此我希望,
docker ps
的输出将
gcr.io//samples/dataflow/streaming beam sql
显示为数据流上的图像。当我从GCR启动映像以在GCE实例上运行时,我在运行
docker ps
时得到以下输出:

我应该看到我在Dataflow VM上的Dataflow模板中引用的映像的名称吗?还是我在什么地方漏了一步


谢谢

TLDR;您正在查找工作虚拟机,而不是启动器虚拟机

对于flex模板,当您运行作业时,它首先创建一个launcher VM,从中提取容器并运行它以生成作业图。此步骤完成后,此VM将被销毁。然后,worker VM开始实际运行生成的作业图。在worker VM中,不需要您的容器。容器仅用于根据传递的参数生成作业图


在您的情况下,您正在尝试在worker VM中搜索您的映像。launcher VM的寿命很短,以launcher-*************************开始。如果您使用SSH连接到该VM并执行
docker ps
操作,您将能够看到您的容器映像。

是否有方法为工人指定docker映像?我希望在Docker映像中包含重文件(ML模型),这样我的ParDo就可以从磁盘读取它