

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 関数の制限
<a name="monetization-functions-limits"></a>

このページには、 関数に適用される制限が一覧表示されます。これらの制限は、作成時 (関数を作成または更新するとき) と実行時 (関数の実行時) に適用されます。

## フック実行制限
<a name="monetization-functions-limits-hook"></a>


| フック | 制限 | 値 | 
| --- | --- | --- | 
| PRE\_SESSION\_INITIALIZATION | 合計タイムアウト | 2,000 ミリ秒 | 
| PRE\_SESSION\_INITIALIZATION | 合計player\_paramsサイズ | 1,000 文字 | 
| PRE\_ADS\_REQUEST | 合計タイムアウト | 2,000 ミリ秒 | 
| POST\_ADS\_RESPONSE | 合計タイムアウト | 2,000 ミリ秒 | 
| POST\_ADS\_RESPONSE | 入力ペイロードのサイズ | 128 KB | 
| POST\_ADS\_RESPONSE | 出力サイズ | 256 KB | 
| PRE\_MANIFEST\_INSERTION | 合計タイムアウト | 2,000 ミリ秒 | 
| PRE\_MANIFEST\_INSERTION | 入力ペイロードのサイズ | 128 KB | 
| PRE\_MANIFEST\_INSERTION | 出力サイズ | 256 KB | 
| PRE\_MANIFEST\_INSERTION | 呼び出しあたりの挿入広告 | 10 | 
| リクエストパスフックの組み合わせ (リクエストごと) | 共有実行予算 | 2,000 ミリ秒 | 

これらのタイムアウトは、すべての関数ステップや HTTP 呼び出しを含むフック実行全体を対象としています。フックがタイムアウトを超えると、MediaTailor はすべての出力を破棄し、関数がアタッチされていないかのように続行します。

各フックの独自のタイムアウトに加えて、1 つのリクエスト内で実行される `POST_ADS_RESPONSE`、、および `PRE_ADS_REQUEST``PRE_MANIFEST_INSERTION`フックは、合計 2,000 ミリ秒の実行予算を共有します。以前のフックで費やされる時間は、同じリクエスト内の後のフックで使用できる予算を減らし、フックの有効なタイムアウトは、独自のタイムアウトと残りの予算のうち小さい方です。フックが起動する前に予算を使い果たすと、MediaTailor はそのフックを完全にスキップし、リクエストの処理を続行します。 はセッションの初期化中に`PRE_SESSION_INITIALIZATION`実行され、結合された予算の一部ではありません。

入力ペイロードサイズ制限は、MediaTailor が `POST_ADS_RESPONSE`および `PRE_MANIFEST_INSERTION`フック用に構築するシリアル化された JSON 入力に適用されます。入力が 128 KB を超える場合、MediaTailor はそのリクエストのフック呼び出しをスキップします。出力サイズ制限は、関数がフックの書き込み可能な名前空間に書き込むことができるシリアル化された合計サイズを上限とし、256 KB を超える出力は破棄されます。

個々の関数タイムアウト (HTTP\_REQUEST `RequestTimeoutMilliseconds` 関数の場合など) は、フックの合計タイムアウト内に収まる必要があります。たとえば、フックタイムアウトが 2,000 ミリ秒で、HTTP\_REQUEST 関数が 2,000 ミリ秒`RequestTimeoutMilliseconds`に設定されている場合、HTTP 呼び出しの前後に処理が発生した場合、関数は完了する前にタイムアウトすることがあります。

`player_params` 合計サイズには、すべての出力キーの名前と値の合計文字数が含まれます。たとえば、 `player_params.deviceType = "mobile"`と `mobile`を出力すると`deviceType`、1,000 文字の合計`us-east-1`に対して `region`、、、 が`player_params.region = "us-east-1"`カウントされます。

## 式の制限
<a name="monetization-functions-limits-expression"></a>


| 制限 | 値 | で強制 | 
| --- | --- | --- | 
| 式あたりの CPU 時間 | 100 ミリ秒 | 実行時間 | 
| スタックの深さ | 100 | 実行時間 | 
| 式の長さ | 1,000 文字 | オーサリング | 

実行時に式が制限を超えると、MediaTailor は式を停止し、エラーを記録します。特定のエラータイプの詳細については、「」を参照してください[トラブルシューティングとモニタリング](monetization-functions-troubleshooting.md)。

## 関数構成の制限
<a name="monetization-functions-limits-composition"></a>


| 制限 | 値 | 
| --- | --- | 
| シーケンシャルエグゼキュターあたりのステップ | 1～10 | 
| 同時エグゼキュターあたりの子 | 1～10 | 
| 最大同時実行数 (同時実行) | 1～2 | 
| デフォルトのタイムアウト (同時実行) | 2,000 ミリ秒 | 
| 同時実行あたりの一意の名前空間 | 必須 (作成時に検証) | 
| 最大ネスト深度 | 2 | 
| フックあたりの関数実行の合計数 | 20 | 
| 関数あたりの出力エントリ | 20 | 
| 円形参照 | 許可されていません | 

これらの制限は、オーサリング時に適用されます。

## HTTP リクエストの制限
<a name="monetization-functions-limits-http"></a>


| 制限 | 値 | 
| --- | --- | 
| URL 式の長さ | 25,000 文字 | 
| URL の長さ (評価後) | 2,048 文字 | 
| ボディ式の長さ | 100,000 文字 | 
| リクエスト本文のサイズ (評価後) | 64 KB | 
| ヘッダー数 | 50 | 
| ヘッダー名の長さ | 256 文字 | 
| ヘッダー値の長さ | 8,192 文字 | 
| リクエストタイムアウト | 100～2,000 ミリ秒 ( を介してお客様が設定可能RequestTimeoutMilliseconds) | 
| 許可された URL スキーム | https, http | 
| 制限付きヘッダー | Host, Transfer-Encoding, Content-Length, Connection | 

式の長さ制限とヘッダー制限は、関数を作成または更新するときに、作成時に適用されます。評価された URL と本文のサイズ制限、リクエストタイムアウト、および制限されたヘッダーは、MediaTailor が式を評価した後、実行時に適用されます。作成時に受け入れられた URL 式は、実行時に評価された URL 制限を超える可能性があります。その場合、リクエストは送信されません。

関数が制限付きヘッダーを設定すると、MediaTailor は作成時に関数設定を受け入れますが、実行中に HTTP リクエストが送信されるとヘッダーを削除します。

## レスポンスの制限
<a name="monetization-functions-limits-response"></a>


| 制限 | 値 | 
| --- | --- | 
| response.body 最大サイズ | 20,000 文字 | 
| response.text 最大長 | 20,000 文字 | 

これらの制限は実行時に適用されます。

## 出力制限
<a name="monetization-functions-limits-output"></a>


| 制限 | 値 | 
| --- | --- | 
| 出力値の最大長 (キーごと) | 1,000 文字 | 

これらの制限は実行時に適用されます。

## 許可された JSONata 関数
<a name="monetization-functions-limits-jsonata"></a>

許可される関数の完全なリストについては、「」を参照してください[JSONata 式リファレンス](monetization-functions-jsonata.md)。

これらの制限に関連するエラーの診断については、「」を参照してください[トラブルシューティングとモニタリング](monetization-functions-troubleshooting.md)。