Я проверяю ваш код, он успешно создал связанную службу, и я перехожу на портал к Test connection
, он также работает, вы можете выполнить следующие шаги.
1. Перейдите к azure keyvault на портале -> Secrets
-> Create a secret
, я не уверен, почему вы можете использовать access_key
в качестве имени секрета, Пей мой тест, он недействителен. Поэтому в моем примере я использую accesskey
в качестве имени секрета, затем сохраняю Connection string
учетной записи хранения.
2. Перейдите к Access policies
keyvault, добавьте MSI вашей фабрики данных с правильным секретным разрешением. Если вы не включили MSI фабрики данных, перейдите по этой ссылке , чтобы сгенерировать ее, это используется для связанной службы Azure Key Vault
для доступа к вашему секретному ключу.
3. Перейдите к связанной службе Azure Key Vault
вашей фабрики данных, убедитесь, что соединение установлено успешно.
4. Используйте приведенный ниже код для создания связанной службы хранения.
Версия библиотек:
azure-common==1.1.23
azure-mgmt-datafactory==0.9.0
from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.datafactory import DataFactoryManagementClient
from azure.mgmt.datafactory.models import *
subscription_id = '<subscription-id>'
credentials = ServicePrincipalCredentials(client_id='<client-id>', secret='<client-secret>', tenant='<tenant-id>')
adf_client = DataFactoryManagementClient(credentials, subscription_id)
rg_name = '<resource-group-name>'
df_name = 'joyfactory'
ls_name = 'storageLinkedService'
store = LinkedServiceReference(reference_name ='AzureKeyVault1') # AzureKeyVault1 is the name of the Azure Key Vault linked service
storage_string = AzureKeyVaultSecretReference( store=store, secret_name = 'accesskey')
ls_azure_storage = AzureStorageLinkedService(connection_string=storage_string)
ls = adf_client.linked_services.create_or_update(rg_name, df_name, ls_name, ls_azure_storage)
print(ls)
5. Go вернуться на страницу связанной службы, обновить sh и проверить соединение, оно работает нормально.