установление динамических соединений с базами данных с помощью фабрики данных Azure
На основе этого документа Параметризация связанных служб в фабрике данных Azure , теперь вы можете параметризоватьсвязанный сервис и передача динамических значений во время выполнения.
Поддерживается база данных Cosmos:
![enter image description here](https://i.stack.imgur.com/onTUI.png)
Кстати, MS рекомендует не параметризировать пароли или секреты.Вместо этого сохраните все строки подключения в хранилище ключей Azure и настройте секретное имя. Подробную информацию см. По этой ссылке .
Обновление ответа:
Что касается имени БД, конечно, вы можете его параметризовать.
Вы можете настроить динамическое имя БД при создании службы, связанной с БД cosmos.
![enter image description here](https://i.stack.imgur.com/vsB0C.png)
Щелкните динамическое содержимое и создайте новый параметр.
![enter image description here](https://i.stack.imgur.com/RSsWB.png)
Обновить ответ2:
Пожалуйста, обратитесь к этой функции SDK и мой рабочий код, как показано ниже:
from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.resource import ResourceManagementClient
from azure.mgmt.datafactory import DataFactoryManagementClient
from azure.mgmt.datafactory.models import *
# Azure subscription ID
subscription_id = '***'
# This program creates this resource group. If it's an existing resource group, comment out the code that creates the resource group
rg_name = '***'
# The data factory name. It must be globally unique.
df_name = '***'
# Specify your Active Directory client ID, client secret, and tenant ID
credentials = ServicePrincipalCredentials(client_id='***',
secret='***',
tenant='***')
resource_client = ResourceManagementClient(credentials, subscription_id)
adf_client = DataFactoryManagementClient(credentials, subscription_id)
resource_client.resource_groups.get(rg_name)
# Create a data factory
df_resource = Factory(location='eastus')
df = adf_client.factories.get(rg_name, df_name, df_resource)
print(df)
ls_name = 'testlink1'
dbName = "<your db name>"
connection_string = 'AccountEndpoint=https://***.documents.azure.com:443/;AccountKey=***;Database='+dbName+';';
ls_cosmos_db = CosmosDbLinkedService(connection_string=connection_string)
ls = adf_client.linked_services.create_or_update(rg_name, df_name, ls_name, ls_cosmos_db)
print(ls)
Более подробную информацию, вы могли бы сослатьсяк официальному создайте пример кода связанной службы и Python SDK для управления ADF .
![enter image description here](https://i.stack.imgur.com/Nmo6S.png)