创建或更新管道 API

编辑

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

resp = client.ingest.put_pipeline(
    id="my-pipeline-id",
    description="My optional pipeline description",
    processors=[
        {
            "set": {
                "description": "My optional processor description",
                "field": "my-keyword-field",
                "value": "foo"
            }
        }
    ],
)
print(resp)
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
const response = await client.ingest.putPipeline({
  id: "my-pipeline-id",
  description: "My optional pipeline description",
  processors: [
    {
      set: {
        description: "My optional processor description",
        field: "my-keyword-field",
        value: "foo",
      },
    },
  ],
});
console.log(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。也可以设置为 -1 表示请求永远不应超时。

请求正文

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

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

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

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

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

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

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

示例

编辑

管道元数据

编辑

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

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

要取消设置 _meta,请在不指定 _meta 的情况下替换管道。

resp = client.ingest.put_pipeline(
    id="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
        }
    },
)
print(resp)
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
const response = await client.ingest.putPipeline({
  id: "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,
    },
  },
});
console.log(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。