批量创建保存对象 API
编辑批量创建保存对象 API编辑
在 8.7.0 中已弃用。
将在即将发布的版本中删除
创建多个 Kibana 保存对象。
有关最新 API 详细信息,请参阅 开放 API 规范。
请求编辑
POST <kibana 主机>:<端口>/api/saved_objects/_bulk_create
POST <kibana 主机>:<端口>/s/<空间 ID>/api/saved_objects/_bulk_create
路径参数编辑
-
space_id
- (可选,字符串) 空间的标识符。如果 URL 中未提供
space_id
,则使用默认空间。
查询参数编辑
-
overwrite
- (可选,布尔值) 当
true
时,将覆盖具有相同 ID 的文档。
请求主体编辑
-
type
- (必需,字符串) 有效选项包括
visualization
、dashboard
、search
、index-pattern
。 -
id
- (可选,字符串) 指定 ID,而不是使用随机生成的 ID。
-
attributes
- (必需,对象) 您要创建的数据。
-
references
- (可选,数组) 具有
name
、id
和type
属性的对象,描述引用对象中的其他保存对象。要引用其他保存对象,请在属性中使用name
。切勿使用id
来引用其他保存对象。id
可以在迁移、导入或导出期间自动更新。 -
initialNamespaces
-
(可选,字符串数组) 此对象创建所在的 空间 的标识符。如果提供此选项,则仅在显式定义的空间中创建对象。如果未提供此选项,则在当前空间中创建对象(默认行为)。
- 对于可共享对象类型(使用
namespaceType: 'multiple'
注册):此选项可用于指定一个或多个空间,包括“所有空间”标识符 ('*'
)。 - 对于隔离对象类型(使用
namespaceType: 'single'
或namespaceType: 'multiple-isolated'
注册):此选项只能用于指定单个空间,并且不允许使用“所有空间”标识符 ('*'
)。 - 对于全局对象类型(使用
namespaceType: 'agnostic'
注册):不能使用此选项。
- 对于可共享对象类型(使用
-
version
- (可选,数字) 指定版本。
响应代码编辑
-
200
- 表示成功调用。请注意,此 HTTP 响应代码表示批量操作成功。有关单个对象的错误将在响应主体中返回。有关详细信息,请参见下面的示例。
示例编辑
使用 my-pattern
ID 创建数据视图,并使用 my-dashboard
ID 创建仪表板
$ curl -X POST api/saved_objects/_bulk_create [ { "type": "index-pattern", "id": "my-pattern", "attributes": { "title": "my-pattern-*" } }, { "type": "dashboard", "id": "be3733a0-9efe-11e7-acb3-3dab96693fab", "attributes": { "title": "Look at my dashboard" } } ]
API 返回以下内容
{ "saved_objects": [ { "id": "my-pattern", "type": "index-pattern", "version": 1, "attributes": { "title": "my-pattern-*" } }, { "id": "be3733a0-9efe-11e7-acb3-3dab96693fab", "type": "dashboard", "error": { "statusCode": 409, "message": "Saved object [dashboard/be3733a0-9efe-11e7-acb3-3dab96693fab] conflict" } } ] }
已经存在一个具有 my-dashboard
ID 的保存对象,因此只创建了数据视图。
冲突错误编辑
从 Kibana 8.0 开始,保存对象可以存在于多个空间中。因此,在尝试创建对象时,您可能会遇到不同类型的冲突错误
-
常规冲突: 这是一个没有元数据的 409 错误。这意味着该类型/ID 的对象已存在。这可以通过使用
overwrite: true
选项来覆盖。 -
无法解决的冲突: 这是一个在元数据中具有
isNotOverwritable: true
的 409 错误。这意味着该类型/ID 的对象已存在于不同的空间中,并且无法使用给定的参数覆盖它。要成功覆盖此对象,您必须至少在一个它存在于其中的空间中执行此操作。您可以使用space_id
路径参数 *或*initialNamespaces
参数来指定它。 -
别名冲突: 这是一个在元数据中具有
spacesWithConflictingAliases
字符串数组的 409 错误。这意味着此类型/ID 的冲突 旧版 URL 别名 存在于您尝试创建此对象的 space(s) 中。冲突的旧版 URL 别名是指向不同类型/ID 的别名。要成功创建此对象,您需要首先使用_disable_legacy_url_aliases
API 来禁用有问题的旧版 URL 别名。