Sql 如何在azure for DTU上自动运行此脚本
我可以运行上面的脚本使我的sql数据库达到S0 DTU级别 我能自动做这个吗 顺便说一句,我在论坛和stackoverflow上搜索过, 他们推荐自动化帐户和runebook。 但是我没有RunAsAccount。我没有管理员权限,无法创建RunAsAccount。所以我不能用runbook 你能给我推荐另一种方式吗 谢谢:) 但是我没有RunAsAccount。我没有管理员权限,无法创建RunAsAccount。所以我不能用runbook 如果要使用运行方式帐户创建自动化帐户,您需要在订阅中具有Sql 如何在azure for DTU上自动运行此脚本,sql,azure,powershell,azure-sql-database,Sql,Azure,Powershell,Azure Sql Database,我可以运行上面的脚本使我的sql数据库达到S0 DTU级别 我能自动做这个吗 顺便说一句,我在论坛和stackoverflow上搜索过, 他们推荐自动化帐户和runebook。 但是我没有RunAsAccount。我没有管理员权限,无法创建RunAsAccount。所以我不能用runbook 你能给我推荐另一种方式吗 谢谢:) 但是我没有RunAsAccount。我没有管理员权限,无法创建RunAsAccount。所以我不能用runbook 如果要使用运行方式帐户创建自动化帐户,您需要在订阅中具
所有者
角色,因为在创建运行方式帐户(服务主体)时,它会自动将服务主体作为参与者添加到订阅中
,只需使用所有者
即可
但是,如果您只想在自动化帐户中使用runbook,则不需要
所有者
角色。您只需请求订阅中的所有者
为您创建一个带有运行方式帐户的自动化帐户,然后您就可以创建一个powershell runbook,并使用例如参与者
角色运行上面的命令
所有者
为您创建自动化帐户后,请按照以下步骤操作
1.导航到自动化帐户->运行手册->创建运行手册->创建Powershell运行手册
2.您正在使用的两个命令Get-AzureSqlDatabaseServiceObjective
,Set-AzureSqlDatabase
,都属于Azure
,即ASM powershell模块,它很旧,如果您想使用它们,您需要使用Azure Classic Run-As帐户(CSP订阅中不支持)。因此,我建议您使用新的Az
powershell模块。在自动化帐户->模块
中,检查是否有Az.Accounts
和Az.Sql
模块,如果没有,在模块
->浏览库
中,搜索模块并导入它们。)
导入成功后,使用下面的脚本登录并使用标准S0设置sql db
$ServiceObjective = Get-AzureSqlDatabaseServiceObjective -ServerName exampledb-ServiceObjectiveName S0
Set-AzureSqlDatabase -DatabaseName exampledb-ServerName exampledb-ServiceObjective $ServiceObjective
$connectionName=“AzureRunAsConnection”
尝试
{
#获取连接“AzureRunAsConnection”
$servicePrincipalConnection=获取自动连接-名称$connectionName
“登录到Azure…”
连接AzAccount`
-服务负责人`
-租户ID$servicePrincipalConnection.TenantId`
-ApplicationId$servicePrincipalConnection.ApplicationId`
-CertificateThumbprint$servicePrincipalConnection.CertificateThumbprint
}
抓住{
if(!$servicePrincipalConnection)
{
$ErrorMessage=“未找到连接$connectionName。”
抛出$ErrorMessage
}否则{
写入错误-消息$\异常
抛出$\异常
}
}
设置AZSQLDABASE-ResourceGroupName”“-DatabaseName”“-ServerName”“-Edition“标准”-RequestedServiceObjectiveName“S0”
3.如果您希望按照计划自动运行脚本,您可以按照此链接进行操作。您可以使用powershell查看azure函数:。它是runbook的一个很好的替代品=更便宜。您可以在x分钟内运行脚本以检查所需内容。它是否用于非生产环境?对于开发,您可能希望使用Azure SQL数据库serverless
:。它将根据负载和不活动情况进行放大和缩小。我将其用于开发人员工作负载,这非常好。最后一件事是创建警报度量:。然后你使用一个webhook指向你的azure powershell函数。那么你真的尝试创建自动化帐户了吗?好的,要使用它,无需成为管理员。您只需请求订阅中的所有者
为您创建一个带有运行方式帐户的自动化帐户,然后您就可以创建一个powershell runbook,并使用上面的参与者
角色运行您的命令。因为在创建运行方式帐户(service princiapl)时,它会自动将其添加到订阅中,但如果您不是所有者
,则无法执行此操作。如果您只想使用runbook,则无需成为所有者
。
$connectionName = "AzureRunAsConnection"
try
{
# Get the connection "AzureRunAsConnection "
$servicePrincipalConnection=Get-AutomationConnection -Name $connectionName
"Logging in to Azure..."
Connect-AzAccount `
-ServicePrincipal `
-TenantId $servicePrincipalConnection.TenantId `
-ApplicationId $servicePrincipalConnection.ApplicationId `
-CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint
}
catch {
if (!$servicePrincipalConnection)
{
$ErrorMessage = "Connection $connectionName not found."
throw $ErrorMessage
} else{
Write-Error -Message $_.Exception
throw $_.Exception
}
}
Set-AzSqlDatabase -ResourceGroupName "<resource-group-name>" -DatabaseName "<database-name>" -ServerName "<server-name>" -Edition "Standard" -RequestedServiceObjectiveName "S0"