7

关于 Azure App Service 的自动缩放,我只找到以下内容。

在 Azure 应用服务中缩放 Web 应用

这仅允许扩展到更多或更少的实例。它不允许扩展到更大或更小的实例。

我想按计划在小型、中型和大型之间安排应用服务实例大小。是否有 API 可以让我这样做?

非常感谢。

4

6 回答 6

4

不幸的是,目前无法按计划扩展 Azure 应用服务实例大小(即应用服务计划定价层)。

目前,Azure App Service 只能支持按计划进行水平扩展(即实例计数扩展),而不能支持垂直扩展(即实例大小扩展)。

希望这可以帮助!

于 2015-12-04T12:41:56.387 回答
4

实际上,您可以自动扩展(垂直,即更改服务计划)和扩展(实例计数)。

横向扩展选项一直存在并允许您设置规则(例如 CPU 超过 %、内存超过阈值等)

纵向扩展选项需要使用 Azure 自动化。这里有完整的记录

希望有帮助!

于 2017-03-24T14:54:22.760 回答
4

由于缺乏简单的解决方案,我创建了一个一键式部署来完成您的要求。

https://github.com/jraps20/jrap-AzureVerticalScaling

概述

我的方法使用 Azure 自动化 Runbook。通过一键部署方法,您可以在几分钟内完全启动并运行。两个互补的运行手册(ScaleAppServicePlansUp 和 ScaleAppServicePlansDown)协同工作以存储、读取和修改您选择的任何应用服务计划。这些运行手册的主要目标是非生产环境。

不幸的是,代码太长而无法包含在此答案中(所以是的,这将主要是仅链接的答案)。

伪代码

缩小

Iterate across all Resource Groups (or pass in specific one)
Iterate across all App Service Plans (or pass in specific one)
Iterate across all App Services (identify Tier-specific settings)

During iteration, the current App Service Plan Service Tier is stored in Azure Automation Variables (3 distinct variables for each App Service Plan)

Within each App Service Plan, each App Service is iterated to identify tier-specific settings. Some of these settings include: AlwaysOn, Use32BitWorkerProcess, and ClientCertEnabled. All current settings are stored in Azure Automation Variables.

All App Service Plans are then scaled down to the FREE tier.

放大

Iterate across all Resource Groups (or pass in specific one)
Iterate across all App Service Plans (or pass in specific one)
Iterate across all App Services (identify Tier-specific settings)

During iteration, the original App Service Plan Service Tier is retrieved from Azure Automation Variables (3 distinct variables for each App Service Plan)

Within each App Service Plan, each App Service is iterated and any previously stored tier-specific settings are retrieved.

All App Service Plans are then scaled up to their original tier.
All App Services with tier-specific settings are reapplied to their original values.

其他资源

免责声明

完成工作后,我开始了解Sam Spoerles 的技术 。我的方法比他的好处如下:

于 2019-07-12T12:55:09.550 回答
1

没有简单的方法可以做到这一点。

但是,如果您愿意编写一些代码,您可以使用带有 Azure 自动化的 PowerShell api 来为自己创建此功能。

您将使用 API 每 X 分钟检查一次指标(如 CPU),如果 CPU 高于 Y,则向上扩展至下一个更大的实例。如果它低于您的阈值,则按比例缩小。

于 2015-12-07T22:30:20.770 回答
1

使用powershell,您可以像这样切换Web应用程序的应用程序服务计划

PS C:\> $Resource = Get-AzureRmResource -ResourceType "microsoft.web/sites" -ResourceGroupName "ResourceGroup11" -ResourceName "ContosoSite" 
PS C:\> $Resource.Properties.ServerFarmId = "/subscriptions/{subscr_id}/resourceGroups/FriendsRGrp/provider
s/Microsoft.Web/serverfarms/FriendsPlan"
PS C:\> $Resource | Set-AzureRmResource -Force

这里的服务器场 id 只不过是服务计划的资源 id,您可以通过查看计划的属性从新门户获得。

您可以有两个服务计划,一个是基本的,另一个是标准的。然后,您可以使用 Azure 自动化在工作日升级到标准并在周末降级到基本。

我了解您的要求是更改现有计划本身,而不是在计划之间切换。我认为这应该是可能的,尽管我自己没有尝试过。但是如果你像上面那样浏览返回的 Azure Web 应用资源的 Resource.Properties 中返回的属性,你应该能够弄清楚。

于 2016-02-21T08:18:27.157 回答
0

我认为您正在寻找的是按计划或 CPU 类型的指标自动缩放 Azure WebApp

1.将您的托管计划更改为标准,您无法在标准层以下设置自动缩放。

2.使用位于 portal.azure.com 的 Azure 预览门户。

3.Azure Preview Portal:正确的设置是使用“CPU百分比”

4.Azure 门户,您可以将 Scale by Metrics 从 None 设置为 CPU

5.Set Instance count 介于 1 和 4 或 8 之间,以后可以更改,最多可以增加到 10。

有关更多详细信息,您可以参考这篇文章http://blogs.msdn.com/b/devschool/archive/2015/05/24/azure-webjobs.aspx 本文没有讨论的是按计划扩展,我认为一旦你到达那里你就能弄清楚。确保使用 portal.azure.com

于 2015-12-04T07:24:08.793 回答