【发布时间】:2021-11-03 06:45:28
【问题描述】:
我想在运行时通过邮递员设置我的 google json 凭据文件。我做了一个 bigquery rest api。现在我在我的代码中传递它是这样的:
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = 'C:/Users/Documents/bigQuery/service.json'
@app.route('/', methods=['GET', 'POST'])
def get_request():
query:
.
.
.
return results
if __name__ == "__main__":
app.run()
我尝试使用邮递员方法从表单数据中获取输入,但代码抛出编译时错误,要求首先设置凭据文件。
编译错误:
DefaultCredentialsError: Could not automatically determine credentials.
Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application. For more information, please see
https://cloud.google.com/docs/authentication/getting-started
代码需要设置 GOOGLE_APPLICATION_CREDENTIALS 才能获取大查询数据。 我希望邮递员在运行时将 key.json 文件传递给代码。
【问题讨论】:
-
1) 您问题中的代码不使用/不需要服务帐户。 2) 在您的 Python 代码中设置环境变量只会影响您的 Python 代码或其子进程。 3)你提到 s 编译时错误。错误是什么? 4)邮递员与您的问题有什么关系?使用详细信息编辑您的问题。
-
@JohnHanley 希望我已经回答了您的所有疑问。希望你有一些答案。
-
不是直接回答你的问题,但是你也可以在创建BQ客户端的时候直接传JSON文件。见this doc。请注意,它适用于 GCStorage,但也适用于 BQ,因为客户端库的身份验证是相同的。
-
@EdoAkse 在您的建议中,我们也必须在代码本身中设置密钥,这不是我的要求。我想在运行时传递密钥文件。
标签: python rest google-cloud-platform google-bigquery postman