دمج خدمة التطبيقات مع بوابة التطبيق باستخدام CLI

ينشئ هذا البرنامج النصي نموذج تطبيق ويب خدمة التطبيقات Azure وشبكة Azure الظاهرية وبوابة تطبيق. ثم يقيد حركة المرور لتطبيق الويب لينشأ فقط من الشبكة الفرعية لبوابة التطبيق.

إذا لم يكن لديك اشتراك Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.

المتطلبات الأساسية

نموذج البرنامج النصي

تشغيل Azure Cloud Shell

إن Azure Cloud Shell هو واجهة تفاعلية Shell مجانية يُمكنك استخدامها لتنفيذ الخطوات الواردة في هذه المقالة. يحتوي على أدوات Azure الشائعة والمثبتة مسبقًا والتي تم تكوينها للاستخدام مع حسابك.

لفتح Cloud Shell، ما عليك سوى تحديد "Try it" من الزاوية العليا اليسرى لكتلة التعليمة البرمجية. يمكنك أيضاً تشغيل Cloud Shell في علامة تبويب مستعرض منفصلة بالانتقال إلى https://shell.azure.com.

عند فتح Cloud Shell، تحقق من تحديد Bash لبيئتك. ستستخدم الجلسات اللاحقة Azure CLI في بيئة Bash، حدد نسخ لنسخ كتل التعليمات البرمجية، وألصقها في Cloud Shell، واضغط على Enter لتشغيلها.

تسجيل الدخول إلى Azure

يُصادق Cloud Shell تلقائياً بموجب الحساب الأولي الذي سُجل الدخول به. استخدم البرنامج النصي التالي لتسجيل الدخول باستخدام اشتراك مختلف، واستبدل <Subscription ID> بمعرّف اشتراك Azure الخاص بك. إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

لمزيد من المعلومات، راجع تعيين اشتراك نشط أو تسجيل الدخول بشكل تفاعلي

تشغيل البرنامج النصي

# Integrate App Service with Application Gateway
# set -e # exit if error
# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
resourceGroup="msdocs-app-service-rg-$randomIdentifier"
tag="integrate-with-app-gateway.sh"
vNet="msdocs-app-service-vnet-$randomIdentifier"
subnet="msdocs-app-service-subnet-$randomIdentifier"
appServicePlan="msdocs-app-service-plan-$randomIdentifier"
webapp="msdocs-web-app-$randomIdentifier"
appGateway="msdocs-app-gateway-$randomIdentifier"
publicIpAddress="msdocs-public-ip-$randomIdentifier"

# Create a resource group.
echo "Creating $resourceGroup in "$location"..."
az group create --name $resourceGroup --location "$location" --tag $tag

# Create network resources
az network vnet create --resource-group $resourceGroup --name $vNet --location "$location" --address-prefix 10.0.0.0/16 --subnet-name $subnet --subnet-prefix 10.0.1.0/24

az network public-ip create --resource-group $resourceGroup --location "$location" --name $publicIpAddress --dns-name $webapp --sku Standard --zone 1

# Create an App Service plan in `S1` tier
echo "Creating $appServicePlan"
az appservice plan create --name $appServicePlan --resource-group $resourceGroup --sku S1

# Create a web app.
echo "Creating $webapp"
az webapp create --name $webapp --resource-group $resourceGroup --plan $appServicePlan

appFqdn=$(az webapp show --name $webapp --resource-group $resourceGroup --query defaultHostName -o tsv)

# Create an Application Gateway
az network application-gateway create --resource-group $resourceGroup --name $appGateway --location "$location" --vnet-name $vNet --subnet $subnet --min-capacity 2 --sku Standard_v2 --http-settings-cookie-based-affinity Disabled --frontend-port 80 --http-settings-port 80 --http-settings-protocol Http --public-ip-address $publicIpAddress --servers $appFqdn

az network application-gateway http-settings update --resource-group $resourceGroup --gateway-name $appGateway --name appGatewayBackendHttpSettings --host-name-from-backend-pool

# Apply Access Restriction to Web App
az webapp config access-restriction add --resource-group $resourceGroup --name $webapp --priority 200 --rule-name gateway-access --subnet $subnet --vnet-name $vNet

# Get the App Gateway Fqdn
az network public-ip show --resource-group $resourceGroup --name $publicIpAddress --query {AppGatewayFqdn:dnsSettings.fqdn} --output table

تنظيف الموارد

استخدم الأمر التالي لإزالة مجموعة الموارد وجميع الموارد المقترنة بها باستخدام الأمر حذف مجموعة az - إلا إذا وُجدت حاجة مستمرة لهذه الموارد. قد يستغرق إنشاء بعض هذه الموارد بعض الوقت، وكذلك حذفها.

az group delete --name $resourceGroup

مرجع النموذج

يستخدم هذا البرنامج النصي الأوامر التالية لإنشاء مجموعة موارد وتطبيق App Service وCosmos DB وجميع الموارد ذات الصلة. يرتبط كل أمر في الجدول بالمستندات الخاصة بالأمر.

الأمر ملاحظات
az group create ينشئ مجموعة موارد يتم تخزين جميع الموارد فيها.
az network vnet create إنشاء شبكة افتراضية.
az network public-ip create إنشاء عنوان IP عام.
az network public-ip show إظهار تفاصيل عنوان IP عام.
az appservice plan create إنشاء خطة لخدمة التطبيقات.
az webapp create إنشاء تطبيق ويب لخدمة التطبيقات.
az webapp show إظهار تفاصيل تطبيق ويب لخدمة التطبيقات.
az webapp config access-restriction add إضافة قيد وصول إلى تطبيق ويب "خدمة التطبيقات".
az network application-gateway create إنشاء بوابة تطبيق.
az network application-gateway http-settings update تحديث إعدادات HTTP لبوابة التطبيق.

الخطوات التالية

لمزيد من المعلومات عن Azure CLI، راجع وثائق Azure CLI.

يمكن العثور على نماذج البرامج النصية الإضافية لـ CLI في ⁧⁩وثائق Azure App Service⁧⁩.