Experience Edgeの制限と制限
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このトピックでは、Experience Edgeの制限や制約について説明します。契約によっては、帯域幅やストレージに関する追加の使用制限が適用される場合があります。また、Experience Edgeのレート制限やキャッシュ レシピの提案もご確認いただくことをお勧めします。
セキュリティ
Experience EdgeはSitecoreのコンテンツにセキュリティ制約を課していません。公開したくないコンテンツの公開を避けるために、出版制限を適用しなければなりません。
GraphQL APIおよびクエリの挙動
-
デリバリー GraphQL APIエンドポイントはレート制限があります。非常に大規模なウェブサイトを構築する場合、Experience Edge GraphQLエンドポイントへの リクエストに対してリトライ を有効にしてビルドを完了させる必要があります。上限を超えると、Experience Edgeは429の返答を返します。以下のレート制限が適用され、レスポンスヘッダーに確認できます:
ヘッダー
概要
Xレートリミットリミット
Delivery GraphQL APIの速度制限は1秒あたり 80 リクエストです。
X-レート-リミット-レリーディング
リセット時間枠内に残っている利用可能なリクエストの数。リセット時間は1秒です。
例えば、同じ秒間に5回のリクエストをした場合、5回目のリクエストは 75返されます。
Xレートリミットリセット
リセット時間は数秒です。その価値は 1です。
-
パフォーマンスの理由から、1回のリクエストで最大1000エンティティを返すことができます。これがfirstの最大値です。合計1000個以上のエンティティを取得するには、カーソルベースのページを使い、pageInfoのendCursor値を各リクエストのafter引数として渡し、pageInfo.hasNextが偽になるまで繰り返します。
-
永続クエリ はサポートされていません。
-
Experience Edge GraphQLスキーマに既知の問題があるため、クエリ入力でリテラル表記と変数表記を混用してはいけません。GraphQLクエリで変数を使用する場合は、すべてのリテラルを変数に置き換える必要があります。
正解:
query MyQuery($hasLayout: String!, $parent: String!) { search( where: { AND: { name: "_hasLayout", value: $hasLayout } { name: "_parent", value: $parent }
} ) { total } }
誤り:
query MyQuery($parent: String!) { search( where: { AND: { name: "_hasLayout", value: "true" } { name: "_parent", value: $parent }
} ) { total } }
-
ミラードスキーマは、異なるトークン化方法のために、アイテムテキストフィールドでフィルタリングやソートを行う際に一貫性のない結果を返すことがあります。
出版行動
- Experience Edge Connectorは、公開時点のアイテムのレイアウトサービス出力の静的スナップショットを公開します。つまり、次のようになります:
- Experience Edgeは、ユーザーやクエリ文字列などに基づくレイアウトサービスからのコンテキストや動的出力をサポートしていません。
- レンダリング設定やレイアウトサービスの拡張を変更し、レイアウトサービスの出力に影響を与える場合は、影響を受けた項目を再公開しなければなりません。
- Sitecore言語のフォールバックルールは公開時に適用され、インスタンス上でのみ有効または無効化可能で、個々のサイトではできません。言語のフォールバック設定を変更する場合は、影響を受けた項目を再公開しなければなりません。
- クローンや標準値を通じてアイテムが継承する値は、公開時に解決されます。クローンソースや標準値の変更には、依存する項目の再公開が必要です。
- コンテンツリゾルバーがクエリを使ってデータソース(またはその子データ)を取得する場合、更新されたコンテンツはデータソースアイテム(またはその子)およびそれを使用する部分的なデザインやページの両方を再公開する必要があるかもしれません。共有コンポーネントの二重再公開を避けるために、 統合されたGraphQL を使用し、「 コンポーネント固有のデータの取得 」ガイダンスに従ってください。
- LinkManagerはスペースをダッシュにエンコードします。つまり、同じ親の下にある2つの項目がスペースやダッシュだけ異なる場合、例えば Test Item と Test-Itemは同じ識別子を得ます。その結果、これらのアイテムのうち公開後にExperience Edgeで利用可能になるのは1つだけです。
- "*"をターゲットホスト名にすると、公開時にエラーが発生します。
- 共有フィールドを含む項目は、すべてのバージョンが同じフィールド値を使用し、共有フィールドの変更はすべてのバージョンと言語に反映されます。したがって、有効で最終的なワークフロー状態にあるアイテムのバージョンを公開した場合、共有フィールドの現在の値がそのアイテムに反映され、公開されたバージョンに表示されます。比較すると、バージョン付きフィールドはバージョン間で値を共有しません。
- ワイルドカード項目はプレビューエンドポイントでサポートされていますが、Experience Edgeのデリバリーエンドポイントではサポートされていません。
収容人数制限
制限
価値
リクエストごとに返される最大エンティティ数( first 引数の最大値)
1000
環境ごとの最大サイト数
1000
リダイレクトの最大数
9990
メディアアイテムの最大サイズ
50MB
includedPathsに供給される最大合計経路数excludedPaths
100
siteInfo.routes場のincludedPathsとexcludedPaths引数に与えられる経路の合計数は100に制限されています。この制限は、提供したパス文字列の数に適用され、それらのパスの下にあるアイテムの数には適用されません。例えば、次の引数は各パスのエントリ数に関係なく4つのパスとしてカウントされます。
{ "includedPaths": "/products", "/services", "excludedPaths": "/blog", "/find-trials/study" }
以下のサンプルクエリを使って、特定の言語でサイトのすべての利用可能なルートを表示し、制限以下であることを確認できます:
query ($siteName: String!, $language: String!) { site { siteInfo(site: $siteName) { routes(language: $language) { total results { route { id } routePath } pageInfo { endCursor hasNext } } } } }
コンテンツおよびデータモデリング
-
テンプレートはアイテムとして保存されないため、itemクエリで直接データを取得することはできません。これを試みると値がnull戻ってきます。しかし、テンプレートに関する情報を含む別の種類の公開アイテムのデータを取得することは可能です。
例文クエリ:
query { item(path: "/sitecore/content/<REST_OF_PATH>", language: "en") { id template { id } } }
例回答:
{ "data": { "item": { "id": "B6551C4C70084577AFEE4B74676F519A", "template": { "id": "0A7AA3735ED14E9B967822D3C5FAF6DF" } } } }
-
Experience Edgeは環境全体に対して単一のコンテンツスコープのみを利用しています。セキュリティトークン、クエリキャッシュのクリア、ウェブフックはサイトごとに制限できません。
-
Experience Edgeのレイアウトデータはアイテム表示のデバイス層Defaultのみをサポートしています。
メディア
-
Experience EdgeのメディアURLは大文字を区別しています。例えば、Images\Bannersフォルダー内のアイテムを参照するには、フォルダー名が大文字で表記されている場合、以下の方法を使用します。
https://edge.sitecorecloud.io/<SITE_NAME>/media/Images/Banners/promo-banner.jpg
-
クエリ文字列パラメータ(例: ?h=200&w=200)を使ってアニメーション画像のサイズを変更する場合、画像全体の面積(幅×高さ×フレーム数)は1億ピクセル未満でなければなりません。そうでなければ、リサイズ要求は拒否されます。
サポートされていない機能
- Experience Edgeは仮想フォルダをサポートしていません。
- Experience Edgeはエイリアスに対応していません。
- Experience Edgeは、同じ開始項目を指す複数のサイト定義をサポートしていません。
- Sitecore追跡や分析はExperience Edge APIリクエストを反映しません。
Experience Edgeは、サイト定義への着信リクエストの解決時に厳格なルールを適用します。これらのルールは、マルチサイトや多言語構成に影響を与えることがあります。
サイト定義解像度の制限
Experience Edgeは、サイト定義への着信リクエストの解決時に厳格なルールを適用します。これらのルールは、マルチサイトや多言語構成に影響を与えることがあります。
シングルスタートアイテムの制限(デフォルト動作)
デフォルトでは、Experience Edgeは同じ開始項目を指す複数のサイト項目をサポートしていません。
これは次のことを意味します:
- 論理的なサイトは通常、1つのサイト項目で表現されるべき /Settings/Site Grouping。
- 異なるホスト名を使っていても、同じ開始項目を共有する複数のサイト項目を作成することは、デフォルトではサポートされていません。
- もし組織がSitecore XPまたはSXA実装から移行した場合、同じ開始項目を指す複数のサイト定義はSitecoreAIでサポートされていないことに注意してください。
複数のサイトアイテムが追加設定なしで同じスタートアイテムを共有している場合、Experience Edgeはリクエストを正しく解決できない可能性があります。
例外
Experience Edgeは、各サイト項目が異なるデフォルト言語を持つ場合でも、同じ開始項目を指す複数のサイト項目をサポートするように設定できます。
この動作を有効にするには、以下の設定オプションを設定してください:
ExperienceEdge.SiteResolvingMatchCurrentLanguage = true
パッチファイルを使って設定を更新できます。完了後は、必ずサイト全体の再公開を行う必要があります。
この設定が有効になっている場合:
- Experience Edgeはホスト名と現在の言語を使ってサイト定義を解決します。
- 複数のサイト項目は同じ開始項目を参照できますが、条件は以下の通りです。
- 各サイトアイテムには固有のデフォルト言語があり、
- 各言語は異なるホストネームに関連付けられています。
この構成は、コンテンツツリーの重複なしに言語固有のホスト名を必要とする多言語サイトをサポートします。
!重要この設定はデフォルトで無効にされており、明示的に有効にする必要があります。有効化後は、変更が適用されるために影響を受けたサイト項目を公開する必要があります。