2
votes

Dynamically changing the connection string for Tablestorage or blob storage in Azure data factory. Currently, I could see such option for database related dataset? How to achieve the same in Table or Blob storage

2

2 Answers

2
votes

I believe this is what you wanted. https://docs.microsoft.com/en-us/azure/data-factory/parameterize-linked-services As doc mentioned, UI only supports 8 linked service. For others, you could change json code directly following the same pattern.

{
"name": "AzureBlobStorage12",
"type": "Microsoft.DataFactory/factories/linkedservices",
"properties": {
    "parameters": {
        "accountName": {
            "type": "String"
        },
        "accountKey": {
            "type": "String"
        }
    },
    "annotations": [],
    "type": "AzureBlobStorage",
    "typeProperties": {
        "connectionString": "DefaultEndpointsProtocol=https;AccountName=@{linkedService().accountName};AccountKey=@{linkedService().accountKey};EndpointSuffix=core.windows.net;"
    }
}

}

enter image description here You can't put the entire connection string as an expression. You need parameterize every part separately. Make sure you noticed the prameters field. And then every time you use the linked service, you will be able to pass different values to it.

1
votes

In the New Linked service Azure table storage and Click on Advanced and check Specify Dynamic contents in JSON format adf

Copy the below JSON to make it Table Storage Parameterize : { "name": "Table", "type": "Microsoft.DataFactory/factories/linkedservices", "properties": { "type": "AzureTableStorage", "typeProperties": { "sasUri": { "type": "SecureString", "value": "@{linkedService().sasUriParam}" } }, "parameters": { "sasUriParam": { "type": "String" } }, "annotations": [] } }