登录
首页 >  Golang >  Go问答

index.yaml 在 Google App Engine for Golang 中的何处导入?

来源:stackoverflow

时间:2024-04-26 22:03:38 300浏览 收藏

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题《index.yaml 在 Google App Engine for Golang 中的何处导入?》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!

问题内容

使用 bookshelf 教程和 auth 包。

listbookscreatedby 查询失败并出现以下错误:

could not list books: datastoredb: could not list books: rpc error: code = failedprecondition desc = no matching index found. recommended index is:   
- kind: book   
  properties:   
  - name: createdbyid   
  - name: title

但是,index.yaml确实存在,并且与app.yaml位于同一目录中:

索引 yaml 内容:

indexes:   

# This index enables filtering by "CreatedByID" and sort by "Title".   
- kind: Book   
  properties:   
  - name: CreatedByID   
    direction: asc   
  - name: Title   
    direction: asc

为什么索引无法导入?

index.yaml 导入到 golang app engine 代码中的哪个位置?

我搜索了 src,但什么也没找到。


解决方案


index.yaml 文件不打算在您的应用程序代码中导入/使用,它旨在部署到数据存储服务(与您的应用程序部署分开/独立!)以配置其索引活动。来自Updating indexes

您将 index.yaml 配置文件上传到 Cloud Datastore 使用 gcloud 命令。如果 index.yaml 文件定义了任何索引 如果 Cloud Datastore 中不存在,则会构建这些新索引。

Cloud Datastore 可能需要一段时间才能创建所有索引并 因此,这些索引不会立即可供 App Engine 使用。 如果您的应用程序已配置为接收流量,则例外 对于需要仍在索引中的索引的查询可能会发生 构建过程。

为了避免异常,您必须留出时间来构建所有索引。

只有在正确部署之后,并且在需要时完成索引更新操作(即索引达到 Serving 状态),应用程序需要该索引的查询才能工作。

本地开发服务器在其数据存储模拟中也使用 index.yaml 文件。默认情况下,它会自动使用遇到的查询所需的索引更新文件,但该文件不会自动部署到数据存储区。但您可以使用 --require_indexes 选项禁用此行为。来自Local Development Server Options

--require_indexes=yes|no

禁用 index.yaml 文件中自动生成条目。 相反,当应用程序发出要求其 文件中定义了索引,但未找到索引定义,则 将引发异常,类似于运行时发生的情况 应用程序引擎。默认值为 no

以上就是《index.yaml 在 Google App Engine for Golang 中的何处导入?》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>