変更¶
POST /api/v1/pipeline/{pl_uuid}/modify
概要¶
Pipeline を変更します。任意指定の configVersion は読み取り時の現在の設定バージョン番号です。期限切れの場合は 409 ft.PipelineConfigVersionConflict を返します。省略時は旧呼び出しと互換性があります。
category が profiling の場合、当該ルールが実際に有効になるには、ワークスペース設定のフィールド CentralPLServiceSwitch(/workspace/get インターフェースが返す)が true である必要があります。
ルートパラメーター¶
| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| pl_uuid | string | Y | Pipeline の ID |
Body リクエストパラメーター¶
| パラメーター名 | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | Y | Pipeline ファイル名。同時にその source タイプ値でもあります 空値許可: False 最大長: 256 $notSearchRegExp: [^a-zA-Z0-9_\u4e00-\u9fa5-]+ |
| type | string | Y | Pipeline ファイルタイプ 空値許可: False 選択可能な値: ['local', 'central'] |
| source | array | 選択した source リスト 空値許可: False |
|
| content | string | Y | pipeline ファイルの内容(base64 エンコード)。 |
| base64 デコード後のスクリプトは Studio UI の文字数カウントルールに従って検証されます:U+0001–U+007E、U+FF60–U+FF9F は 1 文字、その他の UTF-16 ユニットは 2 文字としてカウントし、上限は 65535 です。また、デコード後のスクリプト全体の UTF-8 エンコードサイズが 65535 バイトを超えないことも必須です。いずれかの上限を超えた場合は ft.ContextExceedLimit を返し、バイト数超過の場合はバイト単位で通知します。 | |||
空値許可: False |
|||
| testData | string | テストデータ(base64 エンコード)。OpenAPI 側では空文字列、または base64 デコード後に JSON 配列となる内容のみ渡すことができます。 |
生成方法: 1. まずテストサンプル配列を準備します。 2. 配列に対して JSON.stringify を実行します。 3. 得られた UTF-8 文字列を base64 エンコードして testData に渡します。
一般的な例: - 空のサンプル配列:[] -> W10= - 単一の JSON ログ:[{"level":"info","msg":"HTTP"}] -> W3sibGV2ZWwiOiJpbmZvIiwibXNnIjoiSFRUUCJ9XQ== - 単一のテキストログ:["raw log line"] -> WyJyYXcgbG9nIGxpbmUiXQ==
不正な例:{"level":"info","msg":"HTTP"} をそのまま base64 エンコードして渡すケース。デコード後にトップレベルが object であり、配列ではないためです。
空値許可: False
空文字列許可: True
|
| dataType | string | | データタイプ。line_protocol-行プロトコル形式、json-JSON 形式、message-Message
例: line_protocol
空値許可: False
空文字列許可: True
選択可能な値: ['line_protocol', 'json', 'message']
|
| isForce | boolean | | 特定のタイプに default が存在する場合、置き換えを行うかどうか
空値許可: False
|
| configVersion | integer | | 読み取り時の現在の設定バージョン番号。渡すと並行上書きを防げます
空値許可: False
$minValue: 1
|
| asDefault | int | | そのタイプのデフォルト pipeline とするかどうか。1 はデフォルトに設定
空値許可: False
|
| enableByLogBackup | int | | 転送データの処理に Pipeline を有効にするかどうか。1 は有効、0 は無効
空値許可: False
|
| category | string | Y | カテゴリー
空値許可: False
空文字列許可: False
選択可能な値: ['logging', 'object', 'custom_object', 'network', 'tracing', 'rum', 'llm', 'agent_monitor', 'security', 'keyevent', 'metric', 'profiling', 'dialtesting', 'billing', 'keyevent']
|
| extend | json | | カテゴリー
空値許可: False
|
| extend.appID | array | | appID
空値許可: True
|
| extend.measurement | array | | source の由来
空値許可: True
|
| extend.loggingIndex | string | | ログインデックス
空値許可: True
|
| extend.ifAiCreate | boolean | | AI 生成の解析ルールかどうか
空値許可: True
|
| extend.aiTargetStructure | string | | AI 抽出内容
空文字列許可: True
空値許可: True
|
| extend.exampleSource | string | | サンプルソース
空文字列許可: True
空値許可: True
|
| extend.exampleType | string | | サンプルタイプ
空文字列許可: True
空値許可: True
|
パラメーター補足説明¶
並行変更保護¶
まず /api/v1/pipeline/<pl_uuid>/get を呼び出して現在の設定と configVersion を読み取り、既存の変更パラメーターに configVersion を加えて送信することを推奨します。本インターフェースは configVersion のみを送信する部分更新用インターフェースではありません。name、type、category、content などの必須パラメーターは引き続き契約に従って提供する必要があります。
configVersion は任意指定の正の整数です。指定しない場合は旧呼び出しと互換性がありますが、バージョン番号の競合チェックは有効になりません。バージョンが一致し、かつ設定が実際に変更された場合、旧設定をアーカイブして新しい設定バージョンを返します。同じ設定を繰り返し保存してもバージョンは生成されません。409 / ft.PipelineConfigVersionConflict を受け取った場合は、設定を再読込して比較し、確認後に再度送信してください。他者の変更を自動的に上書きしてはいけません。
リクエストボディの例:{"name":"demo","type":"local","category":"logging","content":"YWRkX2tleShjaXR5LCAic2hhbmdoYWkiKQ==","testData":"W10=","source":["nginx"],"configVersion":3}。
レスポンスとリトライ¶
成功時のレスポンス content は現在の Pipeline オブジェクトで、configVersion、configVersionAt、configVersionOperator、configVersionSource、configVersionAction、configVersionSourceInfo を含みます。時刻は Unix 秒単位のタイムスタンプです。content が {"confirm":["logging"]} の場合、デフォルト置き換えの確認が必要であり、今回の変更はまだ完了していないことを意味します。isForce はデフォルト置き換えにのみ使用され、name/source やバージョン競合の検証はスキップされません。
content と testData のリクエストフィールドはどちらも Base64 エンコードです。通常の OpenAPI 変更では、testData がデコード後に空または JSON 配列であるという制約が維持されます。タイムアウト後は、まず現在の設定を照会して書き込み結果を確認し、無条件に再送信することは避けてください。
リクエスト例¶
curl 'https://openapi.guance.com/api/v1/pipeline/pl_xxxx32/modify' \
-H 'DF-API-KEY: <DF-API-KEY>' \
-H 'Content-Type: application/json;charset=UTF-8' \
--data-raw '{"name":"test_modify","category":"logging","asDefault":0,"content":"YWRkX2tleShjaXR5LCAic2hhbmdoYWkiKQ==","testData":"W3sibGV2ZWwiOiJpbmZvIiwibXNnIjoiSFRUUCJ9XQ==","source":["nsqlookupd"]}' \
--compressed
レスポンス¶
{
"code": 200,
"content": {
"asDefault": 0,
"category": "logging",
"content": "YWRkX2tleShjaXR5LCAic2hhbmdoYWkiKQ==\n",
"createAt": 1678026470,
"creator": "xxx",
"deleteAt": -1,
"extend": {},
"id": 86,
"isSysTemplate": 0,
"name": "test_modify",
"source": [],
"status": 0,
"testData": "W10=\n",
"updateAt": 1678026808.95266,
"updator": "xx",
"uuid": "pl_xxxx32",
"workspaceUUID": "wksp_xxxx32",
"configVersion": 4,
"configVersionAt": 1788800200,
"configVersionOperator": "acnt_example",
"configVersionSource": "openapi",
"configVersionAction": "modify",
"configVersionSourceInfo": {}
},
"errorCode": "",
"message": "",
"success": true,
"traceId": "TRACE-1EA80DD4-EB2C-4A9B-A146-D00606CC50E0"
}