如何从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 existhere时来自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关于此服务器不存在的错误。