2015-10-14 2 views
1

Я пытаюсь использовать созданные на заказ изображения для запуска моего конвейера потоков данных Google. Учитывая информацию от https://cloud.google.com/compute/docs/reference/latest/images Я тестировал следующие фрагменты кода:Как установить diskSourceImage в конвейере потока данных Google

DataflowPipelineOptions options = PipelineOptionsFactory.create().as(DataflowPipelineOptions.class); 
... 
options.setDiskSourceImage("ubuntu-1504-vivid-v20150911"); 
options.setDiskSourceImage("projects/ubuntu-os-cloud/global/images/ubuntu-1504-vivid-v20150911"); 
options.setDiskSourceImage("https://www.googleapis.com/compute/beta/projects/ubuntu-os-cloud/global/images/ubuntu-1504-vivid-v20150911"); 

все вышеперечисленные попыток привели к следующей ошибке в моем трубопроводе:

(b9c7b66a676906f4): Unable to create VMs. Causes: (b9c7b66a67690aef): Error: Message: Invalid value for field 'resource.disks[0].initializeParams.sourceImage': '[edited]'. Must be the URL to a Compute resource of the correct type HTTP Code: 400

+1

Фактически только что понял, что он работает с псевдонимом изображения (задается командой 'gcloud compute images list'. Это не решает проблему для пользовательских изображений, поскольку похоже, что невозможно установить псевдоним: https: //cloud.google.com/sdk/gcloud/reference/compute/images/create – gamars

+2

Исправлена ​​ли эта проблема, если вы заменили «бета-версию» на «v1» в URL-адресе? –

+0

@SamMcVeety ДА! Это сделало трюк. скопировал URL-адрес с консоли, но изменение бета-версии на v1 устраняет проблему. Я могу запускать свои пользовательские изображения для потока данных. Спасибо. Напишите это как ответ, и я подтвержу его. – gamars

ответ

0

Использование образа диска с помощью Dataflow не является жизнеспособным вариантом. Флаг diskSourceImage устарел и будет удален в будущей версии SDK. Причина, по которой он больше не поддерживается, заключается в том, что служба Dataflow полагается на версированные ресурсы в образе VM. Поэтому Dataflow необходимо контролировать образ VM, чтобы мы могли его обновить по мере необходимости. Если пользователи предоставляют свои собственные изображения, мы не можем синхронизировать их с требованиями службы потока данных.

Если ваш пользовательский образ виртуальной машины основан на изображении потока данных, вы сможете выполнять задания с использованием этого пользовательского изображения до следующей версии образа виртуальной машины Dataflow. Не существует разумного способа, с помощью которого вы могли бы синхронизировать свои пользовательские изображения с изображениями VM в Dataflow, чтобы вы могли сохранить это.

Если вы хотите настроить изображение виртуальной машины, пожалуйста, сообщите нам, почему (например, отправьте нам письмо по адресу [email protected]google.com), чтобы мы могли предложить альтернативное решение или подумать о поддержке вашего варианта использования в будущее.

1

Там очень тонкий вопрос с setDiskSourceImage - он использует «бета» вместо текущей версии «v1» для Compute Engine. Если вы попробуете следующее, оно должно работать:

options.setDiskSourceImage("https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-1504-vivid-v20150911"); 
+0

Отлично, и я могу подтвердить, что он также работает с пользовательскими изображениями. – gamars

Смежные вопросы