Можем ли мы запустить задание Dataflow (Apache beam), используя шаблон проекта B из проекта A в GCP - PullRequest
0 голосов
/ 14 января 2020

Я столкнулся с одной проблемой, и мне нужна помощь для того же Это связано с GCP Dataflow (Apache Beam).

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

Я ищу решение для запуска шаблона потока данных проекта B из другого проекта A с использованием учетной записи службы, определенной в проекте A (sa-A@PROJECT-A). sa-A@PROJECT-A уже имеет необходимые разрешения в проекте B.

Я уже пытался использовать команду gcloud ниже

gcloud dataflow jobs run BigQueryToBigQuery \
    --gcs-location gs://{GCS bucket}/templates/BigQueryToBigQuery \
    --parameters query=bigQueryTableName={projectID}:{dataset}.{table} \
    --region=us-east1

, где gcs-location - это местоположение шаблона присутствует в проекте B.

Когда я использую служебную учетную запись проекта A, она запускает задание в проекте A, но не в проекте B. Когда я запускаю его с использованием служебной учетной записи проекта B, возникает ошибка Current user cannot act as service account... .

Любая помощь будет оценена.

1 Ответ

2 голосов
/ 16 января 2020

Я нашел решение, просто подумал опубликовать здесь, так что это будет полезно и для других людей.

Если нам нужно запустить задание потока данных из проекта A и запустить его в проекте B, тогда необходимо использовать вышеуказанную команду с флагом --project. Полная команда будет:

gcloud dataflow jobs run BigQueryToBigQuery \
    --gcs-location gs://{GCS_bucket}/templates/BigQueryToBigQuery \
    --parameters query=bigQueryTableName={projectA_ID}:{dataset}.{table} \
    --region=us-east1 \
    --project=projectB_ID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...