我们正在尝试在计划在 linux 服务器上运行的 R 脚本中对 BigQuery 进行身份验证。我们有:
bigrquery::bq_auth(path = '~/path-to/credentials/our-creds.json')
当我在 R 中本地运行它时,我得到了这个提示
The bigrquery package is requesting access to your Google account.
Select a pre-authorised account or enter '0' to obtain a new token.
Press Esc/Ctrl + C to cancel.
1: myemail@gmail.com
Selection:
当我们通过 在我们的 linux 服务器上运行它时Rscript our_script.R
,我们得到以下错误:
Error: Can't get Google credentials.
Are you running bigrquery in a non-interactive session? Consider:
* Call `bq_auth()` directly with all necessary specifics.
Execution halted
当我们在我们的 linux 服务器上运行它时,通过R
打开 R,然后手动运行代码行,我们得到:
> bigrquery::bq_auth(path = '~/path-to/credentials/our-creds.json')
Waiting for authentication in browser...
Press Esc/Ctrl + C to abort
并且因为我们没有浏览器进行身份验证(我们通过 SSH 连接到位于 GCP 上的 linux 服务器),所以终端挂在这里......
怎样才能在服务器上成功认证,这样Rscript out_script.R
才能成功运行呢?
编辑:我们服务器上的信息:
让我知道我是否可以分享其他信息来帮助解决这个问题。我们还尝试添加myemail@gmail.com
到 bigrquery 的email
参数,但这并没有解决问题。我看到有一个token
参数,也许我们可以在某个地方手动添加一个令牌?这一切都非常令人沮丧,因为我认为使用服务帐户密钥应该可以解决此问题,但我们指向具有 bigquery 权限的有效服务帐户密钥,但仍然无法在服务器上进行身份验证。