创建或更新管道 API
编辑创建或更新管道 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_pipeline
、manage_ingest_pipelines
或manage
集群权限才能使用此 API。
路径参数
编辑-
<pipeline>
-
(必需,字符串)要创建或更新的摄取管道的 ID。
为了避免与内置和 Fleet 管理的摄取管道发生命名冲突,请避免在您自己的摄取管道名称中使用
@
。该规则的例外是*@custom
摄取管道,它允许您安全地向托管管道添加自定义管道。另请参阅 Fleet 和 Elastic Agent 的管道。
查询参数
编辑请求正文
编辑-
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。