允许 VSTS 更新测试数据库
Allow VSTS to update test database
为了 运行 我的验收测试,我需要在 SQL Azure 上的数据库 运行ning 上定义一个已知的良好状态。我在本地进行了 运行ning 测试,并设置了连接字符串以更新我在 Azure PaaS 上的 SQL 实例。使用 VSTS 部署数据库后,测试将 运行。为了使部署过程能够 运行 我的验收测试,我需要 运行 宁 Visual studio 团队系统测试过程才能访问数据库。 VSTS 显然 运行s 在美国东部 Azure 区域。鉴于可能有数百个 IP 地址我需要列入白名单,是否有更安全的方法来执行此操作,获取部署过程的 IP 地址,然后允许此 IP 地址访问数据库作为部署的一部分?
您可以通过调用 New-AzureRmSqlServerFirewallRule and Remove-AzureRmSqlServerFirewallRule powershell command 添加和删除防火墙规则。
在 build/release 期间参考下面的线程进行操作:
First, you need to add firewall rule in order to connect to Azure SQL
Server.
1.Edit your build definition
2.Select Option tab and check Allow Scripts to Access OAuth Token
3.Add Azure PowerShell step (arguments: -RestAddress https://[account].vsdtl.visualstudio.com/DefaultCollection/_apis/vslabs/ipaddress
-Token $(System.AccessToken) -RG [resource group] -Server [server name] -ruleName $(Build.BuildNumber)
Code:
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 令牌选项
为了 运行 我的验收测试,我需要在 SQL Azure 上的数据库 运行ning 上定义一个已知的良好状态。我在本地进行了 运行ning 测试,并设置了连接字符串以更新我在 Azure PaaS 上的 SQL 实例。使用 VSTS 部署数据库后,测试将 运行。为了使部署过程能够 运行 我的验收测试,我需要 运行 宁 Visual studio 团队系统测试过程才能访问数据库。 VSTS 显然 运行s 在美国东部 Azure 区域。鉴于可能有数百个 IP 地址我需要列入白名单,是否有更安全的方法来执行此操作,获取部署过程的 IP 地址,然后允许此 IP 地址访问数据库作为部署的一部分?
您可以通过调用 New-AzureRmSqlServerFirewallRule and Remove-AzureRmSqlServerFirewallRule powershell command 添加和删除防火墙规则。
在 build/release 期间参考下面的线程进行操作:
First, you need to add firewall rule in order to connect to Azure SQL Server.
1.Edit your build definition
2.Select Option tab and check Allow Scripts to Access OAuth Token
3.Add Azure PowerShell step (arguments: -RestAddress https://[account].vsdtl.visualstudio.com/DefaultCollection/_apis/vslabs/ipaddress -Token $(System.AccessToken) -RG [resource group] -Server [server name] -ruleName $(Build.BuildNumber)
Code:
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 令牌选项