はじめに
Azure CDNはパブリックにアクセスできるところからキャッシュします。しかし、保護されたプライベートのストレージアカウントからキャッシュしたい場合が発生します。特定のファイルに対してSASを利用してキャッシュする必要があります。その方法を説明していきます。
すでにCDNにストレージアカウントがエンドポイントとして登録されていることが前提です。
-
Azure CDNでストレージアカウントのコンテンツをキャッシュする - 技術的な何か。
はじめに Azure CDN でコンテンツをキャッシュします。ストレージアカウントを配信元に設定しコンテンツをキャッシュします。 CDNの設定 ストレージアカウントは作成されていることが前提です。 ま
level69.net
下記を参考にしています。
-
Azure Content Delivery Network と SAS の使用 | Microsoft Learn
Azure Content Delivery Network では、Shared Access Signature (SAS) を使用した、プライベート ストレージ コンテナーへの制限付きアクセス権限 ...
docs.microsoft.com
設定
ストレージアカウントはプライベートの設定になっています。
キャッシュするファイルとしてcdn2.txtを配置しています。
SASの発行
SASを発行します。最低限のアクセス許可をします。
発行されたSASはコピーしておきます。
発行されたSASを利用してファイルにアクセスできることを確認します。
設定しない場合は当然アクセスできません。
また、この時点ではキャッシュされていないことも分かります。
CDNの設定
SASを設定してキャッシュします。これはCDNのエンドポイントを開き、キャッシュ規則を開きます。
クエリ文字列のキャッシュ動作を、一意のURLをすべてキャッシュするに設定します。
設定はこれで完了です。
確認
CDNでアクセスできるか確認するには、CDNエンドポイントのURLにSASを含める必要があります。
アクセスできること確認します。
結局のところ、CDNのエンドポイントにSASを含めるため、有効期限をしっかりと決めておくことをがベストプラクティスです。
まとめ
プライベートのBlobからキャッシュするケースは多くはないと思いますが、できることを確認しておくことが良いでしょう。