爲了運行我的驗收測試,我需要在SQL Azure上運行的數據庫上定義一個已知的良好狀態。我的測試在本地運行良好,並已設置連接字符串以更新Azure PaaS上的SQL實例。測試將在使用VSTS部署數據庫之後運行。爲了讓部署過程運行我的認證測試,我需要運行Visual Studio團隊系統測試的過程才能訪問數據庫。 VSTS顯然運行在美國東部的Azure區域。鑑於潛在的數百個IP地址需要列入白名單,是否有更安全的方法來執行此操作,獲取部署過程的IP地址,然後將此IP地址作爲部署的一部分訪問數據庫?允許VSTS更新測試數據庫
回答
您可以撥打New-AzureRmSqlServerFirewallRule和Remove-AzureRmSqlServerFirewallRule powershell command來添加和刪除防火牆規則。
請參考下面這些線程構建/釋放過程中做到這一點:Deploy Dacpac packages via power shell script to Azure SQL Server
首先,你需要添加防火牆規則,以便連接到SQL Azure的服務器 。
1.Edit您的構建定義
2.Select選項選項卡,並選中允許腳本訪問OAuth令牌
3.添加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令牌選項
嗨,我需要運行它作爲我的部署的一部分。我已經完成了你所說的內容,但是它失敗了,'System.AccessToken'這個詞不被識別爲cmdlet,函數,腳本文件或可操作程序的名稱。我認爲,因爲我已經勾選了「允許腳本訪問OAuth令牌」,而不是發佈。無論如何要在發佈時做到這一點?我認爲我需要sql服務器纔可以授予防火牆訪問權限? – johnstaveley
@johnstaveley 1.編輯發佈定義 2.單擊在代理上運行 3.檢查允許腳本訪問OAuth令牌選項 我更新了我的答案。 –
我遇到了一個問題,但Azure給了你一個可憐的限制PowerShell腳本的長度,你可以運行它導致調試問題 – johnstaveley
- 1. 允許原子更新到數據庫
- 2. 允許數據庫更改
- 3. Eslint允許測試
- 4. 從測試數據庫更新生產數據庫的腳本
- 5. 數據庫更新後ORA-01733(虛擬列不允許)
- 6. 插入時實體框架數據庫默認允許更新
- 7. CakePHP:允許數據庫更新,點擊按鈕
- 8. 測試數據更新
- 9. 測試HTTP 405不允許
- 10. 如何更新我使用新應用測試的數據庫?
- 11. 將隔離級別配置爲允許在更新數據時允許ReadUncommited
- 12. 允許測試依賴於其他測試的測試框架
- 13. 用戶點擊時檢測不允許在更改照片庫時允許
- 14. 是否允許ClickOnce更新?
- 15. iTunes允許應用更新
- 16. 允許UI更新的iOS
- 17. 數據庫測試
- 18. 快速RPM數據庫測試更改
- 19. MySql數據庫允許遠程連接
- 20. virtualmin不允許我訪問數據庫
- 21. 不允許訪問數據庫文件。
- 22. 允許LocalSystem訪問PostgreSQL數據庫
- 23. PHP不允許插入MySQL數據庫
- 24. 是否允許「複製」API數據庫?
- 25. 允許空值的SQLite數據庫
- 26. 不允許訪問數據庫文件
- 27. 允許時間的數據庫設計
- 28. Django的測試 - 無法刪除並重新測試數據庫
- 29. GIT認爲數據庫已更新後測試
- 30. 測試數據庫更新是否成功與linq到sql
啓用允許腳本訪問OAuth令牌以進行發佈後會出現什麼結果? –