Auto Azure SQL DB Creation -DACPAC 任务如何配置数据库 Azure 定价模型
Auto Azure SQL DB Creation -DACPAC task how to configure database Azure pricing model
我刚刚发现 MS 正在更改创建时的默认 Azure PaaS 数据库配置设置,以使用 Vcore 而不是 DTU。我正在使用 Azure Devops 通过 DACPAC 使用 Azure SQL 任务从 GithHub 存储库构建数据库。我想为我的构建保留 DTU 模型。
我可以看到的实现此选项的选项是:
- 在 DACPAC 部署任务期间配置...我无法在任何地方找到如何执行此操作。
- 预先创建数据库,然后 运行 将 DACPAC 文件放入其中。
- 为创建的任何新数据库设置默认的 Azure。我一直没能找到这样做的方法。
对于第二个选项,我已成功使用下面的代码片段创建数据库,但无法找到如何使用“例如标准 S0 10 DTU”创建数据库。
非常感谢收到任何建议..
New-AzureRmSqlDatabase -ResourceGroupName $ResourceGroup -ServerName $Servername -DatabaseName $DataBaseName
一般来说,您希望通过各种幂等配置语言来配置您的 Azure 资源。 ARM 模板是原生的,Terraform 是一种流行的替代方案。 运行 在每次部署开始时部署您的 ARM 模板,然后您的应用程序 运行 所需的所有基础设施都将到位并正确配置。
不过,如果您想使用 PowerShell 执行此操作,则您要查找的 parameters 是 Edition
和 RequestedServiceObjectiveName
。 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."
}
我刚刚发现 MS 正在更改创建时的默认 Azure PaaS 数据库配置设置,以使用 Vcore 而不是 DTU。我正在使用 Azure Devops 通过 DACPAC 使用 Azure SQL 任务从 GithHub 存储库构建数据库。我想为我的构建保留 DTU 模型。
我可以看到的实现此选项的选项是:
- 在 DACPAC 部署任务期间配置...我无法在任何地方找到如何执行此操作。
- 预先创建数据库,然后 运行 将 DACPAC 文件放入其中。
- 为创建的任何新数据库设置默认的 Azure。我一直没能找到这样做的方法。
对于第二个选项,我已成功使用下面的代码片段创建数据库,但无法找到如何使用“例如标准 S0 10 DTU”创建数据库。
非常感谢收到任何建议..
New-AzureRmSqlDatabase -ResourceGroupName $ResourceGroup -ServerName $Servername -DatabaseName $DataBaseName
一般来说,您希望通过各种幂等配置语言来配置您的 Azure 资源。 ARM 模板是原生的,Terraform 是一种流行的替代方案。 运行 在每次部署开始时部署您的 ARM 模板,然后您的应用程序 运行 所需的所有基础设施都将到位并正确配置。
不过,如果您想使用 PowerShell 执行此操作,则您要查找的 parameters 是 Edition
和 RequestedServiceObjectiveName
。 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."
}