{Azure Storage}Azure Storage で静的 Web サイトをホストする

 

https://learn.microsoft.com/ja-jp/azure/storage/blobs/storage-blob-static-website-how-to?tabs=azure-cli

https://learn.microsoft.com/ja-jp/azure/storage/blobs/storage-blob-static-website


アカウントに $web という名前の BLOB ストレージ コンテナーがまだ存在しない場合は、自動的に作成されます。 
このコンテナーに、サイトのファイルを追加します。

ストレージ アカウントでパブリック アクセスを無効にしても、そのストレージ アカウントでホストされている静的な Web サイトには影響しません。


Azure Storage でのクロス オリジン リソース共有 (CORS) のサポートは、静的な Web サイトではサポートされていません。

 


-- 1. 前作業

az login --use-device-code
az account show

az version

az configure --list-defaults
az configure --defaults location=japaneast
az configure --list-defaults

az group create \
--name rg9999999 \
--location japaneast

az group list
az upgrade


-- 2. ストレージアカウントの作成

az storage account create \
--resource-group rg9999999 \
--name st123 \
--access-tier Hot \
--kind StorageV2 \
--sku Standard_LRS


az storage account list \
--resource-group rg9999999

 

-- 3. 静的な Web サイトのホスティングを有効にします


key=$(az storage account keys list \
--account-name st123 \
--resource-group rg9999999 \
--output json \
--query [0].value | tr -d '"')

echo $key


az storage blob service-properties update \
--account-name st123 \
--static-website \
--index-document index.html \
--404-document error.html \
--account-key $key

 

-- 4. コンテナーにオブジェクトをアップロード

mkdir test

vim test/index.html

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>My Website Home Page</title>
</head>
<body>
  <h1>Welcome to my website</h1>
  <p>Now hosted on Azure S3!</p>
</body>
</html>

vim test/error.html

<h1>This is error page.</h1>

ls -l test

az storage blob upload-batch \
--source test \
--destination '$web' \
--account-name st123 \
--content-type 'text/html; charset=utf-8' \
--account-key $key


-- 5. 動作確認

az storage account show \
--name st123 \
--resource-group rg9999999 \
--query "primaryEndpoints.web" \
--output tsv


https://st123.xxx.web.core.windows.net/

 


-- 6. クリーンアップ

 

az storage account delete \
--resource-group rg9999999 \
--name st123 \
--yes


az group list
az group delete \
--name rg9999999 \
--yes