我们可以使用 GCP 中项目 A 的项目 B 模板触发数据流作业(Apache Beam)吗
Can we trigger Dataflow job(Apache beam) using template of project B from project A in GCP
我遇到了一个问题,需要帮助。它与 GCP 数据流 (Apache Beam) 有关。
我在项目 B 中创建了一个数据流模板,如果我 运行 使用个人电子邮件或服务帐户,一切正常。
我正在使用项目 A (sa-A@PROJECT-A
) 中定义的服务帐户从其他项目 A 中寻找 运行 项目 B 的数据流模板的解决方案。 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...
。
我们将不胜感激。
我找到了解决方案,只是想在这里 post 这样对其他人也有帮助。
如果我们需要从项目 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
我遇到了一个问题,需要帮助。它与 GCP 数据流 (Apache Beam) 有关。
我在项目 B 中创建了一个数据流模板,如果我 运行 使用个人电子邮件或服务帐户,一切正常。
我正在使用项目 A (sa-A@PROJECT-A
) 中定义的服务帐户从其他项目 A 中寻找 运行 项目 B 的数据流模板的解决方案。 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...
。
我们将不胜感激。
我找到了解决方案,只是想在这里 post 这样对其他人也有帮助。
如果我们需要从项目 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