使用本地JSON进行GCP身份验证的单元测试应用程序



我想对一些使用Google Cloud Platfrom的FastAPI API端点进行单元测试,我想在不使用文件中的os.environ["GOOGLE_APPLICATION_CREDENTIALS"]='path_to_json_file.json'进行身份验证的情况下编写测试(因为该服务很快就会在云中(。有没有办法嘲笑这件事?

您的问题有点不清楚,但您不太可能想要在代码中设置GOOGLE_APPLICATION_CREDENTIALS,部分原因是这个。

您应该从环境中设置变量:

GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/key.json
python3 your_code.py

应用程序默认凭据(ADC(在3个位置查找凭据:

  1. GOOGLE_APPLICATION_DEFAULT环境变量
  2. gcloud application-default login
  3. 计算服务的标识

因此,在代码中显式设置变量会覆盖#2(不太重要(和#3(更重要(的可能性。

如果在运行代码进行测试等时将变量设置在代码之外,则会自动找到凭据,并对代码进行身份验证。

如果您不设置变量,因为代码正在计算服务上运行(例如,云运行、计算引擎…(,ADC将自动使用服务的凭据,并且代码将被验证。

最新更新