2017-04-12 13 views
0

受諾テストを実行するには、SQL Azure上で実行されているデータベースで既知の正常な状態を定義する必要があります。ローカルでうまく動作しているテストがあり、Azure PaaSでSQLのインスタンスを更新するための接続文字列を設定しました。テストは、VSTSを使用してデータベースを展開した後に実行されます。デプロイメントプロセスでアクセプタンステストを実行するには、Visual Studioチームのシステムテストを実行してデータベースにアクセスするプロセスが必要です。 VSTSは明らかにEast US Azureゾーンで動作します。ホワイトリストが必要なIPアドレスが数百になる可能性があることを考えれば、より安全な方法で展開プロセスのIPアドレスを取得し、展開の一環としてこのIPアドレスへのアクセスを許可しますか?VSTSにテストデータベースの更新を許可する

+0

スクリプトによるOAuthトークンへのアクセスの許可を有効にした後の結果は何ですか? –

答えて

2

New-AzureRmSqlServerFirewallRuleRemove-AzureRmSqlServerFirewallRule powershell commandを呼び出すことで、ファイアウォールルールを追加および削除できます。

がビルド/リリース時にそれを行うには、以下のこれらのスレッドを参照してください。Deploy Dacpac packages via power shell script to Azure SQL Server

まず、あなたは、AzureのSQL Serverに接続するために、ファイアウォールルールを追加する必要があります。

1.Editビルド定義

2.Selectオプション]タブおよびアクセスOAuthのトーク​​ンにスクリプト

3.Add AzureのPowerShellのステップ(引数を許可チェック:-RestAddress https://[account].vsdtl.visualstudio.com/DefaultCollection/_apis/vslabs/ipaddress -token $(システム。 AccessToken)-RG [リソースグループ] - サーバー[サーバー名] -ruleName $(Build.BuildNumber)

コード:

param (
    [string]$RestAddress, 
    [string]$Token, 
    [string]$RG, 
    [string]$Server 
    ) 
$basicAuth = ("{0}:{1}" -f 'test',$Token) 
$basicAuth = [System.Text.Encoding]::UTF8.GetBytes($basicAuth) 
$basicAuth = [System.Convert]::ToBase64String($basicAuth) 
$headers = @{Authorization=("Basic {0}" -f $basicAuth)} 
$result = Invoke-RestMethod -Uri $RestAddress -headers $headers -Method Get 
Write-Host $result.value 
New-AzureRmSqlServerFirewallRule -ResourceGroupName $RG -ServerName $Server -FirewallRuleName "UnitTestRule" -StartIpAddress "$($result.value)" -EndIpAddress "$($result.value)" 

更新:

は、リリースのためのアクセスのOAuthトークンにスクリプトを許可:

  • チェックがアクセスOAuthのトーク​​ンのオプションにスクリプトを許可するエージェントで

    1. 編集リリース定義
    2. [実行]をクリックし

    enter image description here

  • +0

    こんにちは、私は展開の一環としてこれを実行する必要があります。私はあなたが言ったことを行ったが、 'System.AccessToken'という用語は、コマンドレット、関数、スクリプトファイル、または実行可能なプログラムの名前として認識されない。私は、リリースの代わりにビルドで「スクリプトにOAuthトークンへのアクセスを許可する」をチェックしたので、私は推測します。とにかくリリースでこれを行うには?私はそれにファイアウォールのアクセスを許可する前に、SQL Serverが存在する必要があると推測しますか? – johnstaveley

    +0

    @johnstaveley 1.リリースの変更の定義 2.エージェントの実行をクリックします。 3.スクリプトがOAuthトークンにアクセスできるようにするオプションをチェックします。 私の回答が更新されました。 –

    +0

    私は問題がありますが、Azureはあなたがそれを実行できるpowershellスクリプトの長さに哀れな制限を与えてデバッグに問題を引き起こしています – johnstaveley

    関連する問題