Auto Azure SQL DB Creation -DACPAC 任务如何配置数据库 Azure 定价模型

Auto Azure SQL DB Creation -DACPAC task how to configure database Azure pricing model

我刚刚发现 MS 正在更改创建时的默认 Azure PaaS 数据库配置设置,以使用 Vcor​​e 而不是 DTU。我正在使用 Azure Devops 通过 DACPAC 使用 Azure SQL 任务从 GithHub 存储库构建数据库。我想为我的构建保留 DTU 模型。

我可以看到的实现此选项的选项是:

对于第二个选项,我已成功使用下面的代码片段创建数据库,但无法找到如何使用“例如标准 S0 10 DTU”创建数据库。

非常感谢收到任何建议..

New-AzureRmSqlDatabase -ResourceGroupName $ResourceGroup -ServerName $Servername -DatabaseName $DataBaseName

一般来说,您希望通过各种幂等配置语言来配置您的 Azure 资源。 ARM 模板是原生的,Terraform 是一种流行的替代方案。 运行 在每次部署开始时部署您的 ARM 模板,然后您的应用程序 运行 所需的所有基础设施都将到位并正确配置。

不过,如果您想使用 PowerShell 执行此操作,则您要查找的 parametersEditionRequestedServiceObjectiveName。 IE。 -Edition Standard -RequestedServiceObjectiveName S0.

由于 Azure 的不断流失导致文档中的缺陷导致多次错误启动后,我有了一个工作脚本。此脚本有效,网络挂钩允许从 Azure Devops CI.

调用它
param
(
[Parameter (Mandatory = $false)]
[object] $WebhookData
)

Write-Output $WebhookData
# If runbook was called from Webhook, WebhookData will not be null.
if ($WebhookData) {

# Retrieve Params from Webhook request body
$params = (ConvertFrom-Json -InputObject $WebhookData.RequestBody)

foreach ($param in $params)
{
    $DatabaseName = $param.DatabaseName
    $Edition = $param.Edition
    $PricingTier=$param.PricingTier
    Write-Output "Found $DatabaseName"
    Write-Output "Found $Edition"
    Write-Output "Found $PricingTier"

}


$connectionName = "AzureRunAsConnection"

try
{
    # Get the connection "AzureRunAsConnection "
    $servicePrincipalConnection=Get-AutomationConnection -Name $connectionName         

    "Logging in to Azure..."
    Add-AzureRmAccount `
-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
    }
}

$ServerName = "ServerName"
$ResourceGroup = "ResourceGroupName"
#$PricingTierLocal ="S2"
#$EditionLocal ="Standard"

Set-AzureRmSqlDatabase  -ResourceGroupName $ResourceGroup -ServerName $ServerName -DatabaseName $DatabaseName  -Edition  $Edition  -RequestedServiceObjectiveName   $PricingTier

}
else {
# Error
write-Error "This runbook is meant to be started from an Azure webhook only."
}