程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在 VM 实例 Google Cloud 中创建 Python / Bigquery 之间的连接(凭据文件问题)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

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

开发过程中遇到在 VM 实例 Google Cloud 中创建 Python / Bigquery 之间的连接(凭据文件问题)的问题如何解决?下面主要结合日常开发的经验,给出你关于在 VM 实例 Google Cloud 中创建 Python / Bigquery 之间的连接(凭据文件问题)的解决方法建议,希望对你解决在 VM 实例 Google Cloud 中创建 Python / Bigquery 之间的连接(凭据文件问题)有所启发或帮助;

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

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

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


    from Google.cloud import bigquery
    from Google.oauth2 import service_account
    credentials = service_account.Credentials.from_service_account_file(
    r'C:\Users\Path\file.Json')

    project_ID = 'Project_ID523'
    clIEnt = bigquery.ClIEnt(credentials= credentials,project=project_ID)

解决方法

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

  • 在本地访问 Bigquery,您需要设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量,其值等于您的服务帐户文件的路径。
  • 它的重要之处在于您无需在 GCP 虚拟机中执行任何操作,因为 bigquery 客户端库可以自动从 Compute ENGIne 实例的元数据中获取凭据。您只需为 Compute ENGIne 服务帐号提供适当的 IAM 权限。

设置 GOOGLE_APPLICATION_CREDENTIALS 环境变量后,您的代码将转换如下:

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

project_id = 'Project_ID523'
client = bigquery.Client(project=project_id)

注意:无需在代码中提供服务帐户文件的路径,因为客户端库将从环境变量中获取服务帐户凭据。

查看 this link 了解更多信息。

大佬总结

以上是大佬教程为你收集整理的在 VM 实例 Google Cloud 中创建 Python / Bigquery 之间的连接(凭据文件问题)全部内容,希望文章能够帮你解决在 VM 实例 Google Cloud 中创建 Python / Bigquery 之间的连接(凭据文件问题)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。