SqlAzureDacpacDeployment@1 - Azure SQL数据库部署 v1 任务
使用此任务可以使用 DACPAC 部署Azure SQL数据库,或使用 SQLCMD 运行脚本。
使用此任务可以使用 DACPAC 部署Azure SQL数据库,或使用 SQLCMD 运行脚本。
语法
# Azure SQL Database deployment v1
# Deploy an Azure SQL Database using DACPAC or run scripts using SQLCMD.
- task: SqlAzureDacpacDeployment@1
inputs:
#azureConnectionType: 'ConnectedServiceNameARM' # 'ConnectedServiceName' | 'ConnectedServiceNameARM'. Alias: ConnectedServiceNameSelector. Azure Service Connection Type. Default: ConnectedServiceNameARM.
#azureClassicSubscription: # string. Alias: ConnectedServiceName. Required when ConnectedServiceNameSelector = ConnectedServiceName. Azure Classic Subscription.
azureSubscription: # string. Alias: ConnectedServiceNameARM. Required when ConnectedServiceNameSelector = ConnectedServiceNameARM. Azure Subscription.
# SQL Database
AuthenticationType: 'server' # 'server' | 'aadAuthenticationPassword' | 'aadAuthenticationIntegrated' | 'connectionString' | 'servicePrincipal'. Required. Authentication Type. Default: server.
#ServerName: # string. Required when AuthenticationType = server || AuthenticationType = aadAuthenticationPassword || AuthenticationType = aadAuthenticationIntegrated || AuthenticationType = servicePrincipal. Azure SQL Server.
#DatabaseName: # string. Required when AuthenticationType = server || AuthenticationType = aadAuthenticationPassword || AuthenticationType = aadAuthenticationIntegrated || AuthenticationType = servicePrincipal. Database.
SqlUsername: # string. Required when AuthenticationType = server. Login.
SqlPassword: # string. Required when AuthenticationType = server. Password.
#aadSqlUsername: # string. Required when AuthenticationType = aadAuthenticationPassword. Login.
#aadSqlPassword: # string. Required when AuthenticationType = aadAuthenticationPassword. Password.
#ConnectionString: # string. Required when AuthenticationType = connectionString. Connection String.
# Deployment Package
deployType: 'DacpacTask' # 'DacpacTask' | 'SqlTask' | 'InlineSqlTask'. Alias: TaskNameSelector. Required. Deploy type. Default: DacpacTask.
DeploymentAction: 'Publish' # 'Publish' | 'Extract' | 'Export' | 'Import' | 'Script' | 'DriftReport' | 'DeployReport'. Required when TaskNameSelector = DacpacTask. Action. Default: Publish.
#DacpacFile: # string. Required when DeploymentAction = Publish || DeploymentAction = Script || DeploymentAction = DeployReport. DACPAC File.
#BacpacFile: # string. Required when DeploymentAction = Import. BACPAC File.
#SqlFile: # string. Required when TaskNameSelector = SqlTask. SQL Script.
#SqlInline: # string. Required when TaskNameSelector = InlineSqlTask. Inline SQL Script.
#PublishProfile: # string. Optional. Use when TaskNameSelector = DacpacTask || DeploymentAction = Script || DeploymentAction = DeployReport. Publish Profile.
#AdditionalArguments: # string. Optional. Use when TaskNameSelector = DacpacTask || DeploymentAction = Extract || DeploymentAction = Export || DeploymentAction = Import || DeploymentAction = Script || DeploymentAction = DeployReport || DeploymentAction = DriftReport. Additional SqlPackage.exe Arguments.
#SqlAdditionalArguments: # string. Optional. Use when TaskNameSelector = SqlTask. Additional Invoke-Sqlcmd Arguments.
#InlineAdditionalArguments: # string. Optional. Use when TaskNameSelector = InlineSqlTask. Additional Invoke-Sqlcmd Arguments.
# Firewall
IpDetectionMethod: 'AutoDetect' # 'AutoDetect' | 'IPAddressRange'. Required. Specify Firewall Rules Using. Default: AutoDetect.
#StartIpAddress: # string. Required when IpDetectionMethod = IPAddressRange. Start IP Address.
#EndIpAddress: # string. Required when IpDetectionMethod = IPAddressRange. End IP Address.
#DeleteFirewallRule: true # boolean. Delete Rule After Task Ends. Default: true.
# Azure SQL Database deployment v1
# Deploy an Azure SQL Database using DACPAC or run scripts using SQLCMD.
- task: SqlAzureDacpacDeployment@1
inputs:
#azureConnectionType: 'ConnectedServiceNameARM' # 'ConnectedServiceName' | 'ConnectedServiceNameARM'. Alias: ConnectedServiceNameSelector. Azure Service Connection Type. Default: ConnectedServiceNameARM.
#azureClassicSubscription: # string. Alias: ConnectedServiceName. Required when ConnectedServiceNameSelector = ConnectedServiceName. Azure Classic Subscription.
azureSubscription: # string. Alias: ConnectedServiceNameARM. Required when ConnectedServiceNameSelector = ConnectedServiceNameARM. Azure Subscription.
# SQL Database
AuthenticationType: 'server' # 'server' | 'aadAuthenticationPassword' | 'aadAuthenticationIntegrated' | 'connectionString'. Required. Authentication Type. Default: server.
#ServerName: # string. Required when AuthenticationType = server || AuthenticationType = aadAuthenticationPassword || AuthenticationType = aadAuthenticationIntegrated. Azure SQL Server.
#DatabaseName: # string. Required when AuthenticationType = server || AuthenticationType = aadAuthenticationPassword || AuthenticationType = aadAuthenticationIntegrated. Database.
SqlUsername: # string. Required when AuthenticationType = server. Login.
SqlPassword: # string. Required when AuthenticationType = server. Password.
#aadSqlUsername: # string. Required when AuthenticationType = aadAuthenticationPassword. Login.
#aadSqlPassword: # string. Required when AuthenticationType = aadAuthenticationPassword. Password.
#ConnectionString: # string. Required when AuthenticationType = connectionString. Connection String.
# Deployment Package
deployType: 'DacpacTask' # 'DacpacTask' | 'SqlTask' | 'InlineSqlTask'. Alias: TaskNameSelector. Required. Deploy type. Default: DacpacTask.
DeploymentAction: 'Publish' # 'Publish' | 'Extract' | 'Export' | 'Import' | 'Script' | 'DriftReport' | 'DeployReport'. Required when TaskNameSelector = DacpacTask. Action. Default: Publish.
#DacpacFile: # string. Required when DeploymentAction = Publish || DeploymentAction = Script || DeploymentAction = DeployReport. DACPAC File.
#BacpacFile: # string. Required when DeploymentAction = Import. BACPAC File.
#SqlFile: # string. Required when TaskNameSelector = SqlTask. SQL Script.
#SqlInline: # string. Required when TaskNameSelector = InlineSqlTask. Inline SQL Script.
#PublishProfile: # string. Optional. Use when TaskNameSelector = DacpacTask || DeploymentAction = Script || DeploymentAction = DeployReport. Publish Profile.
#AdditionalArguments: # string. Optional. Use when TaskNameSelector = DacpacTask || DeploymentAction = Extract || DeploymentAction = Export || DeploymentAction = Import || DeploymentAction = Script || DeploymentAction = DeployReport || DeploymentAction = DriftReport. Additional SqlPackage.exe Arguments.
#SqlAdditionalArguments: # string. Optional. Use when TaskNameSelector = SqlTask. Additional Invoke-Sqlcmd Arguments.
#InlineAdditionalArguments: # string. Optional. Use when TaskNameSelector = InlineSqlTask. Additional Invoke-Sqlcmd Arguments.
# Firewall
IpDetectionMethod: 'AutoDetect' # 'AutoDetect' | 'IPAddressRange'. Required. Specify Firewall Rules Using. Default: AutoDetect.
#StartIpAddress: # string. Required when IpDetectionMethod = IPAddressRange. Start IP Address.
#EndIpAddress: # string. Required when IpDetectionMethod = IPAddressRange. End IP Address.
#DeleteFirewallRule: true # boolean. Delete Rule After Task Ends. Default: true.
# Azure SQL Database Deployment v1
# Deploy Azure SQL DB using DACPAC or run scripts using SQLCMD.
- task: SqlAzureDacpacDeployment@1
inputs:
#azureConnectionType: 'ConnectedServiceNameARM' # 'ConnectedServiceName' | 'ConnectedServiceNameARM'. Alias: ConnectedServiceNameSelector. Azure Service Connection Type. Default: ConnectedServiceNameARM.
#azureClassicSubscription: # string. Alias: ConnectedServiceName. Required when ConnectedServiceNameSelector = ConnectedServiceName. Azure Classic Subscription.
azureSubscription: # string. Alias: ConnectedServiceNameARM. Required when ConnectedServiceNameSelector = ConnectedServiceNameARM. Azure Subscription.
# SQL DB Details
ServerName: # string. Required. Azure SQL Server Name.
DatabaseName: # string. Required. Database Name.
SqlUsername: # string. Required. Server Admin Login.
SqlPassword: # string. Required. Password.
# Deployment Package
DeploymentAction: 'Publish' # 'Publish' | 'Extract' | 'Export' | 'Import' | 'Script' | 'DriftReport' | 'DeployReport'. Required. Action. Default: Publish.
#TaskNameSelector: 'DacpacTask' # 'DacpacTask' | 'SqlTask' | 'InlineSqlTask'. Optional. Use when DeploymentAction = Publish. Type. Default: DacpacTask.
#DacpacFile: # string. Required when TaskNameSelector = DacpacTask || DeploymentAction = Script || DeploymentAction = DeployReport. DACPAC File.
#BacpacFile: # string. Required when DeploymentAction = Import. BACPAC File.
#SqlFile: # string. Required when TaskNameSelector = SqlTask. SQL Script.
#SqlInline: # string. Required when TaskNameSelector = InlineSqlTask. Inline SQL Script.
#PublishProfile: # string. Optional. Use when TaskNameSelector = DacpacTask || DeploymentAction = Script || DeploymentAction = DeployReport. Publish Profile.
#AdditionalArguments: # string. Optional. Use when TaskNameSelector = DacpacTask || DeploymentAction = Extract || DeploymentAction = Export || DeploymentAction = Import || DeploymentAction = Script || DeploymentAction = DeployReport || DeploymentAction = DriftReport. Additional SqlPackage.exe Arguments.
#SqlAdditionalArguments: # string. Optional. Use when TaskNameSelector = SqlTask. Additional Invoke-Sqlcmd Arguments.
#InlineAdditionalArguments: # string. Optional. Use when TaskNameSelector = InlineSqlTask. Additional Invoke-Sqlcmd Arguments.
# Firewall
IpDetectionMethod: 'AutoDetect' # 'AutoDetect' | 'IPAddressRange'. Required. Specify Firewall Rules Using. Default: AutoDetect.
#StartIpAddress: # string. Required when IpDetectionMethod = IPAddressRange. Start IP Address.
#EndIpAddress: # string. Required when IpDetectionMethod = IPAddressRange. End IP Address.
#DeleteFirewallRule: true # boolean. Delete Rule After Task Ends. Default: true.
输入
azureConnectionType
- Azure 服务连接类型
输入别名: ConnectedServiceNameSelector
。 string
. 允许的值: ConnectedServiceName
(Azure 经典) , ConnectedServiceNameARM
(Azure 资源管理器) 。 默认值:ConnectedServiceNameARM
。
azureClassicSubscription
- Azure 经典订阅
输入别名: ConnectedServiceName
。 string
. 当 ConnectedServiceNameSelector = ConnectedServiceName
时,需要此选项。
指定用于部署 SQL 文件的目标 Azure 经典订阅。
azureSubscription
- Azure 订阅
输入别名: ConnectedServiceNameARM
。 string
. 当 ConnectedServiceNameSelector = ConnectedServiceNameARM
时,需要此选项。
指定用于部署 SQL 文件的目标 Azure 资源管理器订阅。
AuthenticationType
- 身份验证类型
string
. 必需。 允许的值: server
(SQL Server 身份验证) 、 aadAuthenticationPassword
(Active Directory - 密码) 、 aadAuthenticationIntegrated
(Active Directory - 集成) 、 connectionString
(连接字符串) 、 servicePrincipal
(服务主体) 。 默认值:server
。
指定数据库身份验证的类型。 它可以是SQL Server、Active Directory (集成) 、Active Directory (密码) 、连接字符串或服务主体身份验证。 集成身份验证意味着代理使用其当前 Active Directory 帐户上下文访问数据库。
指定用于连接到 Azure SQL Server 数据库的选项。 可以提供Azure SQL服务器数据库详细信息、SQL Server 连接字符串、AD 身份验证 (密码或集成) ,或使用服务主体。 对于SQL Server身份验证,请使用SQL Server的用户凭据。 对于 AD 身份验证,请使用配置到 SQL Server 的 AD 用户的凭据。
AuthenticationType
- 身份验证类型
string
. 必需。 允许的值: server
(SQL Server 身份验证) 、 aadAuthenticationPassword
(Active Directory - 密码) 、 aadAuthenticationIntegrated
(Active Directory - 集成) (connectionString
连接字符串) 。 默认值:server
。
指定数据库身份验证的类型。 它可以是SQL Server、Active Directory (集成) 、Active Directory (密码) 、连接字符串或服务主体身份验证。 集成身份验证意味着代理使用其当前 Active Directory 帐户上下文访问数据库。
指定用于连接到 Azure SQL Server 数据库的选项。 可以提供Azure SQL服务器数据库详细信息、SQL Server 连接字符串、AD 身份验证 (密码或集成) ,或使用服务主体。 对于SQL Server身份验证,请使用SQL Server的用户凭据。 对于 AD 身份验证,请使用配置到 SQL Server 的 AD 用户的凭据。
ServerName
- Azure SQL 服务器
string
. 当 AuthenticationType = server || AuthenticationType = aadAuthenticationPassword || AuthenticationType = aadAuthenticationIntegrated || AuthenticationType = servicePrincipal
时,需要此选项。
指定Azure SQL服务器名称,如 Fabrikam.database.windows.net,1433
或 Fabrikam.database.windows.net
。
ServerName
- Azure SQL 服务器
string
. 当 AuthenticationType = server || AuthenticationType = aadAuthenticationPassword || AuthenticationType = aadAuthenticationIntegrated
时,需要此选项。
指定Azure SQL服务器名称,如 Fabrikam.database.windows.net,1433
或 Fabrikam.database.windows.net
。
ServerName
- Azure SQL服务器名称
string
. 必需。
指定Azure SQL服务器名称,如 Fabrikam.database.windows.net,1433
或 Fabrikam.database.windows.net
。
DatabaseName
- 数据库
string
. 当 AuthenticationType = server || AuthenticationType = aadAuthenticationPassword || AuthenticationType = aadAuthenticationIntegrated || AuthenticationType = servicePrincipal
时,需要此选项。
指定部署文件的 Azure SQL 数据库的名称。
DatabaseName
- 数据库
string
. 当 AuthenticationType = server || AuthenticationType = aadAuthenticationPassword || AuthenticationType = aadAuthenticationIntegrated
时,需要此选项。
指定部署文件的 Azure SQL 数据库的名称。
DatabaseName
- 数据库名称
string
. 必需。
指定部署文件的 Azure SQL 数据库的名称。
SqlUsername
- 登录
string
. 当 AuthenticationType = server
时,需要此选项。
指定Azure SQL服务器管理员登录名。
SqlUsername
- 服务器管理员登录
string
. 必需。
指定Azure SQL服务器管理员登录名或 Active Directory 用户名。
SqlPassword
- 密码
string
. 当 AuthenticationType = server
时,需要此选项。
指定Azure SQL服务器管理员的密码。 接受在生成或发布管道 $(passwordVariable)
中定义的变量。 可以将变量类型 secret
标记为 来保护它。
SqlPassword
- 密码
string
. 必需。
指定Azure SQL服务器管理员的密码。 接受在生成或发布管道 $(passwordVariable)
中定义的变量。 可以将变量类型 secret
标记为 来保护它。
aadSqlUsername
- 登录
string
. 当 AuthenticationType = aadAuthenticationPassword
时,需要此选项。
指定 Active Directory 用户名。
aadSqlPassword
- 密码
string
. 当 AuthenticationType = aadAuthenticationPassword
时,需要此选项。
指定 Active Directory 用户的密码。 接受在生成或发布管道 $(passwordVariable)
中定义的变量。 可以将变量类型 secret
标记为 来保护它。
ConnectionString
- 连接字符串
string
. 当 AuthenticationType = connectionString
时,需要此选项。
指定Azure SQL服务器连接字符串,如 Server=testServer.database.windows.net;Database=testdb;User ID=AccountPlaceholder;Password=$(securePassword);
。
deployType
- 部署类型
输入别名: TaskNameSelector
。 string
. 必需。 允许的值: DacpacTask
(SQL DACPAC 文件) 、 SqlTask
(SQL 脚本文件) (InlineSqlTask
内联 SQL 脚本) 。 默认值:DacpacTask
。
DeploymentAction
- 行动
string
. 当 TaskNameSelector = DacpacTask
时,需要此选项。 允许的值:Publish
、Extract
、、Export
Import
、 Script
DriftReport
(偏移报表) 、 DeployReport
(部署报表) 。 默认值:Publish
。
指定列表中的 SQL 操作之一。 详细了解 SQL 操作列表。
DeploymentAction
- 行动
string
. 必需。 允许的值:Publish
、Extract
、、Export
Import
、 Script
DriftReport
(偏移报表) 、 DeployReport
(部署报表) 。 默认值:Publish
。
指定列表中的 SQL 操作之一。 详细了解 SQL 操作列表。
DacpacFile
- DACPAC 文件
string
. 当 DeploymentAction = Publish || DeploymentAction = Script || DeploymentAction = DeployReport
时,需要此选项。
指定 DACPAC 文件在自动化代理或自动化代理可访问的 UNC 路径上的位置,例如 \\BudgetIT\Web\Deploy\FabrikamDB.dacpac
。 也可以使用预定义的系统变量,如 $(agent.releaseDirectory)
。
DacpacFile
- DACPAC 文件
string
. 当 TaskNameSelector = DacpacTask || DeploymentAction = Script || DeploymentAction = DeployReport
时,需要此选项。
指定 DACPAC 文件在自动化代理或自动化代理可访问的 UNC 路径上的位置,例如 \\BudgetIT\Web\Deploy\FabrikamDB.dacpac
。 也可以使用预定义的系统变量,如 $(agent.releaseDirectory)
。
BacpacFile
- BACPAC 文件
string
. 当 DeploymentAction = Import
时,需要此选项。
指定 BACPAC 文件在自动化代理或自动化代理可访问的 UNC 路径上的位置,例如 \\BudgetIT\Web\Deploy\FabrikamDB.bacpac
。 也可以使用预定义的系统变量,如 $(agent.releaseDirectory)
。
SqlFile
- SQL 脚本
string
. 当 TaskNameSelector = SqlTask
时,需要此选项。
指定 SQL 脚本文件在自动化代理或自动化代理可访问的 UNC 路径上的位置,例如 \\BudgetIT\Web\Deploy\FabrikamDB.sql
。 也可以使用预定义的系统变量,如 $(agent.releaseDirectory)
。
SqlInline
- 内联 SQL 脚本
string
. 当 TaskNameSelector = InlineSqlTask
时,需要此选项。
指定要在以前选定的数据库上执行的 SQL 脚本。
PublishProfile
- 发布配置文件
string
. 可选。 在 时 TaskNameSelector = DacpacTask || DeploymentAction = Script || DeploymentAction = DeployReport
使用 。
提供对Azure SQL数据库创建或升级的精细控制。
指定自动化代理计算机或 UNC 共享上发布配置文件 XML 文件的路径。 如果发布配置文件包含机密(如凭据),请将其上传到 安全文件 库,并在其中使用加密安全地存储它。 接下来,在管道运行时,使用管道开始时的 “下载安全文件 ”任务将其下载到代理计算机。 管道完成后将其删除。 也可以使用预定义的系统变量(如 $(agent.buildDirectory)
或 $(agent.releaseDirectory)
)。
AdditionalArguments
- 其他 SqlPackage.exe 参数
string
. 可选。 在 时 TaskNameSelector = DacpacTask || DeploymentAction = Extract || DeploymentAction = Export || DeploymentAction = Import || DeploymentAction = Script || DeploymentAction = DeployReport || DeploymentAction = DriftReport
使用 。
指定在部署 Azure SQL 数据库(如果选择 DACPAC 选项)时将应用的其他SqlPackage.exe
参数,例如 /p:IgnoreAnsiNulls=True /p:IgnoreComments=True
。 这些参数将替代 XML 发布配置文件(如果已提供)中的设置。
SqlAdditionalArguments
- 其他 Invoke-Sqlcmd 参数
string
. 可选。 在 时 TaskNameSelector = SqlTask
使用 。
指定在Azure SQL数据库上执行给定 SQL 查询时应用的其他 Invoke-Sqlcmd 参数,例如 -ConnectionTimeout 100 -OutputSqlErrors
。
InlineAdditionalArguments
- 其他 Invoke-Sqlcmd 参数
string
. 可选。 在 时 TaskNameSelector = InlineSqlTask
使用 。
指定在Azure SQL数据库上执行给定 SQL 查询时应用的其他 Invoke-Sqlcmd 参数,例如 -ConnectionTimeout 100 -OutputSqlErrors
。
IpDetectionMethod
- 使用 指定防火墙规则
string
. 必需。 允许的值:AutoDetect
、IPAddressRange
。 默认值:AutoDetect
。
若要运行任务,必须将自动化代理的 IP 地址添加到Azure SQL服务器的防火墙中的“允许的 IP 地址”。 选择“自动检测”,为自动化代理的可能 IP 地址范围自动添加防火墙异常,或显式指定范围。
StartIpAddress
- 启动 IP 地址
string
. 当 IpDetectionMethod = IPAddressRange
时,需要此选项。
指定自动化代理计算机池的起始 IP 地址,例如 196.21.30.50
。
EndIpAddress
- 结束 IP 地址
string
. 当 IpDetectionMethod = IPAddressRange
时,需要此选项。
指定自动化代理计算机池的结束 IP 地址,例如 196.21.30.65
。
DeleteFirewallRule
- 任务结束后删除规则
boolean
. 默认值:true
。
如果选中,任务结束后,将从Azure SQL服务器防火墙的“允许的 IP 地址”列表中删除此处指定的 IP 地址。
TaskNameSelector
- 类型
string
. 可选。 在 时 DeploymentAction = Publish
使用 。 允许的值: DacpacTask
(SQL DACPAC 文件) 、 SqlTask
(SQL 脚本文件) (InlineSqlTask
内联 SQL 脚本) 。 默认值:DacpacTask
。
任务控制选项
除了任务输入,所有任务都有控制选项。 有关详细信息,请参阅 控制选项和常见任务属性。
输出变量
此任务定义以下 输出变量,可在下游步骤、作业和阶段中使用。
SqlDeploymentOutputFile
部署包操作为 Extract
、、Export
Script
、 DriftReport
或 DeployReport
时生成的输出文件路径。
注解
使用此任务可以使用 DACPAC 部署Azure SQL数据库,或使用 SQLCMD 运行脚本。
重要
此任务仅在 Windows 环境中受支持。 如果你尝试使用 Azure Active Directory (Azure AD) 集成身份验证,则必须创建专用代理。 托管代理不支持 Azure AD 集成身份验证。