コマンドレットに問題がないと仮定して、デバッグする方法がわかりません。自動化されたSQLエクスポートをオートメーションワークフローに置き換えようとしていますが、Start-AzureSqlDatabaseExportを動作させることができないようです。次の警告メッセージとエラーメッセージが表示され続けます。Start-AzureSqlDatabaseExportオブジェクト参照がオブジェクトのインスタンスに設定されていません
d4fc0004-0c0b-443e-AD1B-310af7fd4e2a:[ローカルホスト]:クライアントセッションID: 'c12c92eb-acd5-424d-97dc-84c4e9c4f914-2017-01-04 19:00:23Z'
d4fc0004 -0c0b-443e-AD1B-310af7fd4e2a:[ローカルホスト]:クライアント要求ID: 'd534f5fd-0fc0-4d68-8176-7508b35aa9d8-2017-01-04 19:00:33Z'
スタートAzureSqlDatabaseExport:オブジェクト参照がオブジェクトのインスタンスに設定されていないDBBACKUPで
:11文字:11 + + CategoryInfo:NotSpecified:(:) [START-AzureSqlDatabaseExport]を、とNullReferenceException + FullyQualifiedErrorId:Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet.StartAzureSqlDatabaseExport
これは他のいくつかの質問とよく似ていますが、回答が得られていないか、または該当しないようです。 Powershell環境でも同様の手順で作業していました。私はこの手順をAzureからの自動エクスポートに置き換えました。これは今のところ貧しい選択のようです!私は、たとえばデータベースの代わりにsqlcontextとdatabasenameを使用して、いくつかのバリエーションを試しました。
workflow DBBackup {
param(
[parameter(Mandatory=$true)]
[string] $dbcode
)
$cred = Get-AutomationPSCredential -Name "admindbcredentials"
$VerbosePreference = "Continue"
inlineScript {
$dbcode = $using:dbcode
$cred = $using:cred
if ($dbcode -eq $null)
{
Write-Output "Database code must be specified"
}
Else
{
$dbcode = $dbcode.ToUpper()
$dbsize = 1
$dbrestorewait = 10
$dbserver = "kl8p7d444a"
$stacct = $dbcode.ToLower()
$stkey = "***storagekey***"
Write-Verbose "DB Server '$dbserver' DB Code '$dbcode'"
Write-Verbose "Storage Account '$stacct'"
$url = "https://$dbserver.database.windows.net"
$sqlctx = New-AzureSqlDatabaseServerContext -ManageUrl $url -Credential $cred
# $sqlctx = New-AzureSqlDatabaseServerContext -ManageUrl $url -Credential $cred
$stctx = New-AzureStorageContext -StorageAccountName $stacct -StorageAccountKey $stkey
$dbname = "FSUMS_" + $dbcode
$dt = Get-Date
$timestamp = $dt.ToString("yyyyMMdd") + "_" + $dt.ToString("HHmmss")
$bkupname = $dbname + "_" + $timestamp + ".bacpac"
$stcon = Get-AzureStorageContainer -Context $stctx -Name "backups"
$db = Get-AzureSqlDatabase -Context $sqlctx -DatabaseName $dbname
Write-Verbose "Backup $dbname to $bkupname in storage account $stacct"
Start-AzureSqlDatabaseExport $sqlctx -DatabaseName $dbname -StorageContainer $stcon -BlobName $bkupname
}
}
}
それはそれを認識しないと私に伝えています。私はリソースグループを使用するように変換していない - それは問題になる可能性がありますか?私はちょうど既定のリソースグループを使用しました。 エラーメッセージ: New-AzureRmSqlDatabaseExport: 'New-AzureRmSqlDatabaseExport'という用語は、コマンドレット、 関数、スクリプトファイル、または操作可能なプログラムの名前として認識されません。名前のスペルを確認するか、パスが含まれている場合は、 のパスが正しいことを確認してから、もう一度やり直してください。 – fsbf
AzureRMモジュールがインストールされているかどうかを確認してください。 Get-Module -ListAvailable AzureRM *を使用します。そうでない場合。インストールモジュールのAzureRMとInstall-AzureRMを実行します。もう一度やり直してください。New-AzureRmSqlDatabaseExport –
私はこの時点でオートメーションからこれをやろうとしています。 AzureRM.Sql用のローカルPowerShellのバージョンは2.4.0ですが、オートメーションから実行すると1.0.3です。 – fsbf