Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure管道将DacPac部署到Azure SQL-如何添加防火墙规则?_Azure_Azure Devops_Azure Sql Database_Azure Pipelines Release Pipeline_Dacpac - Fatal编程技术网

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

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

我有一个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
日志中的错误有些模糊:

[调试]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)。我会继续测试,并在我找到答案后更新问题/答案。很高兴知道问题已经解决。你可以接受它作为答案,它可以帮助遇到同样问题的人。谢谢啊,谢谢你的提醒。我想如果我回答自己的问题,它会自动“接受”。