背景紹介
お客様のオリジンサーバーがTencent Cloud COSである場合、オリジンサーバーで同名ファイルが更新されたり、違反リソースを削除する必要がある場合、通常はリソースをEdgeOneノードから同期して削除し、ユーザーが古いリソースや違反コンテンツに引き続きアクセスすることを防ぐ必要があります。ただし、キャッシュ削除では、COS上でファイルを更新または削除した後、手動でEdgeOneコンソールにアクセスするか、APIインターフェースを呼び出してキャッシュ削除が必要なURLを送信する必要があります。この方法は漏れが発生しやすく、手動操作の遅延により削除処理が適時に実行されない可能性があります。
自動キャッシュ削除は、ファイルがTencent Cloud COSにアップロードされた後、Tencent Cloud SCFが自動的に検出し、EdgeOneのキャッシュ削除APIインターフェースを呼び出してノードのキャッシュ削除を自動的に完了することを支援します。これにより、ファイルの更新または削除後、ユーザーがすぐに最新のリソースにアクセスできるようになり、ユーザーエクスペリエンスが向上します。
注意:
Tencent Cloud COSは有料機能であり、利用中に発生する可能性のある費用はTencent Cloud COSが請求します。具体的な料金の詳細については、COS課金概要をご参照ください。 SCFは有料機能であり、利用中に発生する可能性のある費用はSCFが請求します。具体的な料金の詳細については、SCF課金概要をご参照ください。 適用シーン
シナリオ1:同名ファイルの更新
ファイルがTencent Cloud COSにアップロードされた後、ファイル内容に更新があるため、同名ファイルをCOSに再アップロードします。CDNキャッシュの有効期限が切れる前に、ユーザーが最新のリソースにすぐにアクセスできるようにします。
シナリオ2:違反ファイルの削除
COSにアップロードされたファイルには、内容がコンプライアンス違反などの問題が存在する可能性があります。この場合、そのファイルをCOSストレージバケットから削除する必要があります。CDNキャッシュの有効期限が切れる前に、ユーザーがそのリソースにアクセスできないようにします。
操作手順
シナリオ例
お客様がゲームメーカーであり、サイトドメイン www.example.com をEdgeOneアクセラレーションに接続し、オリジンサーバーがTencent Cloud COSで、アドレスがpurge-cos-1251558888.cos.ap-guangzhou.myqcloud.comであると仮定します。複数のゲームAPKを頻繁に更新する必要があるため、ファイルが変更されたときにEdgeOneノードのキャッシュを自動的に削除することを期待します。
事前準備
1. COSとSCFを有効化済みです。該当ストレージバケット名とリージョン情報を記録してください。 2. サイト接続ガイドに従ってサイトを追加し、EdgeOneプランを購入し、該当サイトIDを取得します。サイトIDは、サイト接続後にサイトリスト内で確認およびコピーできます。例えば、zone-26v607hq8d3mです。 3. EdgeOneコンソールで加速ドメイン名www.example.comを追加済みであり、オリジンサーバー設定はTencent Cloud COSです。 ステップ1:EdgeOne キャッシュ自動クリアのクラウド関数を作成してデプロイする
2. 関数サービスページで、新規作成をクリックし、テンプレートを使用して作成を選択し、あいまい検索入力ボックスにEdgeOne 自動キャッシュ削除と入力して選択し、次へをクリックします。
3. 「関数設定」ページでは、以下の設定は必須項目です。その他の設定項目はデフォルト設定のままにすることをお勧めします。
基本設定
関数名:関数の作成時に自動的に関数名が生成されます。お客様は、識別しやすい関数名にカスタマイズして変更できます。
地域:COSストレージバケットの所在地域を選択してください。例えば、広州です。
タイムゾーン:SCF内ではデフォルトでUTC時間が使用されます。環境変数TZを設定することで変更できます。タイムゾーンを選択すると、対応するタイムゾーンのTZ環境変数が自動的に追加されます。
関数コード:テンプレートには、EdgeOneの自動キャッシュ削除機能を実装するデフォルトの関数コードが既に組み込まれており、変更は不要です。
詳細設定:
詳細設定をクリックし、環境設定を見つけます。環境変数に以下のkeyと対応するvalue値を追加する必要があります。その他の設定はデフォルトのままで問題ありません:
ZoneId:自動キャッシュ削除を行うドメイン名サイトexample.comに対応するZoneIdを入力してください。サイトIDの取得方法については準備作業をご参照ください。 eoDomains:ZoneIdの下に追加済みの加速ドメイン名を入力してください。例えば、www.example.comです。
説明:
現在のサイトに複数のドメイン名のオリジンサーバーがあり、それらが同じCOSストレージバケットを使用している場合で、複数のドメイン名すべてで自動キャッシュ削除をトリガーしたい場合は、環境設定の入力時に複数の環境変数を追加できます。環境変数名はeoDomainsで始めます。例えば、eoDomains_1、eoDomains_2のように指定します。以下に例を示します:
権限設定:実行ロールで有効をチェックし、ドロップダウンリストから実行ロールを選択します(既存のロールにQcloudCOSFullAccessおよびQcloudTEOFullAccessのプリセットポリシーが含まれていることを確認してください)。そうでない場合は、実行ロールを新規作成してください。
トリガー設定
イベントタイプをすべて作成とする例を挙げます(すべて削除イベントタイプを作成する必要がある場合は、設定を参照してください)。トリガー設定で、カスタム作成を選択します。COS BucketはこのSCFと同じリージョンのストレージバケットです。ストレージバケット名を入力してあいまい検索ができます。例えば、purge-cos-1251558888.cos.ap-guangzhou.myqcloud.com。その他の設定項目はデフォルト設定のままで問題ありません。
4. 完了をクリックすると、EdgeOne自動キャッシュ削除関数の作成が完了します。
ステップ2:有効性の確認
1. COSコンソールにログインし、左側のメニューバーでストレージバケットリストをクリックします。 2. ストレージバケットリストページで、APKマスターパッケージの保存に使用するストレージバケット名をクリックします。
3. ファイルリストページで、purge-cos-1251558888.cos.ap-guangzhou.myqcloud.comのルートディレクトリに入ります。
4. ファイルをアップロードをクリックし、同じ名前のファイルをアップロードします。例えば、v2_src.apkです。アップロードをクリックします。
6. 関数管理ページで、ログ検索>呼び出しログを選択します。呼び出しログを通じて関数実行のログ情報を取得できます。呼び出し成功が表示され、ログ内のkey情報が先ほどアップロードしたファイル名と一致する場合、ファイルのCOSへのアップロードによってSCFがトリガーされ、EdgeOneのキャッシュ削除APIが正常に呼び出されたことを示します。
8. キャッシュ削除ページで、履歴をクリックし、キャッシュ削除タスクが成功したかどうかを確認します。削除成功と表示された場合、現在の削除が完了したことを示します。
9. ブラウザで開発者ツールを開いた後、そのファイルのアクセスパスを入力します。例えば、www.example.com/v2_src.apkです。レスポンスヘッダー内のEO-Cache-Status値を確認します。キャッシュが削除されていない場合、リソースへのアクセス時に以前の古いキャッシュにヒットします。下図にMISSと表示されている場合、リソースがEdgeOneノードから削除されており、ユーザーがリクエストした際にオリジンサーバーから最新のリソースを取得することを示します。
監視アラート(推奨)
EdgeOneはキャッシュ削除タスクにクォータ制限を設定します。具体的なクォータについてはプラン選定比較をご参照ください。 クォータ上限を超えたキャッシュ削除タスクの場合、キャッシュ削除APIインターフェースを呼び出す際にエラーが発生し、最終的にSCFの実行状態は「呼び出し失敗」となります。この問題に迅速に対応するため、TCOPを通じてSCFの監視アラートを設定することをお勧めします。設定方法については、SCFアラート設定およびSCF監視指標の説明をご参照ください。