Le service Microsoft Azure permet d’héberger un site statique dans un espace de stockage. Voici comment réaliser le déploiement en lignes de commande.
Prérequis
-
Installez la CLI Azure
# pour Debian curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
Documentation d’installation : https://learn.microsoft.com/fr-fr/cli/azure/install-azure-cli
-
Activez les sites web statiques dans Azure Storage :
Déploiement
Variables d’environnement à configurer
AZURE_APP_ID
(ex :8514903f-ed49-48b6-b5f8-bc4ff676fce3
) :AZURE_CLIENT_SECRET
(ex :TYY5A~I2d19dffcf938ImHBeS~-.S4db2318T.
) :AZURE_TENANT_ID
(ex :44db2318-9218-41b4-b935-2d19dffcf938
) :-
AZURE_STORAGE_ACCOUNT
(ex :stmystaticwebsite
) :
export AZURE_APP_ID='8514903f-ed49-48b6-b5f8-bc4ff676fce3'
export AZURE_CLIENT_SECRET='TYY5A~I2d19dffcf938ImHBeS~-.S4db2318T.'
export AZURE_TENANT_ID='44db2318-9218-41b4-b935-2d19dffcf938'
export AZURE_STORAGE_ACCOUNT='stmystaticwebsite'
Déploiement
# Authentification
az login --service-principal -u $AZURE_APP_ID -p $AZURE_CLIENT_SECRET --tenant $AZURE_TENANT_ID
# Suppression des fichiers statiques existants
az storage blob delete-batch \
--account-name $AZURE_STORAGE_ACCOUNT --auth-mode login \
--source '$web' --pattern '*'
# Envoi des nouveaux fichiers statiques
az storage blob upload-batch \
--account-name $AZURE_STORAGE_ACCOUNT --auth-mode login \
--destination '$web' -s my_static_app_dir
CDN
Au cas où Microsoft Azure CDN est activé pour servir le site statique, il faut penser à le purger.
Variables d’environnement à configurer
-
AZURE_RESOURCE_GROUP
(ex :RG_MY_STATIC_WEBSITE
) : -
AZURE_CDN_PROFILE_NAME
(ex :cdnpmystaticwebsite
) : -
AZURE_CDN_ENDPOINT_NAME
(ex :cdnemystaticwebsite
) : c’est le même qu’AZURE_CDN_PROFILE_NAME
, mais aveccdne
plutôt quecdnp
en préfixe.export AZURE_RESOURCE_GROUP='RG_MY_STATIC_WEBSITE' export AZURE_CDN_PROFILE_NAME='cdnpmystaticwebsite' export AZURE_CDN_ENDPOINT_NAME='cdnemystaticwebsite'
Purge du CDN
az cdn endpoint purge \
--resource-group $AZURE_RESOURCE_GROUP \
--profile-name $AZURE_CDN_PROFILE_NAME \
--endpoint-name $AZURE_CDN_ENDPOINT_NAME \
--content-paths '/*'