首页 > 解决方案 > 使用条件语句在 arm 模板输出中形成 SQL DB 连接字符串

问题描述

我正在创建一个在 Azure SQL 服务器上创建数据库(数组)的 ARM 模板,我正在尝试输出 ADO.NET 连接字符串并将它们保存在 Key Vault 中。我有 3 个连接字符串(SQL 身份验证、AD 密码身份验证和 AD 集成身份验证)。我通过单独给出它们来获得输出,如下所示:

"outputs": {
        "SQLAuthConnectionString": {
            "type": "object",
            "value": {
                "type": "string",
                "value": "[concat('Server=tcp:',reference(parameters('serverName')).fullyQualifiedDomainName,',1433;Initial Catalog=',parameters('dbnameName'),';Persist Security Info=False;User ID=',reference(parameters('serverName')).administratorLogin,';Password=',reference(parameters('serverName')).administratorLoginPassword,';MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;')]"
            }
        },
        "ADPasswordConnectionString": {
            "type": "object",
            "value": {
                "type": "string",
                "value": "[concat('Server=tcp:',reference(parameters('serverName')).fullyQualifiedDomainName,',1433;Initial Catalog=',parameters('dbnameName'),';Persist Security Info=False;User ID=',reference(parameters('serverName')).administratorLogin,';Password=',reference(parameters('serverName')).administratorLoginPassword,';MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Authentication="Active Directory Password"]"
            }
        },
        "ADIntegratedConnectionString": {
            "type": "object",
            "value": {
                "type": "string",
                "value": "[concat('Server=tcp:',parameters('serverName').fullyQualifiedDomainName,,,1433;Initial Catalog=',parameters('databaseName'),';Persist Security Info=False;User ID=',reference(parameters('serverName'))]"

但是检查我们是否可以在输出中添加条件(使用参数 ex:parameter('authentication_method')或任何其他方式)。任何输入都表示赞赏,因为这是我的第一个 arm 模板。

标签: jsonazure-devopsazure-sql-databaseazure-resource-managerarm-template

解决方案


Azure 文档中所述,当您有条件地部署资源时,您可以在 ARM 模板的输出块中使用条件。

您可以参考文档,以获取条件输出的简单示例。


推荐阅读