メインコンテンツまでスキップ
バージョン: 4.6.2-saas

CloudFront Agent (Functions)

概要

AWS CloudFront の Functions 環境で NetFUNNEL と有機的に統合され、ユーザーリクエストが発生する最前線でリアルタイムに待機列を制御します。

Function の作成

関数の作成

  • CloudFront に移動します。
  • 左側のサイドメニューで [関数] をクリックします。
  • [関数の作成] をクリックします。
  • 関数名を入力し、Runtime は cloudfront-js-2.0 (既定値)を選択して [関数の作成] をクリックします。

関数設定

  • [ビルド] - [関数コード] - [開発] にエージェントコードをコピーして貼り付けます。
  • [変更を保存] をクリックします。
  • [テスト] タブに移動し、[関数をテスト] をクリックして実行結果が成功になることを確認します。
  • [発行] タブに移動し、[関数を発行] をクリックします。

KeyValueStore の作成

KeyValueStore の作成

  • Associated KeyValueStore メニューで [Create new KeyValueStore] をクリックします。
  • 名前を入力し、[Create] をクリックします。
  • Key value pairs メニューで [Edit] をクリックします。
  • [Add pair] をクリックし、以下の表を参考に必須値を追加します。
KeyValue (example)説明
client_idstclab-0000NetFUNNEL が顧客に付与する ID です。[NetFUNNEL コンソール] - [エージェント] - [Edge Agent] で確認できます。
project_keyservice_1使用したいプロジェクトのキーを入力してください。[NetFUNNEL コンソール] - [プロジェクト] で確認できます。
segment_keysegKey_1111, segKey_2222使用したいすべてのセグメントのキーを入力してください。入力順に応じてトリガーの優先順位が決まります。[NetFUNNEL コンソール] - [プロジェクト] - [セグメント] で確認できます。
  • 入力が完了したら [Save changes] をクリックし、ポップアップの [Done] をクリックします。

関数に関連付ける

  • Associated functions メニューで [Go to functions] をクリックし、上で作成した関数を選択します。
  • Associated KeyValueStore メニューで [Associate existing KeyValueStore] をクリックします。
  • 上で作成した KeyValueStore を選択し、[Associate KeyValueStore] をクリックします。

CloudFront 設定

CloudFront に Functions を接続

  • Function を適用する CloudFront ID を選択します。
  • [ビヘイビア] タブで項目を選択し、[編集] をクリックします。
  • 一番下の関数の関連で、ビューアーリクエストに上で作成した関数を選択します。
  • [変更を保存] をクリックします。

CloudFront の無効化

  • [無効化] タブに移動し、[無効化を作成] をクリックします。
  • オブジェクトパスに /* を入力し、[無効化を作成] をクリックします。
  • 無効化が完了すると、CloudFront に Functions の関連付けが適用されます。

KeyValueStore 設定

CloudFront Function は外部と通信できないため、[NetFUNNEL コンソール] - [セグメント] で提供されるトリガールール、進入パス、進入キー無効化機能は KeyValueStore(以下 KVS)を通じて使用できます。

そのほかにも、エージェントが提供する機能であるトリガー時間、Good Bot の例外処理、進入キーの自動返却、待機室ドメインの変更(CNAME)、クッキードメイン設定を KVS を通じて使用できます。

トリガールール

セグメントごとに、待機を適用するページの条件(URL、Domain、Path)を定義します。

設定形式

KeyValue
{segment_key}:trigger:{component}:{match}URL 全体または一部(例: stclab.com

Key 詳細パラメーター

Key の構成要素である {component}{match} には、以下の値を組み合わせて入力します。

  • {component}: 比較対象
    • url: URL 全体基準
    • domain: ドメインアドレス基準(例: netfunnel.stclab.com
    • path: ドメイン後ろのパス基準(例: /shop, /login
  • {match}: 比較方法
    • equal: 入力した値と正確に一致する場合
    • contain: 入力した値が対象に含まれている場合

設定例

適用シナリオKeyValue
特定パスを含む
(URL パスに shop が含まれるすべてのリクエスト)
segKey_1111:trigger:path:containshop
特定ドメイン一致
(特定ドメインに入ってくるすべてのリクエスト)
segKey_2222:trigger:domain:equalnetfunnel.stclab.com
特定ページの完全一致
(イベントページアドレスと正確に一致する場合)
segKey_3333:trigger:url:equalhttps://netfunnel.stclab.com/event

トリガー時間

セグメントのトリガールールが一致するものの、特定の時間にのみ待機を発生させたい場合に設定します。一回限りと繰り返し用に分けて設定できます。

備考

トリガー時間を設定しない場合、常に待機室へ移動します。

一回限りのトリガー設定

KeyValue
{segment_key}:trigger:{action}10 桁の timestamp(例: 1777654300
  • {action} には start または end を入力してください。
  • start のみを設定する場合、Value に入力した時間以降は常に待機室へ移動します。
  • end のみを設定する場合、Value に入力した時間まで常に待機室へ移動します。
  • startend の両方を設定する場合、それぞれの Value に入力した時間の間に待機室へ移動します。

繰り返しトリガー設定 - 毎日繰り返し

KeyValue
{segment_key}:trigger:{action}:every:dayHH:mm(例: 17:30
  • {action} には start または end を入力してください。
  • start のみを設定する場合、Value に入力した時間から 24 時まで待機室へ移動します。
  • end のみを設定する場合、0 時から Value に入力した時間まで待機室へ移動します。
  • startend の両方を設定する場合、それぞれの Value に入力した時間の間に待機室へ移動します。

繰り返しトリガー設定 - 毎週繰り返し

KeyValue
{segment_key}:trigger:{action}:every:weekday1,day2:HH:mm(例: mon,wed,fri:17:30
  • {action} に入る startend のルールは毎日繰り返し設定と同じため省略します。
  • Value の最初の要素には sunmontuewedthufrisat を使用でき、カンマ(,)で複数入力できます。

タイムゾーン設定

タイムゾーンを設定します。設定値を基準にトリガー時間を計算します。

備考

タイムゾーンを設定しない場合、既定値 9(Seoul, Tokyo)として処理されます。

KeyValue
timezone_offset自然数または負の整数(例: 9 または -3

進入パス設定

待機が終了したユーザーに一時パスを付与し、設定した時間の間は待機室へ移動しないようにします。

備考

進入パスを設定しない場合、最小値(5)が適用されます。

KeyValue
{segment_key}:entry_pass秒単位の数値(例: 300
  • Value の最小値は 5(5 秒)、最大値は 86400(24 時間)です。
  • Value の入力値が 5 より小さい場合は最小値に、86400 より大きい場合は最大値に補正されます。

進入パス無効化

特定の時間または URL に進入したとき、進入パスの有効時間内であっても強制的に終了します。無効化後、ユーザーがトリガールールに一致する URL に進入すると待機室へ移動します。

URL 基準の無効化

特定の URL に進入すると進入パスを無効化します。無効化を設定した URL では待機室への移動は発生しません。

KeyValue
{segment_key}:invalidate:url:{match}URL 全体または一部(例: ドメインアドレス、特定パス)
  • {match} にはトリガールールと同じく equal または contain を使用します。

時間基準の無効化

特定の時間以前に発行された進入パスを無効化します。無効化を設定した時間以降に進入する場合、進入パスが動作します。

KeyValue
{segment_key}:invalidate:time10 桁の timestamp(例: 1777654300

Good Bot の例外処理

User-Agent に Good Bot 識別用のキーワードが含まれる場合、該当リクエストはエージェントの制御対象から除外されます。

KeyValue
good_botsgoodbot 一覧(例: Googlebot, Bingbot, Slurp
  • カンマ(,)で複数の Good Bot を入力できます。

進入キーの自動返却

NetFUNNEL エージェントは、進入後に発行されたキーを自動で返却し、次の待機者が進入できるようにしています。キーを即座に返却せず、セグメントで設定したタイムアウト時に返却したい場合にこの機能を使用します。

備考

進入キーの自動返却を設定しない場合、true として適用され、常に自動で返却されます。

KeyValue
return_keytrue または false

待機室ドメインの変更

NetFUNNEL 待機室ページのドメインは agent-lib.stclab.com です。サービス中のドメインに合わせて変更するには、希望のドメインをリクエストし、設定にも追加する必要があります。

KeyValue
vwr_page_domainプロトコルとドメイン(例: https://wait.stclab.com

クッキードメイン設定

NetFUNNEL エージェントは、進入後に発行されたキーをクッキーに保存する際、現在のページのドメインを基準に保存します。異なるサブドメイン間でキーを共有する必要がある場合は、メインドメインがクッキーに保存されるよう設定します。

備考

netfunnel.stclab.combotmanager.stclab.com のようにサブドメインが異なるページでクッキーを共有する必要がある場合は、.stclab.com と設定します。

KeyValue
cookie_domain.メインドメイン(例: .stclab.com