在VM实例Google Cloud中的Python/Bigquery之间创建连接(凭据文件有问题)
我正在创建一个应该在VM实例(Google Cloud Plataform)中运行的脚本,为此,我从这个VM使用SSH(Linux)。这段代码将python与Bigquery连接起来 我的“凭据”有问题,当我在本地计算机上运行时,我的凭据位于本地目录下的此文件中,代码将访问此文件并运行服务。但是当我在SSH(VM实例)中运行时,VM找不到该文件,因为它不在VM目录中 我该怎么解决这个问题?我想我需要把这个文件放在VM实例中,并采用新的路径,但我不知道如何在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实例中,并采用新的路径,但我不知道如何 解决问题的最佳方法是不要将服务帐户文件
解决问题的最佳方法是不要将服务帐户文件的路径保留在源代码中
- 要在本地访问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)
注意:不需要在代码中提供服务帐户文件的路径,因为客户端库将从环境变量中获取服务帐户凭据
查看更多信息