使用New-AzSqlDatabaseExport在powershell中导出azure数据库并不总是返回Operati



我正在编写一个powershell脚本,使用New-AzSqlDatabaseExport命令将Azure数据库导出到bacpac文件(遵循此处的文档。

当我运行powershell脚本时,得到的结果不一致。当我打开一个新的powershell窗口并运行导出数据库脚本时,一切都会按预期运行,并且我会返回一个OperationStatusLink,这样我就可以在导出过程中检查导出的进度。但是,一旦导出完成,如果我尝试在同一窗口内第二次运行powershell脚本,则导出将不会返回OperationStatusLink。这将导致Get-AzSqlDatabaseImportExportStatus失败,并出现以下异常:无法将参数绑定到参数OperationStatusLink,因为它为null

下面是要复制的步骤,以及powershell脚本的一个片段。任何关于我可以尝试确保New-AzSqlDatabaseExport始终返回OperationStatusLink的建议都将不胜感激。

复制步骤:

  1. 打开powershell窗口

  2. 登录Azure

  3. 运行脚本将数据库导出到bacpac

    预期结果:导出成功,并提供OperationStatusLink

    实际结果:导出成功,并提供OperationStatusLink

  4. 运行脚本将数据库导出到bacpac

    预期结果:导出成功,并提供OperationStatusLink

    实际结果:导出成功且未提供OperationStatusLink

Powershell脚本:

Connect-AzAccount
Select-AzSubscription -SubscriptionName 'subscription name'
BackupAzureDatabase.ps1 `
-DatabaseName "testDB" `
-ResourceGroupName "group1" `
-ServerName "testserver" `
-serverAdmin "admin" `
-serverPassword "********" `

BackupAzureDatabase.ps1:

Param(
[string][Parameter(Mandatory=$true)] $DatabaseName,
[string][Parameter(Mandatory=$true)] $ResourceGroupName,
[string][Parameter(Mandatory=$true)] $ServerName,
[string][Parameter(Mandatory=$true)] $ServerAdmin,
[string][Parameter(Mandatory=$true)] $ServerPassword,
)
Process{
# some code to get the storage info and credentials
$ExportRequest = New-AzSqlDatabaseExport `
-ResourceGroupName $ResourceGroupName `
-ServerName $ServerName `
-DatabaseName $DatabaseName `
-StorageKeytype $StorageKeytype `
-StorageKey $PrimaryKey `
-StorageUri $BacpacUri `
-AdministratorLogin $Creds.UserName `
-AdministratorLoginPassword $Creds.Password
$ExportStatus = Get-AzSqlDatabaseImportExportStatus `
-OperationStatusLink $ExportRequest.OperationStatusLink
# Get-AzSqlDatabaseImportExportStatus throws an exception, since OperationStatusLink is empty/null most of the time
}

这似乎是2.10.0中引入的Az.Sql模块中的回归,它在当前版本(2.11.0(中仍然有效

症状:启动导出操作时引发以下异常:New-AzSqlDatabaseExport:缺少ImportExport操作所需的"networkIsolation"参数。

问题:这应该是可选参数,并且参数名称不正确,应该改为-UseNetworkIsolation。

解决方法:将脚本定位到模块的旧版本,2.9.1似乎可以。

长期解决方案:已提交修复程序,应在模块的下一个版本中提供。

信息来源:https://github.com/Azure/azure-powershell/issues/13097

更新2020-11-04模块的最新版本已经包含修复程序。(2.11.1(https://www.powershellgallery.com/packages/Az/5.0.0

相关内容

  • 没有找到相关文章

最新更新