模板部署后输出 Azure SQL 数据库连接字符串

Output Azure SQL Database ConnectionString after template deployment

我有一个 ARM 模板,它(除其他外)在 Azure SQL 服务器上创建了一个数据库(这也是由模板创建的)。

我需要输出数据库ADO.NET连接字符串。

因为我不确定这个键叫什么,所以我输出了整个对象: 这是我在 JSON 模板文件中的内容:

 "DatabaseConnectionString": {
      "type": "object",
      "value": "[listkeys(variables('dbResourceId'), variables('apiVersion'))]"
    }

dbResourceId 100% 正确。如果我改为输出它,我会得到正确的 ID,并且 apiVersion 与我在创建数据库时使用的相同。 但是,我收到此错误:

"code": "NotFound",

"message": "Resource not found for the segment 'listkeys'.",

正在正确创建数据库

我有一个完全相同的 pattern/idea 服务总线,它工作得很好 救命啊,我快死了

好吧,看起来连接字符串根本就不是 属性,这就是为什么它不能用 listkeys 返回的原因,它需要 "calculated" 使用 concat

"DatabaseConnectionString": {
  "type": "string",
  "value": "[concat('Server=tcp:',reference(variables('sqlserverName')).fullyQualifiedDomainName,',1433;Initial Catalog=',variables('dbName'),';Persist Security Info=False;User ID=',reference(variables('sqlserverName')).administratorLogin,';Password=',reference(variables('sqlserverName')).administratorLoginPassword,';MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;')]"
}