汎用 V2 またはBlockBlobStorage アカウントのコンテナーから静的コンテンツ (HTML、CSS、JavaScript、およびイメージ ファイル) を直接提供できます。 詳細については、Azure Storage での静的 Web サイトホスティングに関するページを参照してください。
この記事では、Azure portal、Azure CLI、または PowerShell を使用して静的 Web サイトホスティングを有効にする方法について説明します。
静的なウェブサイトホスティングを有効にする
静的 Web サイトのホスティングは、ストレージ アカウントで有効にする必要がある機能です。
Azure portal にサインインして作業を開始します。
ストレージ アカウントを見つけて選択すると、アカウントの[概要 ] ウィンドウが表示されます。
[概要 ] ウィンドウで、[機能] タブを 選択します。次に、[静的 Web サイト ] を選択して、静的 Web サイトの構成ページを表示します。

ストレージ アカウントの静的 Web サイト ホスティングを有効にするには、[有効] を 選択します。
[インデックス ドキュメント名 ] フィールドで、既定のインデックス ページを指定します (例:index.html)。
ユーザーが静的 Web サイトのルートに移動すると、既定のインデックス ページが表示されます。
[エラー ドキュメント パス ] フィールドで、既定のエラー ページを指定します (例:404.html)。
ユーザーが静的 Web サイトに存在しないページに移動しようとすると、既定のエラー ページが表示されます。
[保存] をクリックして、静的サイトの構成を完了します。

確認メッセージが表示されます。 静的な Web サイト エンドポイントとその他の構成情報が[概要 ] ウィンドウに表示されます。

Azure CLI を使用して、静的 Web サイトのホスティングを有効にすることができます。
まず、Azure Cloud Shell を開きます。または、Azure CLI をローカルにインストールした場合は、Windows PowerShell などのコマンド コンソール アプリケーションを開きます。
自分の ID が複数のサブスクリプションに関連付けられている場合は、アクティブなサブスクリプションを、静的 Web サイトをホストするストレージ アカウントのサブスクリプションに設定します。
az account set --subscription <subscription-id>
<subscription-id>
プレースホルダーの値をサブスクリプションの ID に置き換えます。
静的な Web サイト ホスティングを有効にします。
az storage blob service-properties update --account-name <storage-account-name> --static-website --404-document <error-document-name> --index-document <index-document-name>
<storage-account-name>
プレースホルダーの値は、実際のストレージ アカウントの名前に置き換えます。
<error-document-name>
プレースホルダーは、ブラウザーがサイト上に存在しないページを要求したときにユーザーに表示されるエラー ドキュメントの名前に置き換えます。
<index-document-name>
プレースホルダーをインデックス ドキュメントの名前に置き換えます。 このドキュメントは一般的に "index.html" です。
Azure PowerShell モジュールを使用して、静的 Web サイトのホスティングを有効にすることができます。
Windows PowerShell コマンド ウィンドウを開きます。
Azure PowerShell モジュール Az バージョン 0.7 以降があることを確認します。
Get-InstalledModule -Name Az -AllVersions | select Name,Version
インストールまたはアップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。
Connect-AzAccount
コマンドを使用して Azure サブスクリプションにサインインし、画面上の指示に従います。
Connect-AzAccount
自分の ID が複数のサブスクリプションに関連付けられている場合は、アクティブなサブスクリプションを、静的 Web サイトをホストするストレージ アカウントのサブスクリプションに設定します。
$context = Get-AzSubscription -SubscriptionId <subscription-id>Set-AzContext $context
<subscription-id>
プレースホルダーの値をサブスクリプションの ID に置き換えます。
使用するストレージ アカウントを定義するストレージ アカウント コンテキストを取得します。
$storageAccount = Get-AzStorageAccount -ResourceGroupName "<resource-group-name>" -AccountName "<storage-account-name>"$ctx = $storageAccount.Context
静的な Web サイト ホスティングを有効にします。
Enable-AzStorageStaticWebsite -Context $ctx -IndexDocument <index-document-name> -ErrorDocument404Path <error-document-name>
ファイルをアップロードする
次の手順では、Azure portal を使用してファイルをアップロードする方法を示します。AzCopy、PowerShell、CLI、またはアカウントの$web コンテナーにファイルをアップロードできるカスタム アプリケーションを使用することもできます。 Visual Studio コードを使用してファイルをアップロードする詳細なチュートリアルについては、「チュートリアル: Blob Storage で静的な Web サイトをホストする」を参照してください。
Azure portal で、静的 Web サイトを含むストレージ アカウントに移動します。 左側のナビゲーション ウィンドウで [コンテナー ] を選択して、コンテナーの一覧を表示します。
[コンテナー ] ウィンドウで、$web コンテナーを選択して、コンテナーの[概要 ] ウィンドウを開きます。

[概要 ] ウィンドウで、[アップロード ] アイコンを選択して [BLOB のアップロード ] ウィンドウを開きます。 次に、[BLOB のアップロード] ウィンドウで [ファイル] フィールドを選択して、ファイル ブラウザーを開きます。 アップロードするファイルに移動して選択し、[開く ] を選択して [ファイル ] フィールドを設定します。 必要に応じて、[ファイルが既に存在する場合に上書き する] チェック ボックスをオンにします。

ブラウザーでファイルの内容を表示する場合は、そのファイルのコンテンツ タイプがtext/html
に設定されていることを確認します。 これを確認するには、前の手順でアップロードした BLOB の名前を選択して、[概要 ] ウィンドウを開きます。値が CONTENT-TYPE プロパティ フィールド内に設定されていることを確認します。

注
このプロパティは、text/html
などの一般的に認識される拡張機能の.html
に自動的に設定されます。 ただし、場合によっては、これを自分で設定する必要があります。 このプロパティをtext/html
に設定しない場合、ブラウザーは、コンテンツをレンダリングするのではなく、ファイルをダウンロードするようにユーザーに求めるメッセージを表示します。 このプロパティは、前の手順で設定できます。
ソース ディレクトリから$web コンテナーにオブジェクトをアップロードします。
この例では、Azure Cloud Shell セッションからコマンドを実行していることを前提としています。
az storage blob upload-batch -s <source-path> -d '$web' --account-name <storage-account-name>
注
コンテンツをレンダリングするのではなく、ユーザーにファイルのダウンロードを求めるメッセージが表示された場合は、コマンドに--content-type 'text/html; charset=utf-8'
を追加できます。
注
Azure CLI の場所のインストールを使用している場合は、ローカル コンピューター上の任意の場所へのパスを使用できます (例:C:\myFolder
。
Azure Cloud Shell を使用している場合は、Cloud Shell に表示されるファイル共有を参照する必要があります。 この場所は、クラウド共有自体のファイル共有、または Cloud Shell からマウントした既存のファイル共有です。 これを行う方法については、「Azure Cloud Shell でファイルを保持する」を参照してください。
ソース ディレクトリから$web コンテナーにオブジェクトをアップロードします。
# upload a fileset-AzStorageblobcontent -File "<path-to-file>" `-Container `$web `-Blob "<blob-name>" `-Context $ctx
注
コンテンツをレンダリングするのではなく、ユーザーにファイルのダウンロードを求めるメッセージが表示された場合は、コマンドに-Properties @{ ContentType = "text/html; charset=utf-8";}
を追加できます。
Web サイトの URL を検索する
Web サイトのパブリック URL を使用して、ブラウザーからサイトのページを表示できます。
ストレージ アカウントのアカウント概要ページの横に表示されるウィンドウで、[静的 Web サイト] を選択します。 サイトの URL が[プライマリ エンドポイント ] フィールドに表示されます。

次のコマンドを使用して、静的 Web サイトのパブリック URL を見つけます。
az storage account show -n <storage-account-name> -g <resource-group-name> --query "primaryEndpoints.web" --output tsv
次のコマンドを使用して、静的 Web サイトのパブリック URL を検索します。
$storageAccount = Get-AzStorageAccount -ResourceGroupName "<resource-group-name>" -Name "<storage-account-name>"Write-Output $storageAccount.PrimaryEndpoints.Web
静的 Web サイト ページでメトリックを有効にする
メトリックを有効にすると、$web コンテナーのファイルに関するトラフィック統計情報が、メトリック ダッシュボードに報告されます。
ストレージ アカウント メニューの[監視] セクションの下にある [メトリック] をクリックします。
注
メトリック データは、さまざまなメトリック API にフックすることによって生成されます。 ポータルには、データを返すメンバーのみに注目するために、特定の期間内に使用される API メンバーのみが表示されます。 必要な API メンバーを確実に選択できるようにするには、最初に時間枠を拡張します。
[期間] ボタンをクリックし、期間を選択して、[適用] をクリックします。

[名前空間] ドロップダウンから[BLOB] を選択します。

次に、エグレス メトリックを選択します。

[集計] セレクターから[合計] を選択します。

[フィルターの追加] ボタンをクリックし、プロパティ セレクターからAPI 名を選択します。

[値] セレクターのGetWebContent の横にあるチェック ボックスをオンにして、メトリック レポートを設定します。

注
GetWebContent チェック ボックスは、その API メンバーが特定の期間内に使用された場合にのみ表示されます。 ポータルには、データを返すメンバーのみに注目するために、特定の期間内に使用される API メンバーのみが表示されます。 この一覧に特定の API メンバーが見つからない場合は、期間を展開します。
次のステップ