【问题标题】:How do I make gcloud select the right project?如何让 gcloud 选择正确的项目?
【发布时间】:2019-04-07 06:49:00
【问题描述】:

我正在使用gcloud来实现speech2text。我不得不重置服务器,现在无法让 gcloud 识别正确的项目。

transscript=$(curl -s -H "Content-Type: application/json" -H "Authorization: Bearer"$(gcloud auth print-access-token) https://speech.googleapis.com/v1/speech:recognize -d @$mailpath/sync_request.json )

结果

“代码”:403, "message": "Cloud Speech-to-Text API 之前未在项目 32555940559 中使用或已禁用。通过访问 https://console.developers.google.com/apis/api/speech.googleapis.com/overview?project= 启用它,然后重试。如果您最近启用了此 API,请等待几分钟以便操作传播到我们的系统并重试。",

我不知道错误的项目编号是从哪里来的。

我已经尝试了 gcloud config 配置列表,并且显示了正确的项目。 我已经完全卸载了sdk。 我已经分配了 GOOGLE_APPLICATION_CREDENTIALS 环境变量

都没有成功。

预期结果被分配正确的项目

【问题讨论】:

    标签: project gcloud


    【解决方案1】:

    documentation 写着:

    gcloud auth application-default print-access-token 生成并打印当前应用程序默认凭据 (ADC) 的访问令牌。可以通过将 GOOGLE_APPLICATION_CREDENTIALS 环境变量设置为服务帐户密钥文件 (JSON) 的路径或使用 gcloud auth application-default login 来指定 ADC。

    【讨论】:

      【解决方案2】:

      您正在使用未记录(且不推荐)的gcloud auth print-access-token。这将使用默认的 SDK 客户端 ID(我猜它在项目 32555940559 中),并且该项目中未启用语音 API。

      正如 Martin 所建议的,您应该使用 gcloud auth application-default print-access-token,而不是使用 gcloud auth print-access-token

      您可以通过运行grep -r 'CLOUDSDK_CLIENT_ID =' $(dirname $(which gcloud))/../ 来检查我关于客户端 ID 是否正确(我刚刚检查过,确实,该项目 ID 是默认客户端 ID 的项目)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-04-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-09
        • 1970-01-01
        相关资源
        最近更新 更多