如何使gcloud选择正确的项目?

时间:2019-04-07 06:49:00

标签: project gcloud

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

transscript = $(curl -s -H“内容类型:应用程序/ json” -H“授权:承载” $(gcloud auth打印访问令牌)https://speech.googleapis.com/v1/speech:recognize -d @ $ mailpath / sync_request .json)

结果

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

我不知道错误的项目编号来自何处。

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

一切都没有成功。

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

2 个答案:

答案 0 :(得分:0)

documentation如下:

  

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

答案 1 :(得分:0)

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

如马丁建议的那样,应该使用gcloud auth print-access-token而不是使用gcloud auth application-default print-access-token

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