如何解决如何从Azure Devops连接Amazon RDS SQL以进行数据库自动化
我正在尝试使构建部署过程自动化,其中一部分是在每个发行版中升级数据库。 数据库托管在Amazon RDS SQL Server上。 我的RDS数据库也可供公共访问,并且可以使用Management Studio从任何地方进行连接。但是,根本无法从Azure Devops Pipeline访问服务器。
Output from my Build agent task
解决方法
您看过AWS Toolkit for Azure DevOps吗?这样一来,您就可以从Azure DevOps连接到AWS资源。您还需要确保实例上的防火墙允许来自Azure DevOps的连接。在documentation中有更多相关内容。
,问题出在您在天蓝色管道中使用的任务Deploy database DACPAC using a DAC Publish Profile
。
我仔细查看了此任务的源代码,发现错误server not exist
是here时来自ping the sqlserver的错误。如果需要凭据来访问服务器主数据库,则代码将失败。
此任务无法使用sql server用户名和密码。关于此有未解决的问题。参见问题here
作为一种解决方法,您可以直接在Command line task
中使用sqlpackage.exe命令来部署数据库:例如:在命令行任务中的行脚本下方运行。有关更多信息,请参见here。
"C:\Program Files\Microsoft SQL Server\150\DAC\bin\sqlpackage.exe" /Action:Publish /SourceFile:[path to dacpac] /Profile:[path to publish profile]
如果使用的是Microsoft托管代理,则可以在路径C:\Program Files\Microsoft SQL Server\150\DAC\bin\sqlpackage.exe
中找到sqlpackage.exe。
选中here,以了解有关sqlpackage命令的更多信息。
检查this open issue关于此服务器不存在的错误。