#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-м шаге, как описано в документации.
Примечание: будьте осторожны при совместном использовании ваших журналов, которые могут содержать личную информацию, такую как идентификатор проекта или идентификатор задания. Эта информация не должна разглашаться публично.