بدء التشغيل السريع: إنشاء تطبيق App Service باستخدام قالب ARM

ابدأ باستخدام Azure App Service من خلال توزيع تطبيق على السحابة باستخدام قالب Azure Resource Manager (قالب ARM) وAzure CLI في Cloud Shell. قالب Resource Manager هو ملف JavaScript Object Notation (JSON) الذي يحدد البنية الأساسية والتكوين لمشروعك. لا تتحمل أي تكاليف لإكمال هذا التشغيل السريع لأنك تستخدم طبقة App Service مجانية.

لإكمال هذا التشغيل السريع، ستحتاج إلى حساب Azure مع اشتراك نشط. إذا لم يكن لديك حساب Azure، يمكنك إنشاء حساب مجانا.

تخطي إلى النهاية

إذا كنت على دراية باستخدام قوالب ARM، يمكنك التخطي إلى النهاية عن طريق تحديد هذا Button to deploy the Resource Manager template to Azure. الزر. يفتح هذا الزر قالب ARM في مدخل Microsoft Azure.

Screenshot of the ARM Template in the Azure portal.

في مدخل Microsoft Azure، حدد Create new لإنشاء مجموعة موارد جديدة ثم حدد الزر Review + create لنشر التطبيق.

ابدأ باستخدام Azure App Service من خلال توزيع تطبيق على السحابة باستخدام قالب Azure Resource Manager (قالب ARM) وAzure CLI في Cloud Shell. قالب Resource Manager هو ملف JavaScript Object Notation (JSON) الذي يحدد البنية الأساسية والتكوين لمشروعك. لا تتحمل أي تكاليف لإكمال هذا التشغيل السريع لأنك تستخدم طبقة App Service مجانية.

لإكمال هذا التشغيل السريع، ستحتاج إلى حساب Azure مع اشتراك نشط. إذا لم يكن لديك حساب Azure، يمكنك إنشاء حساب مجانا.

تخطي إلى النهاية

إذا كنت على دراية باستخدام قوالب ARM، يمكنك التخطي إلى النهاية عن طريق تحديد هذا Button to deploy the Resource Manager template to Azure. الزر. يفتح هذا الزر قالب ARM في مدخل Microsoft Azure.

Screenshot of the ARM Template in the Azure portal.

في مدخل Microsoft Azure، حدد Create new لإنشاء مجموعة موارد جديدة ثم حدد الزر Review + create لنشر التطبيق.

ابدأ باستخدام Azure App Service من خلال توزيع تطبيق على السحابة باستخدام قالب Azure Resource Manager (قالب ARM) وAzure CLI في Cloud Shell. قالب Resource Manager هو ملف JavaScript Object Notation (JSON) الذي يحدد البنية الأساسية والتكوين لمشروعك. هناك حاجة إلى خطة متميزة لنشر تطبيق حاوية Windows. راجع صفحة تسعير App Service للحصول على تفاصيل التسعير.

تخطي إلى النهاية

إذا كنت على دراية باستخدام قوالب ARM، يمكنك التخطي إلى النهاية عن طريق تحديد هذا Button to deploy the Resource Manager template to Azure. الزر. يفتح هذا الزر قالب ARM في مدخل Microsoft Azure.

Screenshot of the ARM Template in the Azure portal.

في مدخل Microsoft Azure، حدد Create new لإنشاء مجموعة موارد جديدة ثم حدد الزر Review + create لنشر التطبيق.

مراجعة القالب

يُعدّ النموذج المستخدم في هذا التشغيل السريع مأخوذاً من قوالب التشغيل السريع من Azure. وهي تنشر خطة App Service وتطبيق App Sevice على Windows. ومتوافقة مع تطبيقات .NET Core و.NET Framework وPHP وNode.js وHTML الثابت. بالنسبة إلى Java، راجع إنشاء تطبيق Java.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.25.53.49325",
      "templateHash": "16144177164140676603"
    }
  },
  "parameters": {
    "webAppName": {
      "type": "string",
      "defaultValue": "[format('webApp-{0}', uniqueString(resourceGroup().id))]",
      "minLength": 2,
      "metadata": {
        "description": "Web app name."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "sku": {
      "type": "string",
      "defaultValue": "F1",
      "metadata": {
        "description": "The SKU of App Service Plan."
      }
    },
    "language": {
      "type": "string",
      "defaultValue": ".net",
      "allowedValues": [
        ".net",
        "php",
        "node",
        "html"
      ],
      "metadata": {
        "description": "The language stack of the app."
      }
    },
    "helloWorld": {
      "type": "bool",
      "defaultValue": false,
      "metadata": {
        "description": "true = deploy a sample Hello World app."
      }
    },
    "repoUrl": {
      "type": "string",
      "defaultValue": "",
      "metadata": {
        "description": "Optional Git Repo URL"
      }
    }
  },
  "variables": {
    "appServicePlanPortalName": "[format('AppServicePlan-{0}', parameters('webAppName'))]",
    "gitRepoReference": {
      ".net": "https://github.com/Azure-Samples/app-service-web-dotnet-get-started",
      "node": "https://github.com/Azure-Samples/nodejs-docs-hello-world",
      "php": "https://github.com/Azure-Samples/php-docs-hello-world",
      "html": "https://github.com/Azure-Samples/html-docs-hello-world"
    },
    "gitRepoUrl": "[if(bool(parameters('helloWorld')), variables('gitRepoReference')[toLower(parameters('language'))], parameters('repoUrl'))]",
    "configReference": {
      ".net": {
        "comments": ".Net app. No additional configuration needed."
      },
      "html": {
        "comments": "HTML app. No additional configuration needed."
      },
      "php": {
        "phpVersion": "7.4"
      },
      "node": {
        "appSettings": [
          {
            "name": "WEBSITE_NODE_DEFAULT_VERSION",
            "value": "12.15.0"
          }
        ]
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2023-01-01",
      "name": "[variables('appServicePlanPortalName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('sku')]"
      }
    },
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2023-01-01",
      "name": "[parameters('webAppName')]",
      "location": "[parameters('location')]",
      "identity": {
        "type": "SystemAssigned"
      },
      "properties": {
        "siteConfig": "[variables('configReference')[parameters('language')]]",
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanPortalName'))]",
        "httpsOnly": true
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanPortalName'))]"
      ]
    },
    {
      "condition": "[contains(variables('gitRepoUrl'), 'http')]",
      "type": "Microsoft.Web/sites/sourcecontrols",
      "apiVersion": "2023-01-01",
      "name": "[format('{0}/{1}', parameters('webAppName'), 'web')]",
      "properties": {
        "repoUrl": "[variables('gitRepoUrl')]",
        "branch": "master",
        "isManualIntegration": true
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/sites', parameters('webAppName'))]"
      ]
    }
  ]
}

يتم تعريف موردين لـ Azure في القالب:

يحتوي هذا القالب على العديد من المعلمات المعرفة مسبقًا لراحتك. راجع الجدول الخاص بالإعدادات الافتراضية للمعلمة ووصفها:

المعلمات نوع القيمة الافتراضية ‏‏الوصف
webAppName سلسلة webApp-<uniqueString> اسم التطبيق استنادا إلى قيمة سلسلة فريدة
appServicePlanName سلسلة webAppPlan-<uniqueString> اسم خطة خدمة التطبيقات استنادا إلى قيمة سلسلة فريدة
الموقع سلسلة [resourceGroup().location] منطقة التطبيق
sku سلسلة F1 حجم المثيل (F1 = المستوى المجاني)
اللغة سلسلة .NET حزمة لغات البرمجة (NET، php، node، html.)
helloWorld boolean False صحيح = نشر تطبيق "Hello World"
repoUrl سلسلة تقرير Git الخارجي (اختياري)

يُعدّ النموذج المستخدم في هذا التشغيل السريع مأخوذاً من قوالب التشغيل السريع من Azure. وهي تنشر خطة App Service وتطبيق App Service على Linux. ومتوافقة مع جميع لغات البرمجة المدعومة في App Service.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.5.6.12127",
      "templateHash": "10602523904429381366"
    }
  },
  "parameters": {
    "webAppName": {
      "type": "string",
      "defaultValue": "[format('webApp-{0}', uniqueString(resourceGroup().id))]",
      "minLength": 2,
      "metadata": {
        "description": "Web app name."
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "sku": {
      "type": "string",
      "defaultValue": "F1",
      "metadata": {
        "description": "The SKU of App Service Plan."
      }
    },
    "linuxFxVersion": {
      "type": "string",
      "defaultValue": "DOTNETCORE|3.0",
      "metadata": {
        "description": "The Runtime stack of current web app"
      }
    },
    "repoUrl": {
      "type": "string",
      "defaultValue": " ",
      "metadata": {
        "description": "Optional Git Repo URL"
      }
    }
  },
  "variables": {
    "appServicePlanPortalName": "[format('AppServicePlan-{0}', parameters('webAppName'))]"
  },
  "resources": [
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2021-02-01",
      "name": "[variables('appServicePlanPortalName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('sku')]"
      },
      "kind": "linux",
      "properties": {
        "reserved": true
      }
    },
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2021-02-01",
      "name": "[parameters('webAppName')]",
      "location": "[parameters('location')]",
      "properties": {
        "httpsOnly": true,
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanPortalName'))]",
        "siteConfig": {
          "linuxFxVersion": "[parameters('linuxFxVersion')]",
          "minTlsVersion": "1.2",
          "ftpsState": "FtpsOnly"
        }
      },
      "identity": {
        "type": "SystemAssigned"
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanPortalName'))]"
      ]
    },
    {
      "condition": "[contains(parameters('repoUrl'), 'http')]",
      "type": "Microsoft.Web/sites/sourcecontrols",
      "apiVersion": "2021-02-01",
      "name": "[format('{0}/{1}', parameters('webAppName'), 'web')]",
      "properties": {
        "repoUrl": "[parameters('repoUrl')]",
        "branch": "master",
        "isManualIntegration": true
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/sites', parameters('webAppName'))]"
      ]
    }
  ]
}

يتم تعريف موردين لـ Azure في القالب:

يحتوي هذا القالب على العديد من المعلمات المعرفة مسبقًا لراحتك. راجع الجدول الخاص بالإعدادات الافتراضية للمعلمة ووصفها:

المعلمات نوع القيمة الافتراضية ‏‏الوصف
webAppName سلسلة webApp-<uniqueString> اسم التطبيق استنادا إلى قيمة سلسلة فريدة
appServicePlanName سلسلة webAppPlan-<uniqueString> اسم خطة خدمة التطبيقات استنادا إلى قيمة سلسلة فريدة
الموقع سلسلة [resourceGroup().location] منطقة التطبيق
sku سلسلة F1 حجم المثيل (F1 = المستوى المجاني)
linuxFxVersion سلسلة DOTNETCORE|3.0 "حزمة لغات البرمجة | الإصدار"
repoUrl سلسلة تقرير Git الخارجي (اختياري)

يُعدّ النموذج المستخدم في هذا التشغيل السريع مأخوذاً من قوالب التشغيل السريع من Azure. يقوم بنشر خطة App Service وتطبيق App Service على حاوية Windows.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.25.53.49325",
      "templateHash": "10193476814580854111"
    }
  },
  "parameters": {
    "appServiceWebAppName": {
      "type": "string",
      "defaultValue": "[format('webApp-{0}', uniqueString(resourceGroup().id))]",
      "minLength": 2,
      "metadata": {
        "description": "Web App name."
      }
    },
    "appServicePlanName": {
      "type": "string",
      "defaultValue": "[format('webApp-{0}', uniqueString(resourceGroup().id))]",
      "minLength": 2,
      "metadata": {
        "description": "App Service Plan name."
      }
    },
    "skuTier": {
      "type": "string",
      "defaultValue": "P1v3"
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2023-01-01",
      "name": "[parameters('appServiceWebAppName')]",
      "location": "[parameters('location')]",
      "tags": {
        "[format('hidden-related:{0}', resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName')))]": "empty"
      },
      "properties": {
        "siteConfig": {
          "appSettings": [
            {
              "name": "PORT",
              "value": "8080"
            }
          ],
          "appCommandLine": "",
          "windowsFxVersion": "DOCKER|mcr.microsoft.com/dotnet/samples:aspnetapp"
        },
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]"
      },
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]"
      ]
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2023-01-01",
      "name": "[parameters('appServicePlanName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('skuTier')]"
      },
      "kind": "windows",
      "properties": {
        "hyperV": true
      }
    }
  ]
}

يتم تعريف موردين لـ Azure في القالب:

يحتوي هذا القالب على العديد من المعلمات المعرفة مسبقًا لراحتك. راجع الجدول الخاص بالإعدادات الافتراضية للمعلمة ووصفها:

المعلمات نوع القيمة الافتراضية ‏‏الوصف
webAppName سلسلة webApp-<uniqueString> اسم التطبيق استنادا إلى قيمة سلسلة فريدة
appServicePlanName سلسلة webAppPlan-<uniqueString> اسم خطة خدمة التطبيقات استنادا إلى قيمة سلسلة فريدة
الموقع سلسلة [resourceGroup().location] منطقة التطبيق
skuTier سلسلة P1v3 حجم المثيل (عرض وحدات SKU المتوفرة)
التطبيق الإعدادات سلسلة [{"name": "PORT","value": "8080"}] منفذ الاستماع ل App Service. يجب أن يكون 8080.
النوع سلسلة windows نظام تشغيل
ارتفاع ضغط الدم سلسلة true وضع العزل
windowsFxVersion سلسلة DOCKER|mcr.microsoft.com/dotnet/samples:aspnetapp صورة الحاوية

نشر القالب

يتم استخدام Azure CLI هنا لنشر القالب. يمكنك أيضًا استخدام مدخل Azure وAzure PowerShell وREST API. لمعرفة طرق النشر الأخرى، راجع نشر القوالب.

تقوم التعليمات البرمجية التالية بإنشاء مجموعة موارد وخطة App Service وتطبيق ويب. تم تعيين مجموعة موارد وخطة App Service وموقع بشكلٍ افتراضي لك. استبدل <app-name> باسم تطبيق فريد عالميًا (الأحرف الصالحة هي a-zو 0-9 و-).

قم بتشغيل الأوامر التالية لنشر تطبيق .NET framework على Windows.

az group create --name myResourceGroup --location "southcentralus"

az deployment group create --resource-group myResourceGroup \
--parameters language=".NET" helloWorld="true" webAppName="<app-name>" \
--template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.web/app-service-docs-windows/azuredeploy.json"

قم بتشغيل الأوامر التالية لإنشاء تطبيق Python على Linux:

az group create --name myResourceGroup --location "southcentralus"

az deployment group create --resource-group myResourceGroup --parameters webAppName="<app-name>" linuxFxVersion="PYTHON|3.9" \
--template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.web/app-service-docs-linux/azuredeploy.json"

لنشر بنية تخزين لغة مختلفة، قم بتحديث linuxFxVersion باستخدام القيم المناسبة. تظهر العينات في الجدول. لإظهار الإصدارات الحالية، قم بإجراء الأمر الآتي على Cloud Shell: az webapp config show --resource-group myResourceGroup --name <app-name> --query linuxFxVersion

اللغة‬ مثال
NET. linuxFxVersion="DOTNETCORE|3.0"
Php linuxFxVersion="PHP|7.4"
Node.js linuxFxVersion="NODE|10.15"
Java linuxFxVersion="JAVA|1.8 |TOMCAT|9.0"
Python linuxFxVersion="PYTHON|3.7"

قم بتشغيل الأوامر التالية لنشر تطبيق .NET على حاوية Windows.

az group create --name myResourceGroup --location "southcentralus"

az deployment group create --resource-group myResourceGroup \
--parameters webAppName="<app-name>" \
--template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.web/app-service-docs-windows-container/azuredeploy.json"

إشعار

يمكنك العثور على مزيد من نماذج قالب Azure App Service هنا.

التحقُّق من صحة عملية النشر

استعرض http://<app_name>.azurewebsites.net/ للتحقق من أنه تم إنشاؤه.

Screenshot of the Windows code experience.

Screenshot of the Linux experience.

Screenshot of the Windows container experience.

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

احذف مجموعة الموارد في حالة عدم الحاجة إليها.

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

 PHP مع MySQL