0

我想自动扩展我们的弹性池,以便在上午 8 点至下午 6 点之间我们为它们提供大量资源,而在下午 6 点至上午 8 点之间我们为它们提供很少的资源。我可以使用 powershell 来向上和向下扩展弹性池......

Set-AzSqlElasticPool 
-ResourceGroupName "ResourceGroupName01"
-ServerName "ServerName01"
-ElasticPoolName "ElasticPoolName01"
-Dtu 100
-DatabaseDtuMax 50 
-DatabaseDtuMin 20

但我不确定如何在 Azure 中自动运行该 powershell 脚本以自动扩展我的弹性池。

4

2 回答 2

0

在 Azure 门户中创建一个新的函数应用。为了完成这项工作,我们需要向函数应用程序添加 2 个模块。我们需要最新版本的 Az.Accounts 和 Az.Sql。您可以在此处查看最新版本: https ://www.powershellgallery.com/packages/Az.Accounts https://www.powershellgallery.com/packages/Az.Sql 在每个手动下载选项卡上下载 nuget 包以上页面。 下载包

返回 Azure 中的函数应用并选择“高级工具”并单击“Go”,从顶部菜单中选择“调试控制台”>“Powershell” Kudu 菜单

浏览到 \site\wwwroot 并编辑文件:requirements.psd1。添加对我们打算添加的 2 个模块的引用(如果需要,请不要忘记更新版本号),然后保存。 要求.psd1 文件

在 wwwroot 目录中创建一个名为 Modules 的新文件夹,在 Modules 文件夹中创建 2 个附加文件夹“Az.Sql”和“Az.Accounts”。在每个文件夹中拖放您之前下载的相应 nuget 包。你需要等待一分钟让 Kudu 解开它们。 模块文件夹

现在单击主页按钮并运行以下 2 个 powershell 命令 Import-Module C:\home\site\wwwroot\Modules\Az.Accounts\Az.Accounts.psd1 Import-Module C:\home\site\wwwroot\Modules\ Az.Sql\Az.Sql.psd1 一个很好的解释在这里:https ://tech.nicolonsky.ch/azure-functions-powershell-modules/ 现在已经安装了模块,所以回到函数应用程序并选择身份在菜单中并打开系统分配。现在浏览到您的 SQL Server(即托管弹性池)> 访问控制 > 添加 > 添加角色分配。选择合适的角色(所有者可以工作但不适合生产环境)。在成员中选择“分配访问权限”“托管身份”,选择成员并选择您的函数应用,然后分配角色。

回到 Function App,您现在可以创建一个函数来扩展您的弹性池。对于计时器函数,此网站对于生成 CRON 表达式非常有帮助https://ncrontab.swimburger.net/ 在函数的代码和测试选项卡中添加以下行以根据您的要求扩展池:Set-AzSqlElasticPool -ResourceGroupName“ ResourceGroupName01" -ServerName "ServerName01" -ElasticPoolName "ElasticPoolName01" -Dtu 100 -DatabaseDtuMax 50 -DatabaseDtuMin 20

于 2022-01-28T09:24:09.807 回答
0

是否可以自动使天蓝色弹性池缩放?

https://docs.microsoft.com/en-us/azure/azure-sql/database/scripts/monitor-and-scale-pool-powershell

我不确定您拥有哪种类型的应用程序,但您可以使用 Azure Function 或 WebJob 在每天的特定时间进行缩减和扩展。这将比纯 PowerShell 更可靠。

于 2022-01-25T19:12:09.273 回答