共用方式為


對 Azure App Service 上的高密度託管使用個別應用程式調整

注意

建議您使用 Azure Az PowerShell 模組來與 Azure 互動。 若要開始使用,請參閱 安裝 Azure PowerShell。 若要了解如何移轉至 Az PowerShell 模組,請參閱將 Azure PowerShell 從 AzureRM 移轉至 Az

使用 App Service 時,您可以藉由擴充執行應用程式的 App Service 方案,來擴充應用程式。 當有多個應用程式執行於相同 App Service 方案中時,每個向外延展的執行個體都會執行方案中的所有應用程式。

您可在 App Service 方案層級啟用個別應用程式調整,以允許從裝載應用程式的 App Service 方案獨立調整應用程式。 如此一來,就可以將 App Service 方案調整為 10 個執行個體,但將應用程式設定為只使用 5 個。

注意

個別應用程式調整僅適用於標準、進階、進階 V2、進階 V3 和隔離式定價層。

即使分散於執行個體,應用程式仍會使用最佳做法,配置到可用的 App Service 方案。 雖然不保證平均分散,但平台會確保相同應用程式的兩個執行個體,不會裝載在相同的 App Service 方案執行個體。

平台不會仰賴計量來決定背景工作角色配置。 只有在從 App Service 方案中新增或移除執行個體時,才會重新平衡應用程式。

使用 PowerShell 進行個別應用程式調整

透過將 -PerSiteScaling $true 參數傳遞給 New-AzAppServicePlan Cmdlet,建立一個有「個別應用程式調整」的方案。

New-AzAppServicePlan -ResourceGroupName $ResourceGroup -Name $AppServicePlan `
                            -Location $Location `
                            -Tier Premium -WorkerSize Small `
                            -NumberofWorkers 5 -PerSiteScaling $true

透過將 -PerSiteScaling $true 參數傳遞給 Set-AzAppServicePlan Cmdlet,對現有 App Service 方案啟用「個別應用程式調整」。

# Enable per-app scaling for the App Service Plan using the "PerSiteScaling" parameter.
Set-AzAppServicePlan -ResourceGroupName $ResourceGroup `
   -Name $AppServicePlan -PerSiteScaling $true

在應用程式層級,設定應用程式可以在 App Service 方案中使用的執行個體數目。

在以下範例中,應用程式限制為 2 個執行個體,不論其基礎 App Service 方案的規模相應放大到多少個執行個體。

# Get the app we want to configure to use "PerSiteScaling"
$newapp = Get-AzWebApp -ResourceGroupName $ResourceGroup -Name $webapp

# Modify the NumberOfWorkers setting to the desired value.
$newapp.SiteConfig.NumberOfWorkers = 2

# Post updated app back to azure
Set-AzWebApp $newapp

重要

$newapp.SiteConfig.NumberOfWorkers 不同於 $newapp.MaxNumberOfWorkers。 個別應用程式調整會使用 $newapp.SiteConfig.NumberOfWorkers 來決定應用程式的調整特性。

使用 Azure Resource Manager 進行個別應用程式調整

下列「Azure Resource Manager 範本」會建立:

  • 規模相應放大到 10 個執行個體的 App Service 方案
  • 已設定為將上限調整成 5 個執行個體的應用程式。

App Service 方案會將 PerSiteScaling 屬性設為 true ("perSiteScaling": true)。 應用程式會將要使用的「背景工作角色數目」設定為 5 ("properties": { "numberOfWorkers": "5" })。

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters":{
        "appServicePlanName": { "type": "string" },
        "appName": { "type": "string" }
        },
    "resources": [
    {
        "comments": "App Service Plan with per site perSiteScaling = true",
        "type": "Microsoft.Web/serverFarms",
        "sku": {
            "name": "P1",
            "tier": "Premium",
            "size": "P1",
            "family": "P",
            "capacity": 10
            },
        "name": "[parameters('appServicePlanName')]",
        "apiVersion": "2015-08-01",
        "location": "West US",
        "properties": {
            "name": "[parameters('appServicePlanName')]",
            "perSiteScaling": true
        }
    },
    {
        "type": "Microsoft.Web/sites",
        "name": "[parameters('appName')]",
        "apiVersion": "2015-08-01-preview",
        "location": "West US",
        "dependsOn": [ "[resourceId('Microsoft.Web/serverFarms', parameters('appServicePlanName'))]" ],
        "properties": { "serverFarmId": "[resourceId('Microsoft.Web/serverFarms', parameters('appServicePlanName'))]" },
        "resources": [ {
                "comments": "",
                "type": "config",
                "name": "web",
                "apiVersion": "2015-08-01",
                "location": "West US",
                "dependsOn": [ "[resourceId('Microsoft.Web/Sites', parameters('appName'))]" ],
                "properties": { "numberOfWorkers": "5" }
            } ]
        }]
}

個別應用程式調整是全域 Azure 區域和 App Service 環境中啟用的功能。 不過,建議策略是使用 App Service 環境,以利用其進階功能和較大的 App Service 方案容量。

請遵循下列步驟來設定應用程式的高密度裝載︰

  1. 將 App Service 方案指定為高密度方案,並將其擴大至所需的容量。
  2. 在 App Service 方案上將 PerSiteScaling 旗標設定為 true。
  3. 新應用程式會建立並指派給該 App Service 方案,其中 numberOfWorkers 屬性會設定為 1
    • 使用此設定會盡可能產生最高密度。
  4. 背景工作角色數目可依每個應用程式單獨設定,以視需要授與額外資源。 例如:
    • 高用量應用程式可以將 numberOfWorkers 設定為 3,讓該應用程式具有更多的處理容量。
    • 低用量應用程式會將 numberOfWorkers 設定為 1

下一步