> 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 Sink

Workflow の結果を使ってリモート API にリクエストを送信します。

その **Webhook受信先** このブロックは、ワークフローの結果を含むHTTPリクエストを送信することで、ワークフローから外部APIへデータを送信できるようにします。

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

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

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

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

## 宛先のセキュリティ

実行環境は次のみを受け入れます `http://` と `https://` 宛先。各ホスト名を1回だけ解決し、解決されたアドレスに接続し、リダイレクトとHTTP(S)プロキシを拒否します。

Self-hosted Inferenceでは、デフォルトでループバック、プライベート、リンクローカル、その他の非グローバル宛先が許可されるため、factoryおよびLANのwebhookは引き続き動作します。次を設定してください `ALLOW_WEBHOOK_WORKFLOWS_SINK_TO_NON_GLOBAL_ADDRESSES=False` を信頼できない呼び出し元がwebhookの宛先を選べる場合のInferenceサーバー環境で。これはホスト設定であり、ワークフロー定義の一部ではありません。

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

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

```
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、またはセルフホストの `inference` サーバー）の背後で実行されるワークフローの文脈でこのブロックを使用しても、HTTPリクエストの処理には影響しません。
{% endhint %}

### 非同期実行

次を設定します: `fire_and_forget` プロパティ。リクエストをバックグラウンドで送信し、データ送信を待たずにワークフローを進めたい場合はTrueに設定してください。この場合、 `error_status` 出力は信頼できません。これは常に `False`に設定されるためです。そのため、 **次の設定を推奨します: `fire_and_forget=False` デバッグ目的で**.

### ランタイムパラメータに基づく通知の無効化

場合によっては、手動で **Webhook受信先** ブロックを無効にすると便利です。これは次を設定することで可能です: `disable_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]]]` | 定義されたデータに対して、 `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]]]` | 定義されたデータに対して、 `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]]]` | 定義されたデータに対して、 `form_data` パラメータ。                                            | ❌  |
| `request_timeout`                     | `整数`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | リモートAPIの応答を待つ秒数。                                                            | ✅  |
| `fire_and_forget`                     | `ブール値`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | より高速なワークフローのためにブロックを非同期（True）で実行するか、デバッグとエラー処理のために同期（False）で実行するかを示すブールフラグ。 | ✅  |
| `disable_sink`                        | `ブール値`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | ブロックの実行を無効にするブールフラグ。                                                        | ✅  |
| `cooldown_seconds`                    | `整数`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 追跡通知を送信できるようになるまで待つ秒数。                                                      | ✅  |

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

### ランタイム互換性

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

`ソフト` - ランタイム `hosted_serverless`, `dedicated_deployment`; 実行 `リモート` : クールダウン/レート制限タイマーはプロセスメモリに保存されます。ステートレスまたはマルチレプリカのHTTPランタイムでリモートステップ実行を行うと、各リクエストは新しいワーカーを取得するため、クールダウンは抑制を行いません。クールダウンがドキュメントどおりに機能するのは、永続的なWebRTCセッションでのローカルステップ実行のみです。

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

利用可能な接続は、そのバインディングの種類によって異なります。どのバインディング種類が `Webhook受信先` バージョン `v1` あります。

<details>

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

* 入力
  * `url` ([*`文字列`*](/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)*,* [*`文字列`*](/workflows/ja/gaido/developer-guide/kinds/string.md)*,* [*`浮動小数点数`*](/workflows/ja/gaido/developer-guide/kinds/float.md)*,* [*`ブール値`*](/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)*,* [*`文字列`*](/workflows/ja/gaido/developer-guide/kinds/string.md)*,* [*`浮動小数点数`*](/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)*,* [*`ブール値`*](/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` ([*`ブール値`*](/workflows/ja/gaido/developer-guide/kinds/boolean.md)): より高速なワークフローのためにブロックを非同期（True）で実行するか、デバッグとエラー処理のために同期（False）で実行するかを示すブールフラグ。
  * `disable_sink` ([*`ブール値`*](/workflows/ja/gaido/developer-guide/kinds/boolean.md)): ブロックの実行を無効にするブールフラグ。
  * `cooldown_seconds` ([*`整数`*](/workflows/ja/gaido/developer-guide/kinds/integer.md)): 追跡通知を送信できるようになるまで待つ秒数。
* 出力
  * `error_status` ([`ブール値`](/workflows/ja/gaido/developer-guide/kinds/boolean.md)): ブールフラグ。
  * `throttling_status` ([`ブール値`](/workflows/ja/gaido/developer-guide/kinds/boolean.md)): ブールフラグ。
  * `メッセージ` ([`文字列`](/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>
