> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/workflows/ja/burokku/blocks/data-storage/webhook-sink.md).

# Webhookシンク

この **Webhook出力** このブロックにより、ワークフローの結果を含む HTTP リクエストを送信して、Workflow から外部 API へデータを送信できます。

## このブロックの仕組み

複数の HTTP メソッド（GET、POST、PUT）をサポートしており、以下を送信するよう設定できます：

* JSON ペイロード
* クエリパラメータ
* multipart エンコードされたファイル

このブロックは、データ交換、通知、その他の統合のために、ワークフローをリモートシステムと統合する柔軟性を提供するよう設計されています。

### クエリパラメータの設定

リクエストのクエリパラメータは簡単に設定できます：

```
query_parameters = {
    "api_key": "$inputs.api_key",
}
```

は、次の URL にリクエストを送信します： `https://your-host/some/resource?api_key=<API_KEY_VALUE>`

### ヘッダーの設定

ヘッダーの設定は、クエリパラメータの設定と同じくらい簡単です：

```
headers = {
    "api_key": "$inputs.api_key",
}
```

### JSON ペイロードの送信

メッセージ本文を、指定した内容で構築した JSON ドキュメントに設定できます。 `json_payload` と `json_payload_operations` プロパティ。 `json_payload` 〜と同様に動作します `query_parameters` と `headers`、ただし JSON 本文の要素に対して UQL 操作を任意で適用できます。

オブジェクト検出モデルが予測したバウンディング बॉックスの数を、 `detections_number`という名前の本文フィールドで送信したいとしましょう。その場合、次のような設定を指定する必要があります：

```
json_payload = {
    "detections_number": "$steps.model.predictions",
}
json_payload_operations = {
    "detections_number": [{"type": "SequenceLength"}]
}
```

### POST リクエストでの Multipart エンコードファイル

エンドポイントは multipart リクエストも受け付ける場合があります。JSON ペイロードと同様の方法で作成でき、その際は `multi_part_encoded_files` と `multi_part_encoded_files_operations`.

リクエストで画像を送信したいとしましょう。その場合、設定は次のようになります：

```
multi_part_encoded_files = {
    "image": "$inputs.image",
}
multi_part_encoded_files_operations = {
    "image": [{"type": "ConvertImageToJPEG"}]
}
```

### クールダウン

このブロックは `cooldown_seconds` （これは **デフォルトで `5` 秒**）を受け付け、意図しない通知の連続送信を防ぎます。必要に応じて調整し、 `0` を設定するとクールダウンなしを示します。

クールダウン期間中に、このステップが連続実行されると `throttling_status` 出力が `True` に設定され、通知は送信されません。

{% hint style="warning" %}
**クールダウンの制限**

現在のクールダウン実装は動画処理に限定されています。HTTP サービスの背後で実行されるワークフロー（Roboflow Hosted API、Dedicated Deployment、または self-hosted `inference` サーバー）でこのブロックを使用しても、HTTP リクエストの処理には影響しません。
{% endhint %}

### 非同期実行

を設定します。 `fire_and_forget` プロパティ。リクエストをバックグラウンドで送信し、データの送信を待たずに Workflow を続行したい場合は True に設定します。この場合、 `error_status` 出力には依存できず、これは常に `False`に設定されるため、 **設定を `fire_and_forget=False` にしてデバッグすることを推奨します**.

### 実行時パラメーターに基づく通知の無効化

場合によっては、手動で無効にすると便利なことがあります。 **Webhook シンク** ブロック。これは設定で可能です `disable_sink` フラグをワークフロー入力への参照として保持することで可能です。このように設定すると、呼び出し元は合意した入力パラメーターを送ることで必要に応じて sink を無効化できます。

## 一般的な使用例

* このブロックを\[ブロックタイプに基づく目的]に使用します

## 他のブロックへの接続

このブロックの出力は、ワークフロー内の他のブロックに接続できます。

### 型識別子

ステップで次の識別子を使用してください `"type"` フィールド： `roboflow_core/webhook_sink@v1` ワークフローにこのブロックをステップとして追加するには。

### プロパティ

| **名前**                                | **型**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | **説明**                                                                  | 参照 |
| ------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | -- |
| `name`                                | `str`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | このステップの一意の識別子を入力してください。                                                 | ❌  |
| `url`                                 | `str`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | リクエストを送信するリソースの URL。                                                    | ✅  |
| `method`                              | `str`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | 使用する HTTP メソッド。                                                         | ❌  |
| `query_parameters`                    | `Dict[str, Union[List[Union[bool, float, int, str]], bool, float, int, str]]`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | リクエストのクエリパラメータ。                                                         | ✅  |
| `headers`                             | `Dict[str, Union[bool, float, int, str]]`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | リクエストのヘッダー。                                                             | ✅  |
| `json_payload`                        | `Dict[str, Union[Dict[Any, Any], List[Any], bool, float, int, str]]`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | JSON ペイロードに入れるフィールド。                                                    | ✅  |
| `json_payload_operations`             | `Dict[str, List[Union[ClassificationPropertyExtract, ConvertDictionaryToJSON, ConvertImageToBase64, ConvertImageToJPEG, DetectionsFilter, DetectionsOffset, DetectionsPropertyExtract, DetectionsRename, DetectionsSelection, DetectionsShift, DetectionsToDictionary, Divide, ExtractDetectionProperty, ExtractFrameMetadata, ExtractImageProperty, LookupTable, Multiply, NumberRound, NumericSequenceAggregate, PickDetectionsByParentClass, RandomNumber, SequenceAggregate, SequenceApply, SequenceElementsCount, SequenceLength, SequenceMap, SortDetections, StringMatches, StringSubSequence, StringToLowerCase, StringToUpperCase, TimestampToISOFormat, ToBoolean, ToNumber, ToString]]]` | 定義されたデータに対して、各値ごとに実行する操作の UQL 定義。 `json_payload` パラメータ。                 | ❌  |
| `multi_part_encoded_files`            | `Dict[str, Union[Dict[Any, Any], List[Any], bool, float, int, str]]`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | Multipart エンコードされたファイルとして POST するデータ。                                   | ✅  |
| `multi_part_encoded_files_operations` | `Dict[str, List[Union[ClassificationPropertyExtract, ConvertDictionaryToJSON, ConvertImageToBase64, ConvertImageToJPEG, DetectionsFilter, DetectionsOffset, DetectionsPropertyExtract, DetectionsRename, DetectionsSelection, DetectionsShift, DetectionsToDictionary, Divide, ExtractDetectionProperty, ExtractFrameMetadata, ExtractImageProperty, LookupTable, Multiply, NumberRound, NumericSequenceAggregate, PickDetectionsByParentClass, RandomNumber, SequenceAggregate, SequenceApply, SequenceElementsCount, SequenceLength, SequenceMap, SortDetections, StringMatches, StringSubSequence, StringToLowerCase, StringToUpperCase, TimestampToISOFormat, ToBoolean, ToNumber, ToString]]]` | 定義されたデータに対して、各値ごとに実行する操作の UQL 定義。 `multi_part_encoded_files` パラメータ。     | ❌  |
| `form_data`                           | `Dict[str, Union[Dict[Any, Any], List[Any], bool, float, int, str]]`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | form-data に入れるフィールド。                                                    | ✅  |
| `form_data_operations`                | `Dict[str, List[Union[ClassificationPropertyExtract, ConvertDictionaryToJSON, ConvertImageToBase64, ConvertImageToJPEG, DetectionsFilter, DetectionsOffset, DetectionsPropertyExtract, DetectionsRename, DetectionsSelection, DetectionsShift, DetectionsToDictionary, Divide, ExtractDetectionProperty, ExtractFrameMetadata, ExtractImageProperty, LookupTable, Multiply, NumberRound, NumericSequenceAggregate, PickDetectionsByParentClass, RandomNumber, SequenceAggregate, SequenceApply, SequenceElementsCount, SequenceLength, SequenceMap, SortDetections, StringMatches, StringSubSequence, StringToLowerCase, StringToUpperCase, TimestampToISOFormat, ToBoolean, ToNumber, ToString]]]` | 定義されたデータに対して、各値ごとに実行する操作の UQL 定義。 `form_data` パラメータ。                    | ❌  |
| `request_timeout`                     | `整数`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | リモート API の応答を待つ秒数。                                                      | ✅  |
| `fire_and_forget`                     | `bool`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | ブロックを非同期（True）で実行してワークフローを高速化するか、同期（False）で実行してデバッグとエラー処理を行うかを示すブールフラグ。 | ✅  |
| `disable_sink`                        | `bool`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | ブロックの実行を無効にするブールフラグ。                                                    | ✅  |
| `cooldown_seconds`                    | `整数`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | フォローアップ通知を送信できるようになるまで待つ秒数。                                             | ✅  |

この **参照** 列は、で利用可能な動的値を使ってプロパティをパラメータ化できる可能性を示します `ワークフロー` 実行時。参照 *バインディング* 詳細は。

### ランタイム互換性

`requires_internet` - エアギャップ／オフライン環境: このブロックは、完全にオフライン／エアギャップ環境から到達できないサービスに依存しています。

`soft` - ランタイム `hosted_serverless`, `dedicated_deployment`；実行 `リモート` : クールダウン／レート制限タイマーはプロセスメモリに保存されます。ステートレスまたは複数レプリカのHTTPランタイムでリモートステップ実行を行う場合、各リクエストごとに新しいワーカーが割り当てられるため、クールダウンはスロットリングしません。クールダウンが文書どおりに機能するのは、永続的なWebRTCセッションでのローカルステップ実行のみです。

### 入力と出力のバインディング

利用可能な接続は、そのバインディング種別によって異なります。どのバインディング種別が `Webhook出力` のバージョン `v1` あるか確認してください。

<details>

<summary>入力と出力のバインディング</summary>

* 入力
  * `url` ([*`string`*](/workflows/ja/gaido/developer-guide/kinds/string.md)）：リクエストを送信するリソースの URL。
  * `query_parameters` (*Union\[*[*`roboflow_model_id`*](/workflows/ja/gaido/developer-guide/kinds/roboflow-model-id.md)*,* [*`list_of_values`*](/workflows/ja/gaido/developer-guide/kinds/list-of-values.md)*,* [*`整数`*](/workflows/ja/gaido/developer-guide/kinds/integer.md)*,* [*`string`*](/workflows/ja/gaido/developer-guide/kinds/string.md)*,* [*`float`*](/workflows/ja/gaido/developer-guide/kinds/float.md)*,* [*`boolean`*](/workflows/ja/gaido/developer-guide/kinds/boolean.md)*,* [*`roboflow_api_key`*](/workflows/ja/gaido/developer-guide/kinds/roboflow-api-key.md)*,* [*`top_class`*](/workflows/ja/gaido/developer-guide/kinds/top-class.md)*,* [*`roboflow_project`*](/workflows/ja/gaido/developer-guide/kinds/roboflow-project.md)*,* [*`float_zero_to_one`*](/workflows/ja/gaido/developer-guide/kinds/float-zero-to-one.md)*]*）：リクエストのクエリパラメータ。
  * `headers` (*Union\[*[*`roboflow_model_id`*](/workflows/ja/gaido/developer-guide/kinds/roboflow-model-id.md)*,* [*`整数`*](/workflows/ja/gaido/developer-guide/kinds/integer.md)*,* [*`float_zero_to_one`*](/workflows/ja/gaido/developer-guide/kinds/float-zero-to-one.md)*,* [*`string`*](/workflows/ja/gaido/developer-guide/kinds/string.md)*,* [*`float`*](/workflows/ja/gaido/developer-guide/kinds/float.md)*,* [*`roboflow_api_key`*](/workflows/ja/gaido/developer-guide/kinds/roboflow-api-key.md)*,* [*`top_class`*](/workflows/ja/gaido/developer-guide/kinds/top-class.md)*,* [*`roboflow_project`*](/workflows/ja/gaido/developer-guide/kinds/roboflow-project.md)*,* [*`boolean`*](/workflows/ja/gaido/developer-guide/kinds/boolean.md)*]*）：リクエストのヘッダー。
  * `json_payload` ([*`*`*](/workflows/ja/gaido/developer-guide/kinds/wildcard.md)）：JSON ペイロードに入れるフィールド。
  * `multi_part_encoded_files` ([*`*`*](/workflows/ja/gaido/developer-guide/kinds/wildcard.md)）：Multipart エンコードされたファイルとして POST するデータ。
  * `form_data` ([*`*`*](/workflows/ja/gaido/developer-guide/kinds/wildcard.md)）：form-data に入れるフィールド。
  * `request_timeout` ([*`整数`*](/workflows/ja/gaido/developer-guide/kinds/integer.md)）：リモート API の応答を待つ秒数。
  * `fire_and_forget` ([*`boolean`*](/workflows/ja/gaido/developer-guide/kinds/boolean.md)) : ブロックを非同期（True）で実行してワークフローを高速化するか、同期（False）で実行してデバッグとエラー処理を行うかを示すブールフラグ。
  * `disable_sink` ([*`boolean`*](/workflows/ja/gaido/developer-guide/kinds/boolean.md)) : ブロックの実行を無効にするブールフラグ。
  * `cooldown_seconds` ([*`整数`*](/workflows/ja/gaido/developer-guide/kinds/integer.md)）：フォローアップ通知を送信できるようになるまで待つ秒数。
* 出力
  * `error_status` ([`boolean`](/workflows/ja/gaido/developer-guide/kinds/boolean.md)) : ブールフラグ。
  * `throttling_status` ([`boolean`](/workflows/ja/gaido/developer-guide/kinds/boolean.md)) : ブールフラグ。
  * `message` ([`string`](/workflows/ja/gaido/developer-guide/kinds/string.md)) : 文字列値。

</details>

<details>

<summary>JSON 定義の例</summary>

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/webhook_sink@v1",
	    "url": "<block_does_not_provide_example>",
	    "method": "<block_does_not_provide_example>",
	    "query_parameters": {
	        "api_key": "$inputs.api_key"
	    },
	    "headers": {
	        "api_key": "$inputs.api_key"
	    },
	    "json_payload": {
	        "field": "$steps.model.predictions"
	    },
	    "json_payload_operations": {
	        "predictions": [
	            {
	                "property_name": "class_name",
	                "type": "DetectionsPropertyExtract"
	            }
	        ]
	    },
	    "multi_part_encoded_files": {
	        "image": "$steps.visualization.image"
	    },
	    "multi_part_encoded_files_operations": {
	        "predictions": [
	            {
	                "property_name": "class_name",
	                "type": "DetectionsPropertyExtract"
	            }
	        ]
	    },
	    "form_data": {
	        "field": "$inputs.field_value"
	    },
	    "form_data_operations": {
	        "predictions": [
	            {
	                "property_name": "class_name",
	                "type": "DetectionsPropertyExtract"
	            }
	        ]
	    },
	    "request_timeout": "$inputs.request_timeout",
	    "fire_and_forget": "$inputs.fire_and_forget",
	    "disable_sink": false,
	    "cooldown_seconds": "$inputs.cooldown_seconds"
	}
```

</details>
