New-AzSqlDatabaseImport 无法将参数绑定到参数“OperationStatusLink”,因为它为空

Kod*_*ode 2 powershell azure azure-sql-database

尝试使用 PowerShell 和 New-AzSqlDatabaseImport 命令将数据库部署到 Azure SQL 时,我收到以下错误:

New-AzSqlDatabaseImport : An unexpected error occured while processing the request. Tracking ID: 'mytrackingid'
At C:\mydir\mypowershell.ps1:363 char:18
+ ... rtRequest = New-AzSqlDatabaseImport -ResourceGroupName "myresource ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [New-AzSqlDatabaseImport], CloudException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.Sql.ImportExport.Cmdlet.NewAzureSqlDatabaseImport
 
Get-AzSqlDatabaseImportExportStatus : Cannot bind argument to parameter 'OperationStatusLink' because it is null.
At C:\mydir\mypowershell.ps1:376 char:74
+ ... tExportStatus -OperationStatusLink $importRequest.OperationStatusLink
+                                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Get-AzSqlDatabaseImportExportStatus], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.Azure.Commands.Sql.ImportExport.Cmdlet.GetAzureSqlDatabaseImportExportStatus
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我已经在其他虚拟机上运行了 100 多次这个脚本,我想知道这个虚拟机中是否发生了某些变化或关闭,能够从 blob 存储中获取所需的 bacpac 文件。

我已经检查了 blob 存储的生命周期,但该页面上没有列出任何内容。blob 和容器存在。

我已经安装了 Az 和 SQLServer 模块,并且能够使用 Connect-AzAccount 连接到 Azure,然后通过 Set-AzContext -SubscriptionId 设置我想要的订阅

我已经检查了 NSG 并且能够从我正在运行以下 PowerShell 的 VM 上的浏览​​器打开网页:

$importRequest = New-AzSqlDatabaseImport -ResourceGroupName "myresourcegroup" `
   -ServerName "5878956-sql" `
   -DatabaseName "mydatabase"`
   -DatabaseMaxSizeBytes "262144000" `
   -StorageKeyType "StorageAccessKey" `
   -StorageKey "mylongaccesskey" `
   -StorageUri "https://myblobs.blob.core.windows.net/mycontainer/mydatabase.bacpac" `
   -Edition "Standard" `
   -ServiceObjectiveName "S1" `
   -AdministratorLogin "azuresqladmin" `
   -AdministratorLoginPassword $(ConvertTo-SecureString -String "mypassword" -AsPlainText -Force)

# Check import status and wait for the import to complete
$importStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink
[Console]::Write("Importing mydatabase")
while ($importStatus.Status -eq "InProgress")
{
    $importStatus = Get-AzSqlDatabaseImportExportStatus -OperationStatusLink $importRequest.OperationStatusLink
    [Console]::Write(".")
    Start-Sleep -s 10
}
[Console]::WriteLine("")
$importStatus
Run Code Online (Sandbox Code Playgroud)

更新 1:

今天进行测试,我能够通过 Azure 门户 GUI 导入数据库,但 PowerShell 不起作用。我可以通过 PowerShell 下载 blob/bacpac 文件,但使用 New-AzSqlDatabaseImport 导入仍然失败。

在检查 Azure 门户活动日志时,它显示以下错误,因此我们认为它正在与 Azure SQL 通信:

"subStatus": {
    "value": "InternalServerError",
    "localizedValue": "Internal Server Error (HTTP Status Code: 500)"
},
Run Code Online (Sandbox Code Playgroud)

Kod*_*ode 5

在与 Microsoft 交谈后,我需要调整最大字节数以匹配我尝试部署到的标准版最大 250GB。虽然过去较小的值有效,但调整此值有效。

我改变了这个:

-DatabaseMaxSizeBytes "262144000"
Run Code Online (Sandbox Code Playgroud)

对此:

-DatabaseMaxSizeBytes "268435456000"
Run Code Online (Sandbox Code Playgroud)