2015-10-19 47 views

回答

26

使用listkeys輔助函數。

"appSettings": [ 
    { 
     "name": "STORAGE_KEY", 
     "value": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value]" 
    } 
] 

本快速做類似的事情:

https://azure.microsoft.com/en-us/documentation/articles/cache-web-app-arm-with-redis-cache-provision/

+0

我添加了.key1到你的項目(這是獲得主要訪問鍵的屬性),但這讓我走了。謝謝你,並感謝艾米莉。 – Scott

16

的語法已經改變,因爲對方的回答被接受。你現在會打的錯誤是'Template language expression property 'key1' doesn't exist, available properties are 'keys'

密鑰現在表示爲鍵的陣列,現在的語法是:

"StorageAccount": "[Concat('DefaultEndpointsProtocol=https;AccountName=',variables('StorageAccountName'),';AccountKey=',listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('StorageAccountName')), providers('Microsoft.Storage', 'storageAccounts').apiVersions[0]).keys[0].value)]", 

參見:http://samcogan.com/retrieve-azure-storage-key-in-arm-script/

+0

感謝發佈,我已經更新了我的答案。 – BenV

1

我面對這個問題兩次。首先在2015年,最後在2017年5月。 我需要向WebApp添加連接字符串 - 我想在ARM模板部署期間從生成的資源中自動添加字符串。稍後可以幫助不手動添加此值。

我第一次使用舊版本的功能listKeys(它看起來像老版返回結果不是對象,而是作爲值):

"AzureWebJobsStorage": { 
         "type": "Custom", 
         "value": "[concat(variables('storageConnectionString'), listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName')), '2015-05-01-preview').key1)]" 
        }, 

今天的工作模板的最後一個版本是:

"resources": [ 
    { 
     "apiVersion": "2015-08-01", 
     "type": "config", 
     "name": "connectionstrings", 
     "dependsOn": [ 
     "[resourceId('Microsoft.Web/Sites/', parameters('webSiteName'))]" 
     ], 
     "properties": { 
     "DefaultConnection": { 
      "value": "[concat('Data Source=tcp:', reference(resourceId('Microsoft.Sql/servers/', parameters('sqlserverName'))).fullyQualifiedDomainName, ',1433;Initial Catalog=', parameters('databaseName'), ';User Id=', parameters('administratorLogin'), '@', parameters('sqlserverName'), ';Password=', parameters('administratorLoginPassword'), ';')]", 
      "type": "SQLServer" 
     }, 
     "AzureWebJobsStorage": { 
      "type": "Custom", 
      "value": "[concat(variables('storageConnectionString'), listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageName')), '2016-01-01').keys[0].value)]" 
     }, 
     "AzureWebJobsDashboard": { 
      "type": "Custom", 
      "value": "[concat(variables('storageConnectionString'), listKeys(resourceId('Microsoft.Storage/storageAccounts', parameters('storageName')), '2016-01-01').keys[0].value)]" 
     } 
     } 
    }, 

謝謝。

+0

這是鏈接到具有功能詳細信息的文檔:https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-template-functions-resource#listkeys – Digiman