The Inquisitive Coder
The Inquisitive Coder

Reputation: 1315

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?

Upvotes: 11

Views: 8207

Answers (2)

redOctober13
redOctober13

Reputation: 3974

This is how I've done it:

"value": "[reference(resourceId('Microsoft.Storage/storageAccounts', parameters('fileStorageAccountName')), '2022-09-01').value[0].connectionString]"

Upvotes: 1

Jim Xu
Jim Xu

Reputation: 23111

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')]"  
        },

        }  
    }  

Upvotes: 17

Related Questions