google-cloud-platform - 未找到 GOOGLE_APPLICATION_CREDENTIALS?

标签 google-cloud-platform dialogflow-es gcloud google-iam google-cloud-iam

我已将 GOOGLE_APPLICATION_CREDENTIALS 设置为 ~/mailcreds.json,如下所示

export GOOGLE_APPLICATION_CREDENTIALS="~/mailcreds.json"

但是,每当我运行需要请求它们的 DialogFlow 项目时,我都会得到这个

{
"timestamp": "2020-04-04T19:50:12.350+0000",
"status": 500,
"error": "Internal Server Error",
"message": "Error reading credential file from environment variable GOOGLE_APPLICATION_CREDENTIALS, value '~/mailcreds.json': File does not exist."}

我对此很困惑!该文件位于我的主目录中!

最佳答案

当您执行诸如 cat ~/mailcreds.json 之类的操作时,波浪号 ~ 由 shell 处理并转换为环境变量 $ 中的值主页。然而,并非所有运行时环境都能正确处理此问题。

最好的选择是将其更改为类似的内容

export GOOGLE_APPLICATION_CREDENTIALS="$HOME/mailcreds.json"

这是有效的,因为 shell 会立即解释 $HOME,因此 GOOGLE_APPLICATION_CREDENTIALS 将被设置为文件的完整路径。

但是,更好的是实际上直接设置文件的完整路径。

确保您还使用有权访问该文件的帐户运行项目。如果您自己运行该项目(因为您正在开发/测试它),那么您暂时应该没问题,但这对于生产中的某些东西来说是不好的做法。

关于google-cloud-platform - 未找到 GOOGLE_APPLICATION_CREDENTIALS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61033948/

相关文章:

google-cloud-platform - GCP/Cloud Functions 是否有类似 AWS Lambda 层的库概念?

dialogflow-es - 使用预构建的代理模板和 "try this API"按钮使用 detectorIntent API 进行测试时未找到 DesignTimeAgent

谷歌云平台上的Elasticsearch外部访问?

google-app-engine - 应用程序引擎节点js : how to protect a cron URL from public access?

javascript - 如何使用 Node.js 更改 Google Cloud Storage 中的文件元数据

python - 如何使用 Dialogflow v2 的 Python 客户端发送文本响应?

javascript - javascript 中的方法 promise 不会在 dialogflow 上运行

docker - 命令 gcloud docker -a 的作用是什么?

postgresql - 如何查看 Google Cloud 上永久性磁盘的剩余大小?我在哪里可以找到实例中的代码?

kubernetes - 如何将 Pod 移动到新的节点池/实例组