Google Cloud - 不同电子邮件地址使用了错误的项目 ID

Ron*_*n I 5 google-cloud-platform gcloud

尽管正在运行gcloud auth application-default login,但gcloud config set core/project CORRECT_PROJECT_ID项目仍然默认为不正确的项目 ID:

gcloud config list
[core]
account = CORRECT_EMAIL
disable_usage_reporting = True
project = CORRECT_PROJECT_ID

Your active configuration is: [default]
Run Code Online (Sandbox Code Playgroud)

如果我在终端中运行导出GOOGLE_APPLICATION_CREDENTIALS =“[PATH]”,我可以成功运行教程(如下)中的示例代码

但是,我不想每次都这样做,所以我运行了命令:

gcloud auth application-default login
Run Code Online (Sandbox Code Playgroud)

这会打开一个浏览器,其中包含我的 Gmail 帐户列表,即使我选择了正确的帐户,成功窗口也会转到另一个 Gmail 帐户。然后我在隐身窗口中尝试了一下,结果成功了。

但是,运行 npm start 会导致以下错误:

ERROR: { Error: 7 PERMISSION_DENIED: Cloud Natural Language API has not been used in project WRONG_PROJECT_ID before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/language.googleapis.com/overview?project=WRONG_PROJECT_ID then retry.
Run Code Online (Sandbox Code Playgroud)

然后我跑去gcloud config set core/project CORRECT_PROJECT_ID收到消息Updated property [core/project].

当我运行 npm start 时,我收到相同的消息:

ERROR: { Error: 7 PERMISSION_DENIED: Cloud Natural Language API has not been used in project WRONG_PROJECT_ID before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/language.googleapis.com/overview?project=WRONG_PROJECT_ID then retry.
Run Code Online (Sandbox Code Playgroud)

我尝试gcloud auth login并收到以下消息(在隐身窗口中进行身份验证后):

WARNING: `gcloud auth login` no longer writes application default credentials.
If you need to use ADC, see:
  gcloud auth application-default --help

You are now logged in as [CORRECT EMAIL ADDRESS].
Your current project is [CORRECT_PROJECT_ID].  You can change this setting by running:
  $ gcloud config set project PROJECT_ID
Run Code Online (Sandbox Code Playgroud)

xav*_*erc 8

我有一些建议可以纠正这种行为。

\n\n

1) 清除您的网络浏览器缓存和 cookie。然后运行“gcloud auth application-default login”

\n\n

2) 尝试重新安装 gcloud 工具包。

\n\n

3) 首先尝试取消配置中的项目,然后将项目设置为正确的项目。IE

\n\n
gcloud config unset project WRONG_PROJECT_ID\ngcloud config set project CORRECT_PROJECT_ID\n
Run Code Online (Sandbox Code Playgroud)\n\n

4) 检查\xe2\x80\x9cCLOUDSDK_CORE_PROJECT\xe2\x80\x9d环境变量。如果尚未将其设置为正确的项目,则将其设置为正确的项目。

\n\n

5) 尝试重新运行\xe2\x80\x9cgcloud init\xe2\x80\x9d

\n\n

6) 您可以在以下位置找到您的应用程序默认凭据

\n\n
\n

Linux:~/.config/gcloud/application_default_credentials.json

\n\n

Windows:C:\\Users\\%username%\\AppData\\Roaming\\gcloud\\credentials

\n
\n\n

您可以删除该文件,并使用您在问题中提到的命令重新生成它,例如 \xe2\x80\x9cgcloud auth default-credentials login\xe2\x80\x9d

\n\n

我们需要找到 npm start 从哪里获取其凭证。一旦我们弄清楚了这一点,我们就可以弄清楚如何更改它,并理解为什么它\xe2\x80\x99s 寻找那里等等。

\n\n

您是否能够找到配置文件以查看它在哪里寻找凭据?\nnpm start 是整个命令吗?我\xe2\x80\x99m 对 Node JS 不太熟悉。我\xe2\x80\x99m 不确定为什么它尝试使用自然语言API。\n您还提到了一个教程,但我认为您可能忘记将其包含在您的问题中。您指的是哪个教程?

\n