Azure Pipeline 将 DacPac 部署到 Azure SQL - 如何添加防火墙规则?

标签 azure azure-devops azure-sql-database azure-pipelines-release-pipeline dacpac

我有一个 Azure DevOps 发布管道,并且正在尝试部署一个 SQL 数据库。

这是该任务的 YAML:

steps:
- task: SqlAzureDacpacDeployment@1
  displayName: 'Azure SQL DacpacTask'
  inputs:
    azureSubscription: 'Dev/Test Connection'
    AuthenticationType: aadAuthenticationIntegrated
    ServerName: 'myserver.database.windows.net'
    DatabaseName: 'mydb'
    DacpacFile: '$(System.DefaultWorkingDirectory)/PATHTOMYFILE.Db.dacpac'
    DeleteFirewallRule: false

日志中的错误有些模糊:

[debug]The Azure SQL DACPAC task failed. SqlPackage.exe exited with code 1.Check out how to troubleshoot failures at...

但是日志也这样说:

[debug]Processed: ##vso[task.logissue type=error]*** An unexpected failure occurred: One or more errors occurred.. [debug]No Firewall Rule was added

我知道必须为尝试访问 Azure SQL 的 IP 添加防火墙规则。我的理解是,该任务将尝试根据正在使用的代理的 IP 地址为我创建防火墙异常(exception)。但日志显示“未添加防火墙规则”。您可能会注意到我设置了 DeleteFirewallRule: false。我不确定规则是否被创建然后删除,此设置将使它们可供我检查。但同样,没有创建任何内容。

我无法在 Azure 门户中手动添加防火墙规则,因为每次发布管道运行时代理都会不同。有人对如何解决这个问题有任何想法吗?

最佳答案

此任务的错误消息根本不是很清楚。在尝试了多种不同的方法来解决此问题后,我尝试更改身份验证模式。

steps:
- task: SqlAzureDacpacDeployment@1
  displayName: 'Azure SQL DacpacTask'
  inputs:
    azureSubscription: 'Dev/Test Connection'
    ServerName: 'myserver.database.windows.net'
    DatabaseName: 'mydb'
    SqlUsername: '$(dbdeployuser)'
    SqlPassword: '$(dbdeploypassword)'
    DacpacFile: '$(System.DefaultWorkingDirectory)/PATHTOMYFILE.Db.dacpac'
    DeleteFirewallRule: false

一旦我这样做了,它就起作用了。所以问题根本不在于防火墙。

关于Azure Pipeline 将 DacPac 部署到 Azure SQL - 如何添加防火墙规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60377583/

相关文章:

azure - 通过 ARM 模板将 Active Directory 管理员分配给 Azure SQL 实例

azure - Azure 工作人员上的一次性工作

Azure iot上传图像然后在azure函数中处理

AKS Kubectl 任务的 Azure Devops 管道无法将 list 部署到 AKS

azure - 如何在 Azure Pipelines Pull 请求中重新部署版本?

c# - 数据导入 - Excel 到 SQL Azure?

azure - 如何设置 app.UseOAuthBearerAuthentication 来处理不同的 Azure B2C 自定义策略?

azure - Windows azure redis缓存迁移问题

azure - Powershell 中使用 --runtime 命令设置 Jenkins 管道时出现的问题

unit-testing - 单元测试在构建服务器上执行缓慢