Проблемы с автоматизацией и переименованием базы данных Azure - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь создать RunBook, которую можно использовать для переименования базы данных Azure в целях тестирования интеграции. Я осмотрелся вокруг, и здесь есть примеры, но я до сих пор не смог заставить их работать. Я использую подписку Pay-as-you-go и хочу использовать SQL-логины.

Я думаю, что он получает правильный SQLServerContext, который не работает, хотя я не вижу, что я должен делать по-другому. Я создал учетные данные автоматизации, которые просто содержат мое имя пользователя SQL и пароль SQL.

`

 $sqlServerName = "servername"
 $SqlCredentialAsset="AutomationCredentials"



   $sqlCred = Get-AutomationPSCredential -Name  $SqlCredentialAsset
    $sqlContext = New-AzureSqlDatabaseServerContext -ServerName $sqlServerName -Credential $sqlCred
    Set-AzureSqlDatabase -ConnectionContext $sqlContext -ServerName  -DatabaseName "test" -NewDatabaseName "test_rename"`

EDIT

Шаги, которые мне пришлось добавить для запуска скрипта Joys из моей текущей настройки:

  • Добавить «Запуск от имени учетной записи» в автоматизации (опция, которая в данный момент находится в настройках учетной записи в автоматизации)
  • Обновите модули Azure PowerShell до последнего обновления в разделе модулей автоматизации
  • Убедитесь, что я использовал имя Azure для сервера базы данных, а не имя SSMS (ошибка школьника)

1 Ответ

1 голос
/ 22 марта 2019

Я пытаюсь создать RunBook, которую можно использовать для переименования базы данных Azure в целях интеграционного тестирования.

Если это ваша конечная цель, просто попробуйте сценарий в вашей книге запусков powershell, он отлично работает на моей стороне.

$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
    }
}

Set-AzureRmSqlDatabase -ResourceGroupName "joywebapp" -ServerName "joydb" -DatabaseName "joydb3" -NewName "joydb2"

enter image description here

...