コントロールパネルによる ディクショナリの作成・編集
最終更新日 2023-03-02
ディクショナリは、データをキーバリューのペアとして保存するできるコンテナーの一種であり、単一のバージョンに添付することなく、サービス内で使用することができます。Edge Dictionary は、ディクショナリコンテナとディクショナリアイテムで構成されています。ディクショナリ項目を使用して、キーと値のペアを作成し保存します。そのディクショナリ項目は、ディクショナリコンテナに追加されます。ディクショナリコンテナはサービスバージョンにアタッチされますが、サービスのバージョンを増分することなく、作成後いつでも更新することができます。
コントロールパネル、カスタム VCL スニペット、Fast API を使用して、ディクショナリを操作することができます。また、プライベートディクショナリを作成することもできます。
設定前の注意点
ディクショナリを操作する前に、Dictionaries についてガイドをご参照ください。また、ディクショナリの仕組み、一般的なユースケース、ディクショナリの使用の制約についてご理解ください。
Dictionaries ページ経由でディクショナリを操作する
ディクショナリページを使用して、ディクショナリを作成および操作することができます。
Dictionaries ページを使用して作成されたディクショナリを表示する
ディクショナリページ経由でディクショナリを表示するには、ご利用のサービスのディクショナリ管理エリアに移動します。
- Fastly コントロールパネルにログインします。
- Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインによる検索が行えます。
- Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。Domains ページが表示されます。
- Data の下にある Dictionaries リンクをクリックします。現在選択されているサービスバージョンに関連する既存のディクショナリがある場合は、そのディクショナリが表示されます。
注意
ディクショナリコンテナはバージョン管理されていることにご留意ください。サービスにディクショナリが付加されていない場合は、サービスのバージョンを確認してください。
Dictionaries ページ経由でディクショナリを作成する
ディクショナリページ経由でディクショナリを作成するには、ディクショナリコンテナを作成し、その中に存在するアイテムを作成する必要があります。
ディクショナリコンテナの作成
まず、以下の手順に従ってディクショナリコンテナを作成します。
- Fastly コントロールパネルにログインします。
- Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインによる検索が行えます。
- Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。Domains ページが表示されます。
- Data の下にある Dictionaries リンクをクリックします。Dictionaries ページが表示されます。
- Create a dictionary をクリックします。ディクショナリコンテナ名のフィールドが表示されます。
- Name of dictionary フィールドに、ディクショナリの分かりやすい名前を入力します (例:
Example Dictionary
)。 - Add ボタンをクリックします。作成した空のディクショナリコンテナが表示されます。
- Activate ボタンをクリックすると、編集中のサービスバージョンに設定変更が反映されます。
ディクショナリ項目の作成
ディクショナリコンテナを作成した後、それに項目を追加します。
- Add item をクリックします。ディクショナリ項目のフィールドが表示されます。
- Key フィールドには、データの一部の項目を表す一意の識別子を入力します (例:
example.com
)。 - Value フィールドには、一意の識別子に関連する値を入力します (例:
yes
)。 - Add ボタンをクリックします。キーと値のペアがディクショナリコンテナに表示されます。追加された項目は直ちに有効となります。
ディクショナリを使用する
ディクショナリを作成したら、すぐに使用を開始できます。コントロールパネルを使用してディクショナリを使用するには、ヘッダーを作成して追加する必要があります。以下の手順に従ってください。
- Fastly コントロールパネルにログインします。
- Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインによる検索が行えます。
- Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。Domains ページが表示されます。
- Content リンクをクリックします。Content ページが表示されます。
- Create header ボタンをクリックします。Create a header 設定画面が表示されます。
- 以下の要領では、Create a header ページの各フィールドに入力します。
- Nameフィールドには、ヘッダールール名を入力します (例:
Redirect lookup
)。 - Type メニューから Request を選択し、Action メニューから Set を選択します。
- Destination フィールドに、選択したアクションの影響を受けるヘッダーの名前を入力します (例:
url
)。 - Source フィールドには、ヘッダーのコンテンツを取得する場所を入力します (例:
table.lookup(redirects, req.url)
)。 - Ignore if set メニューから No を選択します。
- Priority フィールドはそのままにしておきます。
- Nameフィールドには、ヘッダールール名を入力します (例:
- Create ボタンをクリックすると、ヘッダーが作成されます。Content ページに新しいヘッダーが表示されます。
ヘッダーを作成したら、条件を作成して、ディクショナリを使用する条件を指定できます。
- 作成した新規ヘッダーの横にある Attach a condition をクリックします。Add a condition のメッセージが表示されます。
- Create a new request condition ボタンをクリックします。Create a new condition ページが表示されます。
- Name フィールドに条件の名前を入力します (例:
My dictionary condition
)。 - Apply if フィールドに条件を入力します (例:
table.lookup(redirects, req.url)
)。 - Save and apply to ボタンをクリックします。
- Activate ボタンをクリックして設定変更をデプロイします。
Dictionaries ページ経由でコンテナを編集する
ロックされていない任意のサービスバージョンで、ディクショナリページを介して作成されたディクショナリコンテナの名前を編集できます。
- ご利用のサービスのロックされていないバージョンに関連するディクショナリを検索します。
- ディクショナリコンテナの名前の横にある鉛筆アイコンをクリックします。
- 名前を変更して Save ボタンをクリックします。
Dictionaries ページ経由でアイテムを編集する
コンテナ内のディクショナリ項目は、いつでも編集することができます。ディクショナリページで作成したディクショナリコンテナのキーと値のペアを編集するには、以下の指示に従ってください。
- キーと値のペアが表示される、サービスに関連付けられているディクショナリを探します。ディクショナリ項目はバージョン管理されていないため、選択したサービスのバージョンは関係ありません。お客様にとって最も合理的なものをお選びください。
- ディクショナリ項目にカーソルを合わせて、表示される鉛筆のアイコンをクリックします。
- 必要に応じてキーや値を編集します。
- Save ボタンをクリックします。変更した内容は、すぐに設定に反映されます。ディクショナリコンテナがすでに有効化されているサービスバージョンと関連付けられている場合、それらの変更は直ちに本番環境に反映されます。
Dictionaries ページ経由でディクショナリを削除する
ディクショナリの制約事項を考慮しながら、VCL スニペットやディクショナリコンテナを使用してディクショナリを削除したり、ディクショナリ内の項目をディクショナリページで削除することができます。
ディクショナリコンテナの削除
ロックされていないサービスバージョンのディクショナリページで作成されたディクショナリコンテナを削除することができます。
- ご利用のサービスのロックされていないバージョンに関連するディクショナリを検索します。
- ディクショナリの右上にあるゴミ箱のアイコンをクリックします。
- Confirm and delete ボタンをクリックします。
- Activate ボタンをクリックすると、編集中のサービスバージョンに設定変更が反映されます。
ディクショナリ項目の削除
コンテナ内のディクショナリ項目は、いつでも削除することができます。ディクショナリページで作成したディクショナリコンテナに含まれるキーと値のペアを削除するには、以下の指示に従ってください。
- キーと値のペアが表示される、サービスに関連付けられているディクショナリを探します。ディクショナリ項目はバージョン管理されていないため、選択したサービスのバージョンは関係ありません。お客様にとって最も合理的なものをお選びください。
- ディクショナリの項目にカーソルを合わせて、表示されるゴミ箱アイコンをクリックします。
- Confirm and delete ボタンをクリックします。
VCL スニペットによるディクショナリの設定
カスタム VCL スニペットを使用して、エッジディクショナリを作成して操作することができます。カスタム VCL で作成されたディクショナリは、API またはディクショナリページを使用して操作することができません。カスタム VCL を使用して作成されたディクショナリコンテナは、必ずカスタム VCL で操作する必要があります。カスタム VCL 経由でアップロードされたディクショナリは、バージョンレスではありません。
VCL スニペットで作成したディクショナリを表示する
VCL Snippets リンクでディクショナリを表示するには、以下の手順に従ってください。
- Fastly コントロールパネルにログインします。
- Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインによる検索が行えます。
- Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。Domains ページが表示されます。
- VCL Snippets のリンクをクリックします。現在選択されているサービスバージョンに関連するスニペットのタイトルが表示されます。
- ディクショナリの内容を表示するには、View source ボタンをクリックします。
VCL スニペットを使用してディクショナリを作成する
VCL Snippetsを使用してディクショナリを作成するには、以下の手順に従ってください。
- Fastly コントロールパネルにログインします。
- Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインによる検索が行えます。
- Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。Domains ページが表示されます。
- VCL Snippets のリンクをクリックします。VCL スニペットのページが表示されます。
- Create Snippet をクリックします。Create a VCL スニペットページが表示されます。
Name フィールドに、適切な名前 (例:
Example Dictionary
) を入力します。Type (placement of the snippet) から、init を選択します。
VCL フィールドではテーブルを作成し、キーと値のペアを追加します。例えば、ある URL を別のパスにリダイレクトするテーブルを作成したいとします。
1table redirects {2 "/source1": "/dest1",3 "/source2": "/dest2"4}
テーブルは、コードで参照できるキーと値のペアのセットです。このテーブルの中身を別のキーと値のペアに置き換えることができます。
- Create をクリックしてスニペットを作成します。
VCL スニペットでディクショナリを使用する
ディクショナリを作成したら、すぐに使用を開始できます。
VCL スニペットでディクショナリを使用するには、以下の手順に従ってください。
- Fastly コントロールパネルにログインします。
- Home ページから、適切なサービスを選択します。検索ボックスで ID、名称、ドメインによる検索が行えます。
- Edit configuration ボタンをクリックし、アクティブなバージョンをクローンするオプションを選択します。Domains ページが表示されます。
- VCL Snippets のリンクをクリックします。VCL スニペットのページが表示されます。
- Create Snippet をクリックします。Create a VCL スニペットページが表示されます。
Name フィールドに、適切な名前 (例:
URL redirect
) を入力します。Type (placement of the snippet) のセクションで、within subroutine を選択します。
Select subroutine メニューから、recv (
vcl_recv
) を選択します。VCL フィールドには、VCL スニペットを使用してディクショナリを作成した際に作ったテーブルを使用する条件を追加します。例えば、URL の宛先を書き換える必要がある場合、以下のようになります。
1if (table.lookup(redirects, req.url)) {2 set req.url = table.lookup(redirects, req.url);3}ここで、
table.lookup
はディクショナリで必要なコンテンツをチェックします。最初のパラメーターは検索対象のテーブル、2番目のパラメーターは検索対象のキーです。キーが2番目のパラメーターと完全に一致する場合は、その値が返されます。ディクショナリ検索では regex は機能しないのでご注意ください。Create をクリックしてスニペットを作成します。
- Activate ボタンをクリックして設定変更をデプロイします。
VCL スニペットを使用してディクショナリを編集する
ロックされていない任意のサービスバージョンで、ディクショナリの名前と、VCL スニペットを使用して作成された条件を編集することができます。
- ご利用のサービスのロックされていないバージョンに関連するディクショナリを見つけます。
- ディクショナリの横にある鉛筆のアイコンをクリックします。これで、名前や条件を変更できます。
- 変更が完了したら、Update ボタンをクリックします。
- Activate ボタンをクリックすると、編集したバージョンが有効になり、VCL の変更内容が表示されます。
VCL スニペットを使用してディクショナリを削除する
以下の手順に従って VCL スニペットを使用してディクショナリを削除することができます。ディクショナリの削除に伴う制約事項に注意してください。
- ご利用のサービスのロックされていないバージョンに関連するディクショナリを検索します。
- スニペットの右上にあるゴミ箱のアイコンをクリックします。
- Confirm and delete ボタンをクリックします。
- Activate ボタンをクリックすると、編集中のサービスバージョンに設定変更が反映されます。
プライベートディクショナリ
プライベートディクショナリには、コントロールパネルまたはAPIを使用してリスト表示または読み取ることができないディクショナリ項目が格納されます。
制約と考慮事項
プライベートディクショナリを作成する際には、以下の点に留意してください。
- プライベートディクショナリの作成、読み取り、更新、削除が可能です。
- 作成後、辞書の
write_only
属性を更新することはできません。 - プライベートディクショナリに属する項目の作成、更新、削除が可能です。
- プライベートディクショナリに属する項目を API で確認することはできません。
- サービスの設定によっては、プライベートディクショナリに格納されているデータをヘッダーで送信したり、ログストリーミングのエンドポイントに送信 することができます。
警告
プライベートディクショナリのディクショナリ項目の編集および削除には、ディクショナリ項目のキーが必要です。
プライベート・ディクショナリ・コンテナの作成
プライベート・ディクショナリ・コンテナを使用するには、まずロックされていないバージョンのサービス内に空のディクショナリコンテナを作成します。
プライベートディクショナリを使用する前に、そのプライベート・ディクショナリ・コンテナが、ロックも有効化もされていないサービスバージョンの少なくとも1つと関連付けられ、そのサービスがプライベートディクショナリの存在を認識できるようにする必要があります。
例えば、API 経由で my_example_dictionary
のプライベートディクショナリを作成する場合、以下のコマンドを実行して API コールを行います。
$ curl -X POST -H 'Fastly-Key: FASTLY_API_TOKEN' -d 'name=my_example_dictionary&write_only=true' https://api.fastly.com/service/<service_id>/version/<version_number>/dictionary
これにより以下が返されます。
1{2 "created_at": "2017-05-03T16:11:41+00:00",3 "deleted_at": null,4 "id": "<dictionary_id>",5 "name": "my_example_dictionary",6 "service_id": "<service_id>",7 "updated_at": "2017-05-03T16:11:41+00:00",8 "version": <version_number>,9 "write_only": true10}
ディクショナリの作成後、ディクショナリ項目を追加できます。作業終了後、サービスの有効化を忘れずに行ってください。
VCL でプライベートディクショナリを確認する
プライベートディクショナリのコンテンツは VCL に隠されています。プライベートディクショナリのメタデータが以下のように表示されます。
1table my_example_dictionary {2 # REDACTED dictionary content3 # last_updated: 2017-10-16 20:44:434 # item_count: 25 # digest: 8f92141234567890da30ba9cea7d98ef6146 }
今後の予定
Developer Hub でエッジディクショナリの使用についてのカスタム VCL の例を参照してください。
重要
個人情報やシークレット、機密性の高いデータなどがディクショナリに含まれる、または VCL に組み込まれることがないようにしてください。また、Fastly はお客様のディクショナリのバージョン履歴を管理しません。Fastly が個人情報の保護にどのように対応しているかについて、詳しくは Compliance and Law FAQ をご覧ください。