Можем ли мы запустить задание Dataflow (луч Apache), используя шаблон проекта B из проекта A в GCP

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

У меня есть шаблон потока данных, созданный в проекте 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....

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


person Pankaj Bajpai    schedule 14.01.2020    source источник
comment
Может быть, вы могли бы gcloud dataflow jobs decribe задание потока данных и запустить его в другом проекте?   -  person Frederik Bode    schedule 14.01.2020


Ответы (1)


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

Если нам нужно запустить задание потока данных из проекта 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
person Pankaj Bajpai    schedule 15.01.2020