パイプラインAPIの作成または更新

このAPIを使用して、インジェストパイプラインを作成または更新します。このAPIを使用して行った変更は、即座に反映されます。

Python

  1. resp = client.ingest.put_pipeline(
  2. id="my-pipeline-id",
  3. description="My optional pipeline description",
  4. processors=[
  5. {
  6. "set": {
  7. "description": "My optional processor description",
  8. "field": "my-keyword-field",
  9. "value": "foo"
  10. }
  11. }
  12. ],
  13. )
  14. print(resp)

Ruby

  1. response = client.ingest.put_pipeline(
  2. id: 'my-pipeline-id',
  3. body: {
  4. description: 'My optional pipeline description',
  5. processors: [
  6. {
  7. set: {
  8. description: 'My optional processor description',
  9. field: 'my-keyword-field',
  10. value: 'foo'
  11. }
  12. }
  13. ]
  14. }
  15. )
  16. puts response

Js

  1. const response = await client.ingest.putPipeline({
  2. id: "my-pipeline-id",
  3. description: "My optional pipeline description",
  4. processors: [
  5. {
  6. set: {
  7. description: "My optional processor description",
  8. field: "my-keyword-field",
  9. value: "foo",
  10. },
  11. },
  12. ],
  13. });
  14. console.log(response);

コンソール

  1. PUT _ingest/pipeline/my-pipeline-id
  2. {
  3. "description" : "My optional pipeline description",
  4. "processors" : [
  5. {
  6. "set" : {
  7. "description" : "My optional processor description",
  8. "field": "my-keyword-field",
  9. "value": "foo"
  10. }
  11. }
  12. ]
  13. }

リクエスト

PUT /_ingest/pipeline/<pipeline>

前提条件

  • Elasticsearchのセキュリティ機能が有効になっている場合、このAPIを使用するには、manage_pipelinemanage_ingest_pipelines、またはmanage クラスター権限を持っている必要があります。

パスパラメータ

  • <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
  • (オプション、整数) 外部システムがインジェストパイプラインを追跡するために使用するバージョン番号。
    バージョン属性の使用方法については、上記のif_versionパラメータを参照してください。
  • _meta
  • (オプション、オブジェクト) インジェストパイプラインに関するオプションのメタデータ。任意の内容を持つことができます。このマップはElasticsearchによって自動的に生成されるものではありません。
  • deprecated
  • (オプション、ブール値) このインジェストパイプラインを非推奨としてマークします。非推奨のインジェストパイプラインが非推奨でないインデックステンプレートを作成または更新する際にデフォルトまたは最終パイプラインとして参照されると、Elasticsearchは非推奨警告を発します。

パイプラインメタデータ

  1. `````_meta`````パラメータはオプションであり、Elasticsearchによって自動的に生成または使用されるものではありません。
  2. `````_meta`````を解除するには、パイプラインを指定せずに置き換えます。
  3. #### Python
  4. ``````python
  5. resp = client.ingest.put_pipeline(
  6. id="my-pipeline-id",
  7. description="My optional pipeline description",
  8. processors=[
  9. {
  10. "set": {
  11. "description": "My optional processor description",
  12. "field": "my-keyword-field",
  13. "value": "foo"
  14. }
  15. }
  16. ],
  17. meta={
  18. "reason": "set my-keyword-field to foo",
  19. "serialization": {
  20. "class": "MyPipeline",
  21. "id": 10
  22. }
  23. },
  24. )
  25. print(resp)
  26. `

Ruby

  1. response = client.ingest.put_pipeline(
  2. id: 'my-pipeline-id',
  3. body: {
  4. description: 'My optional pipeline description',
  5. processors: [
  6. {
  7. set: {
  8. description: 'My optional processor description',
  9. field: 'my-keyword-field',
  10. value: 'foo'
  11. }
  12. }
  13. ],
  14. _meta: {
  15. reason: 'set my-keyword-field to foo',
  16. serialization: {
  17. class: 'MyPipeline',
  18. id: 10
  19. }
  20. }
  21. }
  22. )
  23. puts response

Js

  1. const response = await client.ingest.putPipeline({
  2. id: "my-pipeline-id",
  3. description: "My optional pipeline description",
  4. processors: [
  5. {
  6. set: {
  7. description: "My optional processor description",
  8. field: "my-keyword-field",
  9. value: "foo",
  10. },
  11. },
  12. ],
  13. _meta: {
  14. reason: "set my-keyword-field to foo",
  15. serialization: {
  16. class: "MyPipeline",
  17. id: 10,
  18. },
  19. },
  20. });
  21. console.log(response);

コンソール

  1. PUT /_ingest/pipeline/my-pipeline-id
  2. {
  3. "description" : "My optional pipeline description",
  4. "processors" : [
  5. {
  6. "set" : {
  7. "description" : "My optional processor description",
  8. "field": "my-keyword-field",
  9. "value": "foo"
  10. }
  11. }
  12. ],
  13. "_meta": {
  14. "reason": "set my-keyword-field to foo",
  15. "serialization": {
  16. "class": "MyPipeline",
  17. "id": 10
  18. }
  19. }
  20. }

_metaを確認するには、パイプラインを取得するAPIを使用します。