

# CloudFront Functions に対する制限
<a name="cloudfront-function-restrictions"></a>

以下の制限は、CloudFront Functions のみに適用されます。

**Contents**
+ [ログ](#cloudfront-function-restrictions-logs)
+ [リクエストボディ](#cloudfront-function-restrictions-request-body)
+ [CloudFront KeyValueStore API での一時的な認証情報の使用](#regional-endpoint-for-key-value-store)
+ [ランタイム](#cloudfront-function-runtime-restrictions)
+ [コンピューティング使用率](#cloudfront-function-restrictions-compute-utilization)

クォータ (以前は制限と呼ばれていました) の詳細については、「[CloudFront Functions のクォータ](cloudfront-limits.md#limits-functions)」を参照してください。

## ログ
<a name="cloudfront-function-restrictions-logs"></a>

CloudFront Functions の関数ログは 10 KB で切り捨てられます。

## リクエストボディ
<a name="cloudfront-function-restrictions-request-body"></a>

CloudFront Functions は、HTTP リクエストのボディにアクセスできません。

## CloudFront KeyValueStore API での一時的な認証情報の使用
<a name="regional-endpoint-for-key-value-store"></a>

AWS Security Token Service (AWS STS) を使用して、一時的なセキュリティ認証情報 (セッショントークンとも呼ばれる) を生成できます。**セッショントークンを使用すると、AWS Identity and Access Management (IAM) ロールを一時的に引き受けて、AWS のサービス にアクセスできます。

[CloudFront KeyValueStore API](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_Operations_Amazon_CloudFront_KeyValueStore.html) を呼び出すには、AWS STS でリージョンのエンドポイントを使用して、Version 2 のセッショントークンを返します。****AWS STS (`sts.amazonaws.com`) のグローバルエンドポイントを使用する場合、AWS STS は、Signature Version 4A (SigV4A) ではサポートされていない Version 1 セッショントークンを生成します。****その結果、認証エラーが発生します。

CloudFront KeyValueStore API を呼び出すために使用できるオプション: 

**AWS CLI と AWS SDK**  
AWS CLI または AWS SDKを設定すると、リージョンの AWS STS エンドポイントを使用できます。詳細については、「AWS SDK とツールリファレンスガイド」の「[AWS STS リージョンエンドポイント](https://docs.aws.amazon.com/sdkref/latest/guide/feature-sts-regionalized-endpoints.html)」を参照してください。**  
利用可能な AWS STS エンドポイントの詳細については、「**IAM ユーザーガイド」の「[リージョンとエンドポイント](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html#id_credentials_region-endpoints)」を参照してください。

**SAML**  
リージョンの AWS STS エンドポイントを使用するように SAML を設定できます。詳細については、ブログ記事「[フェイルオーバーにリージョン SAML エンドポイントを使用する方法](https://aws.amazon.com/blogs/security/how-to-use-regional-saml-endpoints-for-failover/)」を参照してください。

**`SetSecurityTokenServicePreferences` API**  
リージョンの AWS STS エンドポイントを使用する代わりに、AWS STS のグローバルエンドポイントを設定して Version 2 セッショントークンを返すことができます。これを行うには、[SetSecurityTokenServicePreferences](https://docs.aws.amazon.com/IAM/latest/APIReference/API_SetSecurityTokenServicePreferences.html) API オペレーションを使用して、AWS アカウント を設定します。  

**Example 例: IAM CLI コマンド**  

```
aws iam set-security-token-service-preferences --global-endpoint-token-version v2Token
```
このオプションの代わりに、AWS STS リージョンエンドポイントを使用することをお勧めします。リージョンエンドポイントを使用すると、可用性とフェイルオーバーシナリオが向上します。

**カスタム ID プロバイダー**  
フェデレーションを行い、ロールを引き受けるカスタム ID プロバイダーを使用している場合は、セッショントークンの生成を担当する親 ID プロバイダーシステムの前述のオプションのいずれかを使用します。

## ランタイム
<a name="cloudfront-function-runtime-restrictions"></a>

CloudFront Functions のランタイム環境は、動的コード評価をサポートしておらず、ネットワーク、ファイルシステム、タイマーへのアクセスを制限します。詳細については、「[制限された機能](functions-javascript-runtime-10.md#writing-functions-javascript-features-restricted-features)」を参照してください。

**注記**  
CloudFront KeyValueStore を使用するには、CloudFront 関数で [JavaScript ランタイム 2.0](functions-javascript-runtime-20.md) を使用する必要があります。

## コンピューティング使用率
<a name="cloudfront-function-restrictions-compute-utilization"></a>

CloudFront Functions には実行に使用できる時間に対する制限があり、これは*コンピューティング使用率*として測定されます。コンピューティング使用率は、関数の実行にかかった時間を最大許容時間に対する割合として示す 0 から 100 の数値です。例えば、コンピューティング使用率が 35 の場合、関数は最大許容時間の 35% で完了したことを意味します。

[関数をテストする](test-function.md)ときは、テストイベントの出力でコンピューティング使用率の値を確認できます。production 関数については、CloudWatch、または [CloudFront コンソールの [Monitoring] (モニタリング) ページ](https://console.aws.amazon.com/cloudfront/v4/home?#/monitoring)で[コンピューティング使用率メトリクス](viewing-cloudfront-metrics.md#monitoring-console.cloudfront-functions)を確認できます。