我正在尝试设置powershell脚本来创建.bacpac文件并将其存储在Azure的blob存储中。我正在使用 Get-AzureRmSqldatabaseExport 命令并将其指向我的存储容器。
该命令运行,据我所知,将在运行命令六小时后开始该过程。
问题是,几分钟后,我收到一条错误消息,指出blob存储只有读取权限而不是读取和写入。
如何修改powershell命令以允许我写入存储容器?这是我与容器本身有关的事情吗?我是否错误地使用blob,并且应该使用不同类型的存储类型?
命令:
New-AzureRmSqlDatabaseExport -ResourceGroupName "rgnEverything" -ServerName "serverOne" -DatabaseName "databaseDev" -StorageKeyType "StorageAccessKey" -StorageKey "storageKeyOne" -StorageUri "storageUriOne" -AdministratorLogin "adminlogin" -AdministratorLoginPassword (ConvertTo-Secu
reString "password" -AsPlainText -Force)
我目前正在通过Azure Cloud Shell运行此命令
这是 Get-AzureRmSqlDatabaseImportExportStatus 在运行命令后立即返回的内容:
OperationStatusLink : https://management.azure.com/subscriptions/e088f9f1-aeed-401e-b8db-8bac796c43cd/resourceGroups/SweetSpot/providers/Microsoft.Sql/servers/sweetspotgolfshop/databases/SweetSpotDev/importExportOp
erationResults/9226c1e7-5e55-4d34-ba96-954b857c318c?api-version=2014-04-01-Preview
ErrorMessage :
LastModifiedTime : 3/16/2018 3:24:38 PM
QueuedTime : 3/16/2018 3:24:35 PM
StatusMessage : Running, Progress = 0%
Status : InProgress
错误讯息:
Get-AzureRmSqlDatabaseImportExportStatus : BadRequest: The ImportExport operation with Request Id '9226c1e7-5e55-4d34-ba96-954b857c318c' failed due to 'Error encountered during the service operation.
Blob https://cs2e088f9f1aeedx401exb8d.blob.core.windows.net/database-backup is not writeable.
The remote server returned an error: (404) Not Found.
The remote server returned an error: (404) Not Found.
'.
At line:1 char:1
+ Get-AzureRmSqlDatabaseImportExportStatus -OperationStatusLink "https: ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [Get-AzureRmSqlDatabaseImportExportStatus], CloudException
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.Sql.ImportExport.Cmdlet.GetAzureSqlDatabaseImportExportStatus
存储Uri:
-StorageUri "https://cs2e088f9f1aeedx401exb8d.blob.core.windows.net/database-backup"
答案 0 :(得分:2)
您指定容器地址作为目标的问题。您需要放置文件的完整所需存储的URL,而不仅仅是容器路径。
因此,您的-StorageUri
参数值应该类似于
https://mystorageName.blob.core.windows.net/databasebackup/MyDbName-2018-03-16.bacpac
在尝试备份之前,您还需要确保容器已经存在,导出时不会为您创建容器。