Edge Dictionary の設定

Fastly では、更新可能でグローバルな Edge Dictionary を提供しています。Edge Dictionary は、データをキーと値のペアとして保存し、次のような頻繁に繰り返されるステートメントを:

1
2
3
4
5
if (something == "value1") {
  set other = "result1";
} else if (something == "value2") {
  set other = "result2";
}

以下のように定数として機能する単一の関数に変換し、

1
2
3
4
5
table <ID> {
  "KEY_STRING": "VALUE_STRING",
  "KEY_STRING2": "VALUE_STRING2",
  ...
}

サービスで使用できるようにします。

Edge Dictionary の活用例

  • 大規模なリファラーブロックリストの更新を必要とするコンテンツ共有およびソーシャルメディア
  • キャッシュバスティングの推測を防ぐためにキーを検証したいモバイル広告主
  • エッジで有効なユーザーキーを認証する顧客 (プライベートEdge Dictionary に関するガイドを参照)
  • 地理的な位置関係に基づいてユーザーを指定した国のサイトにリダイレクトしたいグローバルパブリッシャー
  • 指定したオブジェクトのトークンチェックを実施したいイメージプロバイダー
  • エッジで悪意のあるアクターをブロックしたい広告テクノロジー企業
  • API 経由で簡単に値を変更できるユーザーインターフェイスのバージョンをデプロイしている顧客

Dictionary の仕組み

Edge Dictionary は、ディクショナリコンテナとその中のディクショナリ項目で構成されます。ディクショナリコンテナをご利用のサービスバージョンに付加し、そのサービスが有効化されると、その中のデータはバージョンレスになります。つまり Edge Dictionary が作成された後、サービスのバージョンを上げることなく、いつでも Edge Dictionary データの追加や更新が可能だということです。

例えば、頻繁に変更されるリファラーブロックリストがあり、それをサービスと関連付けたいとします。サービスの設定が変更される場合の中でもとりわけ、設定が前のバージョンにロールバックされた場合は、ブロックリストのリファラードメインを削除せずに、サービス設定に残しておきたい場合があります。これを容易に実現するには Edge Dictionary を利用します。

Dictionary の作成方法と使用方法

Edge Dictionary を作成し、サービス内で使用するには、まず空のディクショナリコンテナを作成します。そして、まだ有効化されていないロック解除状態の仮バージョンのサービスにエントリーを追加します。Dictionary は、以下を使用して作成することができます。

制約と考慮事項

Edge Dictionary を作成する際は、以下の点に留意してください。

  • カスタム VCL によって作成された Edge Dictionary は、API やコントロールパネルを使用して操作することができません。 カスタム VCL を使用して作成されたディクショナリコンテナは、必ずカスタム VCL で操作する必要があります。カスタム VCL 経由でアップロードされた dictionary は、バージョンレスではありません。
  • ディクショナリコンテナ、項目キー、およびそれらの値には固有の制限があります。 ディクショナリコンテナは1000項目に制限されています。ディクショナリ項目キーは、256文字まで、値は8000文字までに制限されています。Dictionary がリソース制限 に近づいている場合は support@fastly.com までお問い合わせください。より効率的な方法をご提案できる可能性があります。
  • ディクショナリ項目キーでは大文字と小文字が区別されます。 ディクショナリ項目名では大文字と小文字が区別されます。Edge Dictionary を設計する場合は、お気をつけください。
  • Edge Dictionary のコンテンツは VCL として保存されます。 個人データを VCL に組み込まないようにしてください。コンプライアンスと法律に関する FAQ に、Fastly が個人情報の保護をどのように扱っているかが詳しく記載されています。

Edge Dictionary に変更を加える際は、次の点に注意してください。

  • ディクショナリコンテナを削除すると、編集中のサービスバージョンからのみ削除されます。 ディクショナリコンテナはバージョンに紐付けされており、クローンを作成したり元に戻したりすることができます。Edge Dictionary を使用する場合、容易に設定を前のバージョンにロールバックできるよう、現在のサービスバージョンからディクショナリコンテナを削除するなどの操作が行なえるようになっています。
  • ディクショナリコンテナを削除しても、その中のディクショナリ項目は削除されません。 ディクショナリコンテナ内の項目はバージョンレスです。サービスのバージョンが変わっても、データにアクセスしていただくことができます。
  • ディクショナリ項目の削除は恒久的です。 データは保存されないため、ディクショナリ項目を削除すると、エントリーはすべてのサービスバージョンから永久に削除されます。
  • Edge Dictionary の変更に関するイベントログは存在しません。 ディクショナリの項目を追加、更新、削除しても、その記録は残りません。変更の記録を確認するには、サービスバージョンを比較し、ディクショナリコンテナが最初にサービスバージョンに関連付けられた時点を確認することでしか調べるしかありません。
Back to Top