我想将数据从项目A中的Cloud Spanner导出为项目B中的GCS作为AVRO。如果我为项目B中的服务帐户提供了对项目A中的spanner.read访问权限,我是否可以使用模板Cloud_Spanner_to_GCS_Avro从项目B运行数据流作业,并写入项目B中的GCS?
我已经在控制台和以下命令中尝试过:
gcloud dataflow jobs run my_job_name
--gcs-location='gs://dataflow-emplates/latest/Cloud_Spanner_to_GCS_Avro'
--region=my_region
--parameters='instanceId=name_of_instance,databaseId=databaseid,outputDir=my_bucket_url
--service-account-email=my_serviceaccount_email
我不确定如何指定Spanner实例的projectId。使用项目B中的此命令,它将查找项目B:s Spanner,并且找不到实例和数据库。
我尝试设置:instanceId = projects / id_of_project_A / instances /name_of_instance,但它不是有效的输入
是的,您必须在dataflow service account上授予正确的授权
我建议您使用“用户管理的服务帐户”。默认帐户是Compute Engine默认服务帐户,该帐户在主机项目上具有editor
角色,授权过多....