【问题标题】:NodeJS Google Vision is unable to detect a Project Id in the current environmentNodeJS Google Vision 无法在当前环境中检测到项目 ID
【发布时间】:2019-06-14 12:18:49
【问题描述】:

Ubuntu环境下NodeJS Google Vision报错:

错误:无法在当前环境中检测到项目 ID。

即使我已经通过了 json 凭证

$ export GOOGLE_APPLICATION_CREDENTIALS=/var/credential_google.json"

请帮忙。

【问题讨论】:

标签: node.js google-vision


【解决方案1】:

作为一个快速破解,你可以试试这个:

$ GOOGLE_APPLICATION_CREDENTIALS="/var/credential_google.json" node app.js

【讨论】:

    【解决方案2】:

    如果您通常是 Windows 用户并尝试使用 Ubuntu(如我),问题可能在于导出命令将变量导出到所有终端会话的假设,并且您需要打开一个新终端才能使用它(正如在环境变量的 Windows 终端中所预期的那样)。

    1. 导出命令不会将变量导出到另一个终端会话。因此,如果您在终端中导出它,您将在同一个终端上使用它。

    2. 如果您想永久导出,可以尝试here列出的解决方案

    【讨论】:

      【解决方案3】:

      您可以在实例化客户端时直接放置 JSON 凭据的路径,方法是将其作为参数传递。
      例如:

      const client = new speech.SpeechClient( {keyFilename: "credential_google.json"});
      

      另外,对我来说,在终端中设置它不起作用。

      【讨论】:

        【解决方案4】:

        不建议在本地使用 .json 配置文件。我已经看到生产服务器上的这些泄漏导致整个平台被删除+引入环境切换和安全问题。

        设置 Google Cloud CLI。

        现在服务器将“查看”本地环境并使用它。

        如果您收到错误“无法在当前环境中检测到项目ID。”,则表示身份验证库找不到项目默认 id。

        无论环境变量和您正在运行的项目如何,您都需要在 Google Cloud 中设置一个基础项目。

        运行

        gcloud config set project [some-project-id]
        

        现在如果你运行(节点示例)

        "dev": "NODE_ENV=dev GCP_PROJECT=some-project-id nodemon index.ts",
        

        它将加载项目环境。这也使您可以通过以下方式更轻松地进行部署:

        "deploy:dev": "y | gcloud app deploy --project some-dev-project app.yaml",
        "deploy:prod": "y | gcloud app deploy --project some-prod-project app.yaml"
        

        App 引擎在标准环境下自动设置安全性。借助 flex,您可以使用 Google 提供的管理图片之一。

        【讨论】:

          猜你喜欢
          • 2020-01-23
          • 1970-01-01
          • 1970-01-01
          • 2011-05-01
          • 2020-08-10
          • 2018-04-25
          • 1970-01-01
          • 2016-10-01
          • 2020-11-04
          相关资源
          最近更新 更多