程序开发 · 2025年1月30日

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

当前位置: > > > > index.yaml 在 Google App Engine for Golang 中的何处导入?

来源:stackoverflow
2024-04-26 22:03:38
0浏览
收藏

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题《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 文件不打算在您的应用程序代码中导入/使用,它旨在部署到数据存储服务(与您的应用程序部署分开/独立!)以配置其索引活动。来自:

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

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

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

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

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

--require_indexes=yes|no

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

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