【问题标题】:Forming SQL DB Connection string in arm template outputs using conditional statements使用条件语句在 arm 模板输出中形成 SQL DB 连接字符串
【发布时间】:2021-10-30 23:43:43
【问题描述】:

我正在创建一个在 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'))]"

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

【问题讨论】:

    标签: json azure-devops azure-sql-database azure-resource-manager arm-template


    【解决方案1】:

    Azure Documentation 中所述,当您拥有conditionally deployed 资源时,您可以在ARM 模板的输出块中使用条件。

    条件输出的简单例子可以参考this文档。

    【讨论】:

    • 另外,请记住,将秘密放入输出中,将使在范围内具有 READ 访问权限的任何人都可以使用该秘密(例如,resourceGroup、订阅)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多