我想将“bq”命令之外的服务帐户信息作为参数提供,以便灵活地更改其身份验证。我将一些选项传递给“bq”命令,例如:

$ bq load --service_account=<my_service_account>
          --service_account_credential_file=<credential_output>
          --service_account_private_key_file=<path_to_pem>
          --project_id=<my_project>
          <dataset>.<table> <localfile> <schema>

在使用我的帐户配置gsutil后,它在我的本地PC上运行良好,但是即使提供了服务帐户信息,“bq”命令在配置“gcloud”或“gsutil”之前似乎也不接受任何命令:
> You do not currently have an active account selected.
> Please run:
>
> $ gcloud auth login
>
> to obtain new credentials, or if you have already logged in with a different account:
>
> $ gcloud config set account ACCOUNT
>
> to select an already authenticated account to use.

是否可以通过“bq”实现此目的?我尝试导出GOOGLE_APPLICATION_CREDENTIALS环境,但似乎无法正常工作。

先感谢您。

最佳答案

对于“bq”中的身份验证,有“init”命令。但是,即使您运行:

bq init

系统返回以下警告:
The "init" command is no longer needed with the Cloud SDK.
To authenticate, run gcloud auth.

因此,似乎不存在不使用“gcloud”而仅从“bq”进行认证的推荐方法。

10-02 07:07