创建或更新管道 API编辑

创建或更新摄取管道。使用此 API 所做的更改会立即生效。

response = client.ingest.put_pipeline(
  id: 'my-pipeline-id',
  body: {
    description: 'My optional pipeline description',
    processors: [
      {
        set: {
          description: 'My optional processor description',
          field: 'my-keyword-field',
          value: 'foo'
        }
      }
    ]
  }
)
puts response
PUT _ingest/pipeline/my-pipeline-id
{
  "description" : "My optional pipeline description",
  "processors" : [
    {
      "set" : {
        "description" : "My optional processor description",
        "field": "my-keyword-field",
        "value": "foo"
      }
    }
  ]
}

请求编辑

PUT /_ingest/pipeline/<pipeline>

先决条件编辑

  • 如果启用了 Elasticsearch 安全功能,则您必须具有 manage_pipelinemanage_ingest_pipelinesmanage 集群权限 才能使用此 API。

路径参数编辑

<pipeline>

(必填,字符串)要创建或更新的摄取管道的 ID。

为避免与内置和 Fleet 管理的摄取管道发生命名冲突,请避免在您自己的摄取管道名称中使用 @。该规则的例外是 *@custom 摄取管道,它允许您安全地将自定义管道添加到托管管道。另请参阅Fleet 和 Elastic Agent 的管道

查询参数编辑

if_version
(可选,整数)仅当管道具有此版本时才执行操作。如果指定并且更新成功,则管道的版本会递增。
master_timeout
(可选,时间单位)等待主节点的时间。如果在超时到期之前主节点不可用,则请求失败并返回错误。默认为 30s。也可以设置为 -1 以指示请求永不超时。
timeout
(可选,时间单位)等待响应的时间。如果在超时到期之前未收到任何响应,则请求失败并返回错误。默认为 30s

请求正文编辑

description
(可选,字符串)摄取管道的描述。
on_failure

(可选,处理器 对象数组)处理器在处理器失败后立即运行。

每个处理器都支持处理器级别的 on_failure 值。如果未设置 on_failure 值的处理器失败,Elasticsearch 会将此管道级参数用作回退。此参数中的处理器按指定的顺序依次运行。Elasticsearch 不会尝试运行管道中剩余的处理器。

processors
(必填,处理器 对象数组)用于在索引之前对文档执行转换的处理器。处理器按指定的顺序依次运行。
version

(可选,整数)外部系统用来跟踪摄取管道的版本号。

有关如何使用 version 属性,请参阅上面的 if_version 参数。

_meta
(可选,对象)有关摄取管道的可选元数据。可以有任何内容。此映射不是由 Elasticsearch 自动生成的。
deprecated
(可选,布尔值)将此摄取管道标记为已弃用。当在创建或更新未弃用的索引模板时,将已弃用的摄取管道引用为默认或最终管道时,Elasticsearch 将发出弃用警告。

示例编辑

管道元数据编辑

您可以使用 _meta 参数将任意元数据添加到管道。此用户定义的对象存储在集群状态中,因此最好将其保持简短。

_meta 参数是可选的,不是由 Elasticsearch 自动生成或使用的。

要取消设置 _meta,请替换管道而不指定任何管道。

response = client.ingest.put_pipeline(
  id: 'my-pipeline-id',
  body: {
    description: 'My optional pipeline description',
    processors: [
      {
        set: {
          description: 'My optional processor description',
          field: 'my-keyword-field',
          value: 'foo'
        }
      }
    ],
    _meta: {
      reason: 'set my-keyword-field to foo',
      serialization: {
        class: 'MyPipeline',
        id: 10
      }
    }
  }
)
puts response
PUT /_ingest/pipeline/my-pipeline-id
{
  "description" : "My optional pipeline description",
  "processors" : [
    {
      "set" : {
        "description" : "My optional processor description",
        "field": "my-keyword-field",
        "value": "foo"
      }
    }
  ],
  "_meta": {
    "reason": "set my-keyword-field to foo",
    "serialization": {
      "class": "MyPipeline",
      "id": 10
    }
  }
}

要检查 _meta,请使用 获取管道 API。