Dictionary の設定
最終更新日 2021-04-20
Fastly では、更新可能でグローバルな dictionary を提供しています。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",
...
}
サービスで使用できるようにします。
Dictionary の活用例
- 大規模なリファラーブロックリストの更新を必要とするコンテンツ共有およびソーシャルメディア
- キャッシュバスティングの推測を防ぐためにキーを検証したいモバイル広告主
- エッジで有効なユーザーキーを認証する顧客 (プライベート dictionary に関するガイドを参照)
- 地理的な位置関係に基づいてユーザーを指定した国のサイトにリダイレクトしたいグローバルパブリッシャー
- 指定したオブジェクトのトークンチェックを実施したいイメージプロバイダー
- エッジで悪意のあるアクターをブロックしたい広告テクノロジー企業
- API 経由で簡単に値を変更できるユーザーインターフェイスのバージョンをデプロイしている顧客
Dictionary の仕組み
Dictionary は、ディクショナリコンテナとその中のディクショナリ項目で構成されます。ディクショナリコンテナをご利用のサービスバージョンに付加し、そのサービスが有効化されると、その中のデータはバージョンレスになります。つまり dictionary が作成された後、サービスのバージョンを上げることなく、いつでも dictionary データの追加や更新が可能だということです。
例えば、頻繁に変更されるリファラーブロックリストがあり、それをサービスと関連付けたいとします。サービスの設定が変更される場合の中でもとりわけ、設定が前のバージョンにロールバックされた場合は、ブロックリストのリファラードメインを削除せずに、サービス設定に残しておきたい場合があります。これを容易に実現するには dictionary を利用します。
Dictionary の作成方法と使用方法
Dictionary を作成し、サービス内で使用するには、まず空のディクショナリコンテナを作成します。そして、まだ有効化されていないロック解除状態の仮バージョンのサービスにエントリーを追加します。Dictionary は、以下を使用して作成することができます。
プライベート dictionary を作成して、コントロールパネルや API にて表示および読み取りができない項目を格納することができます。
制約と考慮事項
Dictionary を作成する際は、以下の点に留意してください。
- カスタム VCL によって作成された dictionary は、API やコントロールパネルを使用して操作することができません。 カスタム VCL を使用して作成されたディクショナリコンテナは、必ずカスタム VCL で操作する必要があります。カスタム VCL 経由でアップロードされた dictionary は、バージョンレスではありません。
- ディクショナリコンテナ、項目キー、およびそれらの値には固有の制限があります。 ディクショナリコンテナは1000項目に制限されています。ディクショナリ項目キーは、256文字まで、値は8000文字までに制限されています。Dictionary がリソース制限 に近づいている場合は support@fastly.com までお問い合わせください。より効率的な方法をご提案できる可能性があります。
- ディクショナリ項目キーでは大文字と小文字が区別されます。 ディクショナリ項目名では大文字と小文字が区別されます。Dictionary を設計する場合は、お気をつけください。
- Dictionary のコンテンツは VCL として保存されます。 個人データを VCL に組み込まないようにしてください。コンプライアンスと法律に関する FAQ に、Fastly が個人情報の保護をどのように扱っているかが詳しく記載されています。
Dictionary に変更を加える際は、次の点に注意してください。
- ディクショナリコンテナを削除すると、編集中のサービスバージョンからのみ削除されます。 ディクショナリコンテナはバージョンに紐付けされており、クローンを作成したり元に戻したりすることができます。Dictionary を使用する場合、容易に設定を前のバージョンにロールバックできるよう、現在のサービスバージョンからディクショナリコンテナを削除するなどの操作が行なえるようになっています。
- ディクショナリコンテナを削除しても、その中のディクショナリ項目は削除されません。 ディクショナリコンテナ内の項目はバージョンレスです。サービスのバージョンが変わっても、データにアクセスしていただくことができます。
- ディクショナリ項目の削除は恒久的です。 データは保存されないため、ディクショナリ項目を削除すると、エントリーはすべてのサービスバージョンから永久に削除されます。
- Dictionary の変更に関するイベントログは存在しません。 ディクショナリの項目を追加、更新、削除しても、その記録は残りません。変更の記録を確認するには、サービスバージョンを比較し、ディクショナリコンテナが最初にサービスバージョンに関連付けられた時点を確認することでしか調べるしかありません。
個人情報、秘密、機密データなどを辞書に含めたり、VCL に組み込んだりしないでください。また Fastly はお客様の辞書のバージョン履歴を保持しません。コンプライアンスと法律に関する FAQ に、Fastly が個人情報の保護をどのように扱っているかが詳しく記載されています。