Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Retrieve Storage Account Connection String using ARM

I am new to writing Azure Resource Manager templates; I have a requirement where I need to retrieve my Azure Storage Account Connection String. I am able to retrieve it's access key using [listKeys(variables('storageAccountId'), '2019-04-01').keys[0].value] where storageAccountId is [resourceId('Microsoft.Storage/storageAccounts', parameters('storageAccountName'))] but I'm unable to do so for the connection string(primary).

Now, my question is like we have listKeys function to retrieve the access keys, do we have some system function for retrieving connection string also? Or do we need to concatenate and create the connection string? I have the values for Storage Account Name & Resource Group Name. How can I do this using ARM?

like image 998
The Inquisitive Coder Avatar asked Mar 21 '20 11:03

The Inquisitive Coder


Video Answer


1 Answers

According to my research, Azure ARM template does not provide the function that we can use to list storage account connection string. We just can ARM template function to list access key(listkeys) list account SAS token(listAccountSas) or list service SAS token(listServiceSas). For more details, please refer to the document.

So if you want to get storage account connection string, I suggest you use Azure ARM template function concat to combine the connection string. For example

"outputs": {  
        "storageAccountConnectionString": {  
            "type": "string",  
            "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', parameters('storageAccountName'), ';AccountKey=', listKeys(resourceId(parameters('resourceGroupName'),'Microsoft.Storage/storageAccounts', parameters('storageAccountName')), '2019-04-01').keys[0].value,';EndpointSuffix=core.windows.net')]"  
        },

        }  
    }  
like image 80
Jim Xu Avatar answered Oct 23 '22 21:10

Jim Xu