登录
推荐 文章 Go 技术 课程 下载 专题 AI
首页 >  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删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>