Django on Google App Engine: "Instance names cannot contain the ':' character."



我正在按照本教程在Google AppEngine上运行一个Django项目。我已经达到了创建云SQL实例的步骤。我正在这一步:

现在,从命令行使用云 SDK 运行以下命令。复制为"连接名称"显示的值以执行下一步。

GCLOUD SQL 实例描述 [YOUR_INSTANCE_NAME]

连接名称值的格式为 [PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME]。

我收到以下错误:

$ gcloud sql instances describe django-polls-184415:us-west1:polls
ERROR: (gcloud.sql.instances.describe) Instance names cannot contain the ':' character. If you meant to indicate the
project for [polls], use only 'polls' for the argument, and either add
'--project django-polls-184415:us-west1' to the command line or first run
  $ gcloud config set project django-polls-184415:us-west1

当我按照错误消息中的说明进行操作时,我得到

$ gcloud config set project django-polls-184415:us-west1          
Updated property [core/project].
$ gcloud sql instances describe polls                             
ERROR: (gcloud.sql.instances.describe) HTTPError 403: The client is not authorized to make this request.
$ gcloud sql instances describe --project django-polls-184415:us-west1 polls-instance
ERROR: (gcloud.sql.instances.describe) HTTPError 403: The client is not authorized to make this request.

我做错了什么?更重要的是,我如何正确地做到这一点?

补遗

我已经使用 gcloud auth application-default login 验证了云 SDK。要验证:

$  gcloud auth list
   Credentialed Accounts
ACTIVE  ACCOUNT
*       foo@bar.com
To set the active account, run:
    $ gcloud config set account `ACCOUNT`

(真实账户是正确的。我在这里编辑了它。

您必须先创建实例,然后才能使用它。要检查您创建的实例列表,请使用:

gcloud sql instances list

然后,要显示实例的信息:

gcloud beta sql instances describe [YOUR_INSTANCE_NAME]

将 [YOUR_INSTANCE_NAME] 替换为 gcloud sql instances list 命令的"NAME"列的结果。

在您的情况下,403 错误意味着您没有"轮询"实例的权限。因为您不拥有此实例或尚未创建此实例。

显然我没有足够仔细地阅读说明:

连接名称值的格式为 [PROJECT_NAME]:[REGION_NAME]:[INSTANCE_NAME]。

这意味着我需要做

$ gcloud config set project django-polls-184415

这修复了我使用早期gcloud config set project命令的错误。然后gcloud sql instances describe polls工作。

相关内容

  • 没有找到相关文章

最新更新