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 服务连接类型
输入别名: ConnectedServiceNameSelectorstring. 允许的值: ConnectedServiceName (Azure 经典) , ConnectedServiceNameARM (Azure 资源管理器) 。 默认值:ConnectedServiceNameARM


azureClassicSubscription - Azure 经典订阅
输入别名: ConnectedServiceNamestring. 当 ConnectedServiceNameSelector = ConnectedServiceName 时,需要此选项。

指定用于部署 SQL 文件的目标 Azure 经典订阅。


azureSubscription - Azure 订阅
输入别名: ConnectedServiceNameARMstring. 当 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,1433Fabrikam.database.windows.net


ServerName - Azure SQL 服务器
string. 当 AuthenticationType = server || AuthenticationType = aadAuthenticationPassword || AuthenticationType = aadAuthenticationIntegrated 时,需要此选项。

指定Azure SQL服务器名称,如 Fabrikam.database.windows.net,1433Fabrikam.database.windows.net


ServerName - Azure SQL服务器名称
string. 必需。

指定Azure SQL服务器名称,如 Fabrikam.database.windows.net,1433Fabrikam.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 - 部署类型
输入别名: TaskNameSelectorstring. 必需。 允许的值: DacpacTask (SQL DACPAC 文件) 、 SqlTask (SQL 脚本文件) (InlineSqlTask 内联 SQL 脚本) 。 默认值:DacpacTask


DeploymentAction - 行动
string. 当 TaskNameSelector = DacpacTask 时,需要此选项。 允许的值:PublishExtract、、ExportImportScriptDriftReport (偏移报表) 、 DeployReport (部署报表) 。 默认值:Publish

指定列表中的 SQL 操作之一。 详细了解 SQL 操作列表


DeploymentAction - 行动
string. 必需。 允许的值:PublishExtract、、ExportImportScriptDriftReport (偏移报表) 、 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. 必需。 允许的值:AutoDetectIPAddressRange。 默认值: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、、ExportScriptDriftReportDeployReport时生成的输出文件路径。

注解

使用此任务可以使用 DACPAC 部署Azure SQL数据库,或使用 SQLCMD 运行脚本。

重要

此任务仅在 Windows 环境中受支持。 如果你尝试使用 Azure Active Directory (Azure AD) 集成身份验证,则必须创建专用代理。 托管代理不支持 Azure AD 集成身份验证。

要求

要求 说明
管道类型 YAML、经典版本、经典版本
运行平台 Agent
需求 自承载代理必须具有满足以下要求的功能才能运行使用此任务的作业:sqlpackage
功能 此任务不满足作业中后续任务的任何要求。
命令限制 任意
可设置变量 任意
代理版本 1.103.0 或更高版本
任务类别 部署