Směrování provozu pro vysokou dostupnost aplikací pomocí Azure CLI
Tento skript vytvoří skupinu prostředků, dva plány služby App Service, dvě webové aplikace, profil traffic manageru a dva koncové body Traffic Manageru. Traffic Manager směruje provoz do aplikace v jedné oblasti jako primární oblast a do sekundární oblasti, pokud aplikace v primární oblasti není dostupná. Před spuštěním skriptu musíte změnit hodnoty MyWebApp, MyWebAppL1 a MyWebAppL2 na jedinečné hodnoty v rámci Azure. Po spuštění skriptu budete mít přístup k aplikaci v primární oblasti pomocí adresy URL mywebapp.trafficmanager.net.
Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
Předpoklady
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shellu.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
Ukázkový skript
Spuštění služby Azure Cloud Shell
Azure Cloud Shell je bezplatné interaktivní prostředí, které můžete použít k provedení kroků v tomto článku. Má předinstalované obecné nástroje Azure, které jsou nakonfigurované pro použití s vaším účtem.
Pokud chcete otevřít Cloud Shell, vyberte položku Vyzkoušet v pravém horním rohu bloku kódu. Cloud Shell můžete spustit také na samostatné kartě prohlížeče na adrese https://shell.azure.com.
Po otevření Cloud Shellu ověřte, že je pro vaše prostředí vybraný Bash . Následující relace budou používat Azure CLI v prostředí Bash, výběrem možnosti Kopírovat zkopírujte bloky kódu, vložte ho do Cloud Shellu a stisknutím klávesy Enter ho spusťte.
Přihlášení k Azure
Cloud Shell se automaticky ověřuje pod počátečním přihlášeným účtem. Pomocí následujícího skriptu se přihlaste pomocí jiného předplatného a nahraďte <Subscription ID>
ID předplatného Azure. Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet Azure před tím, než začnete.
subscription="<subscriptionId>" # add subscription here
az account set -s $subscription # ...or use 'az login'
Další informace najdete v tématu Nastavení aktivního předplatného nebo interaktivního přihlášení.
Spuštění skriptu
# Route traffic for high availability of applications
# Variables for Traffic Manager resources
let "randomIdentifier=$RANDOM*$RANDOM"
location1="East US"
location2="West Europe"
resourceGroup1="msdocs-tm-rg1-$randomIdentifier"
resourceGroup2="msdocs-tm-rg2-$randomIdentifier"
tag="direct-traffic-for-increased-application-availability"
webApp="msdocs-webapp-tm-$randomIdentifier"
webAppL1="msdocs-tm-webapp-L1-$randomIdentifier"
webAppL2="msdocs-tm-webapp-L2-$randomIdentifier"
trafficManagerProfile="msdocs-traffic-manager-profile-$randomIdentifier"
# Create a resource group in location one
echo "Creating $resourceGroup1 in $location1..."
az group create --name $resourceGroup1 --location "$location1" --tags $tag
# Create a resource group in location two
echo "Creating $resourceGroup2 in $location2..."
az group create --name $resourceGroup2 --location "$location2" --tags $tag
# Create a website deployed from GitHub in both regions (replace with your own GitHub URL).
gitrepo="https://github.com/Azure-Samples/app-service-web-dotnet-get-started.git"
# Create a hosting plan and website and deploy it in location one (requires Standard 1 minimum SKU).
echo "Creating $webAppL1 app service plan"
az appservice plan create \
--name $webAppL1 \
--resource-group $resourceGroup1 \
--sku S1
echo "Creating $webAppL1 web app"
az webapp create \
--name $webAppL1 \
--resource-group $resourceGroup1 \
--plan $webAppL1
echo "Deploying $gitrepo to $webAppL1"
az webapp deployment source config \
--name $webAppL1 \
--resource-group $resourceGroup1 \
--repo-url $gitrepo \
--branch master \
--manual-integration
# Create a hosting plan and website and deploy it in westus (requires Standard 1 minimum SKU).
echo "Creating $webAppL2 app service plan"
az appservice plan create \
--name $webAppL2 \
--resource-group $resourceGroup2 \
--sku S1
echo "Creating $webAppL2 web app"
az webapp create \
--name $webAppL2 \
--resource-group $resourceGroup2 \
--plan $webAppL2
echo "Deploying $gitrepo to $webAppL2"
az webapp deployment source config \
--name $webAppL2 \
--resource-group $resourceGroup2 \
--repo-url $gitrepo \
--branch master --manual-integration
# Create a Traffic Manager profile.
echo "Creating $trafficManagerProfile for $webApp"
az network traffic-manager profile create \
--name $trafficManagerProfile \
--resource-group $resourceGroup1 \
--routing-method Priority \
--unique-dns-name $webApp
# Create a traffic manager endpoint for the location one website deployment and set it as the priority target.
echo "Create traffic manager endpoint for $webAppL1"
l1Id=$(az webapp show \
--resource-group $resourceGroup1 \
--name $webAppL1 \
--query id \
--out tsv)
az network traffic-manager endpoint create \
--name endPoint1 \
--profile-name $trafficManagerProfile \
--resource-group $resourceGroup1 \
--type azureEndpoints \
--priority 1 \
--target-resource-id $l1Id
# Create a traffic manager endpoint for the location two website deployment and set it as the secondary target.
echo "Create traffic manager endpoint for $webAppL1"
l2Id=$(az webapp show \
--resource-group $resourceGroup2 \
--name $webAppL2 \
--query id --out tsv)
az network traffic-manager endpoint create \
--name endPoint2 \
--profile-name $trafficManagerProfile \
--resource-group $resourceGroup1 \
--type azureEndpoints \
--priority 2 \
--target-resource-id $l2Id
Vyčištění prostředků
Pomocí následujícího příkazu odeberte skupinu prostředků a všechny prostředky přidružené k ní pomocí příkazu az group delete – pokud tyto prostředky nepotřebujete. Vytvoření některých z těchto prostředků a odstranění může chvíli trvat.
az group delete --name $resourceGroup1
az group delete --name $resourceGroup2
Ukázkový odkaz
Tento skript k vytvoření skupiny prostředků, webové aplikace, profilu služby Traffic Manager a všech souvisejících prostředků používá následující příkazy. Každý příkaz v tabulce odkazuje na příslušnou část dokumentace.
Příkaz | Notes |
---|---|
az group create | Vytvoří skupinu prostředků, ve které se ukládají všechny prostředky. |
az appservice plan create | Vytvoří plán služby App Service. Jedná se o serverovou farmu pro webovou aplikaci Azure. |
az webapp web create | Vytvoří webovou aplikaci Azure v rámci plánu služby App Service. |
az network traffic-manager profile create | Vytvoří profil služby Azure Traffic Manager. |
az network traffic-manager endpoint create | Přidá do profilu služby Azure Traffic Manager koncový bod. |
Další kroky
Další informace o Azure CLI najdete v dokumentaci k Azure CLI.
Další ukázky skriptů rozhraní příkazového řádku služby App Service najdete v dokumentaci k sítím Azure.