Azure管道将DacPac部署到Azure SQL-如何添加防火墙规则?
我有一个Azure DevOps发布管道,我正在尝试部署一个SQL数据库 以下是任务的YAML:Azure管道将DacPac部署到Azure SQL-如何添加防火墙规则?,azure,azure-devops,azure-sql-database,azure-pipelines-release-pipeline,dacpac,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
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
日志中的错误有些模糊:
[调试]Azure SQL DACPAC任务失败。SqlPackage.exe已退出,代码为1。请查看如何在
然而,日志也指出:
[debug]已处理:##vso[task.logissue type=error]***发生意外故障:出现一个或多个错误。。
[调试]未添加防火墙规则
我知道必须为尝试访问Azure SQL的IP添加防火墙规则。我的理解是,任务将尝试根据所使用代理的IP地址为我创建防火墙例外。但是日志说“没有添加防火墙规则”。您可能会注意到,我设置了DeleteFirewallRule:false
。我不确定规则是否被创建然后被删除,这个设置会让我可以检查它们。但同样,没有人被创造出来
我无法在Azure门户中手动添加防火墙规则,因为每次发布管道运行时代理都会不同。有人对如何解决这个问题有什么想法吗
谢谢,
Andy此任务的错误消息一点也不清楚。在尝试了一系列不同的方法来解决这个问题之后,我尝试了改变身份验证模式
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
一旦我这么做了,它就成功了。因此,问题根本不在于防火墙。我一直在查看此任务的源代码.PS1脚本。消息“未添加防火墙规则”似乎不是故障的迹象。这发生在过程的末尾。这意味着不需要删除任何规则,因为没有添加任何规则。确定。还不确定,但我认为问题根本不在于防火墙,我认为这是由于任务中选择的auth方法(aadAuthenticationIntegrated)。我会继续测试,并在我找到答案后更新问题/答案。很高兴知道问题已经解决。你可以接受它作为答案,它可以帮助遇到同样问题的人。谢谢啊,谢谢你的提醒。我想如果我回答自己的问题,它会自动“接受”。