Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VM实例Google Cloud中的Python/Bigquery之间创建连接(凭据文件有问题)_Python_Google Cloud Platform_Google Bigquery_Virtual Machine_Credentials - Fatal编程技术网

在VM实例Google Cloud中的Python/Bigquery之间创建连接(凭据文件有问题)

在VM实例Google Cloud中的Python/Bigquery之间创建连接(凭据文件有问题),python,google-cloud-platform,google-bigquery,virtual-machine,credentials,Python,Google Cloud Platform,Google Bigquery,Virtual Machine,Credentials,我正在创建一个应该在VM实例(Google Cloud Plataform)中运行的脚本,为此,我从这个VM使用SSH(Linux)。这段代码将python与Bigquery连接起来 我的“凭据”有问题,当我在本地计算机上运行时,我的凭据位于本地目录下的此文件中,代码将访问此文件并运行服务。但是当我在SSH(VM实例)中运行时,VM找不到该文件,因为它不在VM目录中 我该怎么解决这个问题?我想我需要把这个文件放在VM实例中,并采用新的路径,但我不知道如何 解决问题的最佳方法是不要将服务帐户文件

我正在创建一个应该在VM实例(Google Cloud Plataform)中运行的脚本,为此,我从这个VM使用SSH(Linux)。这段代码将python与Bigquery连接起来

我的“凭据”有问题,当我在本地计算机上运行时,我的凭据位于本地目录下的此文件中,代码将访问此文件并运行服务。但是当我在SSH(VM实例)中运行时,VM找不到该文件,因为它不在VM目录中

我该怎么解决这个问题?我想我需要把这个文件放在VM实例中,并采用新的路径,但我不知道如何



解决问题的最佳方法是不要将服务帐户文件的路径保留在源代码中

  • 要在本地访问Bigquery,您需要设置
    GOOGLE\u APPLICATION\u CREDENTIALS
    环境变量,其值等于服务帐户文件的路径
  • 最重要的是,您不必在GCP VM中执行任何操作,因为bigquery客户端库可以自动从计算引擎实例的元数据中获取凭据。您只需要为计算引擎服务帐户提供适当的IAM权限
设置
GOOGLE\u APPLICATION\u CREDENTIALS
环境变量后,您的代码将按如下方式转换:

from google.cloud import bigquery
from google.oauth2 import service_account

project_id = 'Project_ID523'
client = bigquery.Client(project=project_id)
注意:不需要在代码中提供服务帐户文件的路径,因为客户端库将从环境变量中获取服务帐户凭据


查看更多信息。

解决问题的最佳方法是不要将服务帐户文件的路径保留在源代码中

  • 要在本地访问Bigquery,您需要设置
    GOOGLE\u APPLICATION\u CREDENTIALS
    环境变量,其值等于服务帐户文件的路径
  • 最重要的是,您不必在GCP VM中执行任何操作,因为bigquery客户端库可以自动从计算引擎实例的元数据中获取凭据。您只需要为计算引擎服务帐户提供适当的IAM权限
设置
GOOGLE\u APPLICATION\u CREDENTIALS
环境变量后,您的代码将按如下方式转换:

from google.cloud import bigquery
from google.oauth2 import service_account

project_id = 'Project_ID523'
client = bigquery.Client(project=project_id)
注意:不需要在代码中提供服务帐户文件的路径,因为客户端库将从环境变量中获取服务帐户凭据

查看更多信息