برنامج تعليمي: استخدم قوالب Azure Quickstart
قوالب Azure Quickstart عبارة عن مستودع للقوالب التي يساهم بها المجتمع. يمكنك استخدام نماذج القوالب في تطوير قوالبك. في هذا البرنامج التعليمي، يمكنك العثور على تعريف لمورد موقع الويب وإضافته إلى القالب الخاص بك. تستغرق هذه التعليمات 12 دقيقة حتى تكتمل.
المتطلبات الأساسية
نوصي بإكمال البرنامج التعليمي عن القوالب المُصدرة، ولكنه ليس مطلوبًا.
يجب أن يكون لديك Visual Studio Code مع ملحق أدوات إدارة الموارد، وإما Azure PowerShell أو واجهة سطر أوامر Azure (CLI). لمزيد من المعلومات، راجع أدوات القالب.
راجع القالب
في نهاية البرنامج التعليمي السابق، كان لقالبك ملف JSON التالي:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"type": "string",
"minLength": 3,
"maxLength": 11
},
"storageSKU": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_RAGRS",
"Standard_ZRS",
"Premium_LRS",
"Premium_ZRS",
"Standard_GZRS",
"Standard_RAGZRS"
]
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
},
"appServicePlanName": {
"type": "string",
"defaultValue": "exampleplan"
}
},
"variables": {
"uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[variables('uniqueStorageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
},
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2021-03-01",
"name": "[parameters('appServicePlanName')]",
"location": "[parameters('location')]",
"sku": {
"name": "B1",
"tier": "Basic",
"size": "B1",
"family": "B",
"capacity": 1
},
"kind": "linux",
"properties": {
"perSiteScaling": false,
"reserved": true,
"targetWorkerCount": 0,
"targetWorkerSizeId": 0
}
}
],
"outputs": {
"storageEndpoint": {
"type": "object",
"value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
}
}
}
ينجح هذا القالب في توزيع حسابات التخزين وخطط خدمة التطبيقات، ولكن قد ترغب في إضافة موقع ويب إليه. يمكنك استخدام قوالب أُنشئت مسبقاً للاكتشاف السريع لتنسيق JSON المطلوب لتوزيع مورد.
إضافة قالب
حدد المربع الذي يحمل العنوان Deploy a basic Linux web app. إذا كنت تواجه مشكلة في العثور عليه، فإليك الرابط المباشر.
حدد Browse on GitHub.
حدد azuredeploy.json.
راجع القالب. البحث عن
Microsoft.Web/sites
المورد.
مراجعة القالب الحالي
دمج قالب التشغيل السريع مع القالب الموجود:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"type": "string",
"minLength": 3,
"maxLength": 11
},
"storageSKU": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_RAGRS",
"Standard_ZRS",
"Premium_LRS",
"Premium_ZRS",
"Standard_GZRS",
"Standard_RAGZRS"
]
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
},
"appServicePlanName": {
"type": "string",
"defaultValue": "exampleplan"
},
"webAppName": {
"type": "string",
"metadata": {
"description": "Base name of the resource such as web app name and app service plan "
},
"minLength": 2
},
"linuxFxVersion": {
"type": "string",
"defaultValue": "php|7.0",
"metadata": {
"description": "The Runtime stack of current web app"
}
}
},
"variables": {
"uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]",
"webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[variables('uniqueStorageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
},
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2021-03-01",
"name": "[parameters('appServicePlanName')]",
"location": "[parameters('location')]",
"sku": {
"name": "B1",
"tier": "Basic",
"size": "B1",
"family": "B",
"capacity": 1
},
"kind": "linux",
"properties": {
"perSiteScaling": false,
"reserved": true,
"targetWorkerCount": 0,
"targetWorkerSizeId": 0
}
},
{
"type": "Microsoft.Web/sites",
"apiVersion": "2021-03-01",
"name": "[variables('webAppPortalName')]",
"location": "[parameters('location')]",
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]"
],
"kind": "app",
"properties": {
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]",
"siteConfig": {
"linuxFxVersion": "[parameters('linuxFxVersion')]"
}
}
}
],
"outputs": {
"storageEndpoint": {
"type": "object",
"value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
}
}
}
يجب أن يكون اسم تطبيق الويب فريداً عبر Azure. لمنع تكرار الأسماء، يتم تحديث المتغير webAppPortalName
من "webAppPortalName": "[concat(parameters('webAppName'), '-webapp')]"
إلى "webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]"
.
إضافة فاصلة في نهاية التعريف Microsoft.Web/serverfarms
لفصل تعريف المورد عن التعريف Microsoft.Web/sites
.
هناك بعض الميزات الهامة التي يجب ملاحظتها في هذا المورد الجديد.
يحتوي على عنصر مسمى dependsOn
تم تعيينه على خطة خدمة التطبيق. هذا الإعداد مطلوب لأن خطة خدمة التطبيق يجب أن تكون موجودة قبل إنشاء تطبيق الويب. العنصر dependsOn
يخبر Resource Manager بكيفية ترتيب الموارد للتوزيع.
الخاصية serverFarmId
تستخدم الدالة resourceId. تحصل هذه الدالة على المعرف الفريد لمورد. في هذه الحالة، تحصل على المعرف الفريد لخطة خدمة التطبيق. يرتبط تطبيق الويب بخطة خدمة تطبيق معينة.
نشر القالب
استخدم إما Azure CLI أو Azure PowerShell لنشر القالب.
إذا لم تكن قد أنشأت مجموعة الموارد، فراجع إنشاء مجموعة موارد. يفترض المثال أنك عينت المتغير templateFileإلى المسار إلى ملف القالب، على النحو المُوضح في البرنامج التعليمي الأول.
New-AzResourceGroupDeployment `
-Name addwebapp `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storagePrefix "store" `
-storageSKU Standard_LRS `
-webAppName demoapp
ملاحظة
إذا فشل التوزيع، فاستخدمverbose
رمز التبديل للحصول على معلومات حول الموارد التي تقوم بإنشائها. استخدم مفتاح debug
للحصول على مزيد من المعلومات لتصحيح الأخطاء.
تنظيف الموارد
إذا كنت تنتقل إلى البرنامج التعليمي التالي، فلن تحتاج إلى حذف مجموعة الموارد.
إذا كنت تتوقف الآن، فقد ترغب في حذف مجموعة الموارد.
- من مدخل Azure، حدد ResourceGroup من القائمة اليسرى.
- اكتب اسم مجموعة الموارد في عامل التصفية لأي حقل....
- حدد المربع بجوار myResourceGroup وحدد myResourceGroup أو اسم مجموعة الموارد الذي اخترته.
- حدد Delete resource group من القائمة.
الخطوات التالية
تعلمت كيفية استخدام قالب بدء التشغيل السريع لتطوير قالبك. في البرنامج التعليمي التالي، تضيف علامات إلى الموارد.