Hızlı Başlangıç: ARM şablonu kullanarak App Service uygulaması oluşturma

Cloud Shell'de Azure Resource Manager şablonu (ARM şablonu) ve Azure CLI kullanarak bir uygulamayı buluta dağıtarak Azure Uygulaması Hizmeti'ni kullanmaya başlayın. Resource Manager şablonu, projenizin altyapısını ve yapılandırmasını tanımlayan bir JavaScript Nesne Gösterimi (JSON) dosyasıdır. Ücretsiz bir App Service katmanı kullandığınızdan bu hızlı başlangıcı tamamlamak için ücret ödemezsiniz.

Bu hızlı başlangıcı tamamlamak için etkin aboneliği olan bir Azure hesabınız olmalıdır. Azure hesabınız yoksa ücretsiz olarak bir hesap oluşturabilirsiniz.

Sona atla

ARM şablonlarını kullanmayı biliyorsanız, bu Button to deploy the Resource Manager template to Azure. düğmeyi seçerek sona atlayabilirsiniz. Bu düğme ARM şablonunu Azure portalında açar.

Screenshot of the ARM Template in the Azure portal.

Azure portalında Yeni oluştur'u seçerek yeni bir Kaynak Grubu oluşturun ve ardından gözden geçir ve oluştur düğmesini seçerek uygulamayı dağıtın.

Cloud Shell'de Azure Resource Manager şablonu (ARM şablonu) ve Azure CLI kullanarak bir uygulamayı buluta dağıtarak Azure Uygulaması Hizmeti'ni kullanmaya başlayın. Resource Manager şablonu, projenizin altyapısını ve yapılandırmasını tanımlayan bir JavaScript Nesne Gösterimi (JSON) dosyasıdır. Ücretsiz bir App Service katmanı kullandığınızdan bu hızlı başlangıcı tamamlamak için ücret ödemezsiniz.

Bu hızlı başlangıcı tamamlamak için etkin aboneliği olan bir Azure hesabınız olmalıdır. Azure hesabınız yoksa ücretsiz olarak bir hesap oluşturabilirsiniz.

Sona atla

ARM şablonlarını kullanmayı biliyorsanız, bu Button to deploy the Resource Manager template to Azure. düğmeyi seçerek sona atlayabilirsiniz. Bu düğme ARM şablonunu Azure portalında açar.

Screenshot of the ARM Template in the Azure portal.

Azure portalında Yeni oluştur'u seçerek yeni bir Kaynak Grubu oluşturun ve ardından gözden geçir ve oluştur düğmesini seçerek uygulamayı dağıtın.

Cloud Shell'de Azure Resource Manager şablonu (ARM şablonu) ve Azure CLI kullanarak bir uygulamayı buluta dağıtarak Azure Uygulaması Hizmeti'ni kullanmaya başlayın. Resource Manager şablonu, projenizin altyapısını ve yapılandırmasını tanımlayan bir JavaScript Nesne Gösterimi (JSON) dosyasıdır. Bir Windows kapsayıcı uygulamasını dağıtmak için premium plan gerekir. Fiyatlandırma ayrıntıları için App Service fiyatlandırma sayfasına bakın.

Sona atla

ARM şablonlarını kullanmayı biliyorsanız, bu Button to deploy the Resource Manager template to Azure. düğmeyi seçerek sona atlayabilirsiniz. Bu düğme ARM şablonunu Azure portalında açar.

Screenshot of the ARM Template in the Azure portal.

Azure portalında Yeni oluştur'u seçerek yeni bir Kaynak Grubu oluşturun ve ardından gözden geçir ve oluştur düğmesini seçerek uygulamayı dağıtın.

Şablonu gözden geçirme

Bu hızlı başlangıçta kullanılan şablon Azure Hızlı Başlangıç Şablonlarından alınmıştır. Windows'da bir App Service planı ve App Service uygulaması dağıtır. .NET Core, .NET Framework, PHP, Node.js ve Statik HTML uygulamalarıyla uyumludur. Java için bkz . Java uygulaması oluşturma.

{
  "$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'))]"
      ]
    }
  ]
}

Şablonda iki Azure kaynağı tanımlanır:

Bu şablon, kolaylık sağlamak için önceden tanımlanmış çeşitli parametreler içerir. Parametre varsayılanları ve açıklamaları için tabloya bakın:

Parametreler Tür Default value Açıklama
webAppName Dize webApp-<uniqueString> Benzersiz dize değerini temel alan uygulama adı
appServicePlanName Dize webAppPlan-<uniqueString> Benzersiz bir dize değerini temel alan App Service Planı adı
konum Dize [resourceGroup().location] Uygulama bölgesi
sku Dize F1 Örnek boyutu (F1 = Ücretsiz Katman)
dil Dize .NET Programlama dil yığını (.NET, php, node, html)
Helloworld boolean False True = "Merhaba Dünya" uygulamasını dağıtma
repoUrl Dize Dış Git deposu (isteğe bağlı)

Bu hızlı başlangıçta kullanılan şablon Azure Hızlı Başlangıç Şablonlarından alınmıştır. Linux'ta bir App Service planı ve App Service uygulaması dağıtır. App Service'te desteklenen tüm programlama dilleri ile uyumludur.

{
  "$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'))]"
      ]
    }
  ]
}

Şablonda iki Azure kaynağı tanımlanır:

Bu şablon, kolaylık sağlamak için önceden tanımlanmış çeşitli parametreler içerir. Parametre varsayılanları ve açıklamaları için tabloya bakın:

Parametreler Tür Default value Açıklama
webAppName Dize webApp-<uniqueString> Benzersiz dize değerini temel alan uygulama adı
appServicePlanName Dize webAppPlan-<uniqueString> Benzersiz bir dize değerini temel alan App Service Planı adı
konum Dize [resourceGroup().location] Uygulama bölgesi
sku Dize F1 Örnek boyutu (F1 = Ücretsiz Katman)
linuxFxVersion Dize DOTNETCORE|3.0 "Programlama dili yığını | Sürüm"
repoUrl Dize Dış Git deposu (isteğe bağlı)

Bu hızlı başlangıçta kullanılan şablon Azure Hızlı Başlangıç Şablonlarından alınmıştır. Bir App Service planı ve Bir App Service uygulamasını bir Windows kapsayıcısı üzerinde dağıtır.

{
  "$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
      }
    }
  ]
}

Şablonda iki Azure kaynağı tanımlanır:

Bu şablon, kolaylık sağlamak için önceden tanımlanmış çeşitli parametreler içerir. Parametre varsayılanları ve açıklamaları için tabloya bakın:

Parametreler Tür Default value Açıklama
webAppName Dize webApp-<uniqueString> Benzersiz dize değerini temel alan uygulama adı
appServicePlanName Dize webAppPlan-<uniqueString> Benzersiz bir dize değerini temel alan App Service Planı adı
konum Dize [resourceGroup().location] Uygulama bölgesi
skuTier Dize P1v3 Örnek boyutu (Kullanılabilir SKU'ları görüntüleme)
uygulama Ayarlar Dize [{"name": "PORT","value": "8080"}] App Service dinleme bağlantı noktası. 8080 olması gerekiyor.
tür Dize windows İşletim Sistemi
hyperv Dize true Yalıtım modu
windowsFxVersion Dize DOCKER|mcr.microsoft.com/dotnet/samples:aspnetapp Kapsayıcı görüntüsü

Şablonu dağıtma

Azure CLI burada şablonu dağıtmak için kullanılır. Azure portalını, Azure PowerShell'i ve REST API'yi de kullanabilirsiniz. Diğer dağıtım yöntemlerini öğrenmek için bkz . Şablonları dağıtma.

Aşağıdaki kod bir kaynak grubu, App Service planı ve bir web uygulaması oluşturur. Sizin için varsayılan bir kaynak grubu, App Service planı ve konumu ayarlanmıştır. değerini genel olarak benzersiz bir uygulama adıyla değiştirin <app-name> (geçerli karakterler : a-z, 0-9ve -).

Windows'da bir .NET framework uygulaması dağıtmak için aşağıdaki komutları çalıştırın.

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"

Linux'ta bir Python uygulaması oluşturmak için aşağıdaki komutları çalıştırın:

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"

Farklı bir dil yığını dağıtmak için uygun değerlerle güncelleştirin linuxFxVersion . Örnekler tabloda gösterilmiştir. Geçerli sürümleri göstermek için Cloud Shell'de aşağıdaki komutu çalıştırın: az webapp config show --resource-group myResourceGroup --name <app-name> --query linuxFxVersion

Dil Örnek
.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"

Windows kapsayıcısına bir .NET uygulaması dağıtmak için aşağıdaki komutları çalıştırın.

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"

Not

Burada daha fazla Azure Uygulaması Hizmet şablonu örneği bulabilirsiniz.

Dağıtımı doğrulama

http://<app_name>.azurewebsites.net/ Adresine gidin ve oluşturulduğunu doğrulayın.

Screenshot of the Windows code experience.

Screenshot of the Linux experience.

Screenshot of the Windows container experience.

Kaynakları temizleme

Artık gerekli olmadığında kaynak grubunu silin.

Sonraki adımlar