Ограничения изображения с загрузочным образом работников потока данных

#google-cloud-dataflow

#google-облако-поток данных

Вопрос:

Я попытался настроить потоковое задание потока данных, используя шаблон «Pub / Sub topic для BigQuery». В моей организации действует политика ограничения изображения. Согласно документации по ограничениям изображения (https://cloud.google.com/compute/docs/images/restricting-image-access#limitations ), на любой образ, используемый службой GCP, эти ограничения влиять не должны. Однако рабочие потоки данных не запускаются, ссылаясь на ограничения изображения в качестве причины. Каков правильный способ установить ограничения изображения в таком сценарии?

Вот как выглядела ошибка —

    {
 insertId: "qnh47fd17tx"  
 labels: {
  dataflow.googleapis.com/job_id: "job_id"   
  dataflow.googleapis.com/job_name: "job_name"   
  dataflow.googleapis.com/region: "us-central1"   
 }
 logName: "projects/app/logs/dataflow.googleapis.com/job-message"  
 receiveTimestamp: ""  
 resource: {
  labels: {
   job_id: ""    
   job_name: ""    
   project_id: ""    
   region: "us-central1"    
   step_id: ""    
  }
  type: "dataflow_step"   
 }
 severity: "ERROR"  
 textPayload: "Workflow failed. Causes: Step "setup_resource_disks_harness50" failed., Step setup_resource_disks_harness50: Set up of resource disks_harness failed, Unable to create data disk(s)., Unknown error in operation 'operation-1600084247324-5af44a52c2574-7f195f5c-376e0b61': [CONDITION_NOT_MET] 'Constraint constraints/compute.trustedImageProjects violated for project getmega-app. Use of images from project dataflow-service-producer-prod is prohibited.'."  
 timestamp: ""  
}
  

Комментарии:

1. Для дальнейшего изучения, можете ли вы вставить ошибку, показанную в журналах, сюда?

2. Включен журнал ошибок @AlexandreMoraes

Ответ №1:

Поскольку в вашем проекте используются ограничения образа, у вас также настроена политика доверенного образа. Таким образом, запускать виртуальные машины в вашей организации разрешается только из этого проекта.

Однако такие службы, как Google Cloud Dataflow и Datalab, используют изображения из других проектов Google для создания виртуальных машин в вашем VPC, что означает, что вы можете столкнуться с ошибкой при запуске задания с шаблоном потока данных. Это можно легко преодолеть, добавив несколько проектов к вашим надежным образам проектов. Следующим образом:

Использование gcloud,

1 — Получите существующую политику для вашего проекта

 gcloud beta resource-manager org-policies describe 
    compute.trustedImageProjects --effective 
    --project [PROJECT_ID] > policy.yaml
  

2 — Откройте файл policy.yaml в текстовом редакторе. Вы должны увидеть файл, как показано ниже:

 constraint: constraints/compute.trustedImageProjects
listPolicy:
  allowedValues:
    - projects/debian-cloud
    - projects/cos-cloud
  deniedValues:
    - projects/unwanted-images
  

3 — Измените ограничение compute.trustedImageProjects, добавив следующие проекты:

 projects/cos-cloud
projects/dataflow-service-producer-prod
projects/serverless-vpc-access-images
projects/windows-cloud 
  

Обратите внимание, что я добавил все проекты, которые службы Google могут использовать для повторного поиска / запуска служб. В вашем конкретном случае было бы достаточно просто добавить projects/dataflow-service-producer-prod .

4 — Примените файл policy.yaml к вашему проекту.

 gcloud beta resource-manager org-policies set-policy 
--project [PROJECT_ID] policy.yaml
  

После выполнения этих действий вы сможете запустить шаблонное задание потока данных. Наконец, вы можете использовать консоль для добавления проектов, указанных на 3-м шаге, как описано в документации.

Примечание: будьте осторожны при совместном использовании ваших журналов, которые могут содержать личную информацию, такую как идентификатор проекта или идентификатор задания. Эта информация не должна разглашаться публично.