这是我的问题,我正在尝试使用python sdk创建链接服务,如果我提供了存储帐户名和密钥,我就成功了。但是我想创建具有关键保管库参考的链接服务,以下运行正常并创建链接服务。但是,当我进入数据工厂并测试连接时..失败了..请帮助!
elementList
错误消息
store = LinkedServiceReference(reference_name ='LS_keyVault_Dev')
storage_string = AzureKeyVaultSecretReference( store=store, secret_name = 'access_key')
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)
答案 0 :(得分:0)
我测试了您的代码,它成功创建了链接服务,然后导航到Test connection
的门户,它也可以工作,您可以按照以下步骤操作。
1。导航到门户网站中的天蓝色密钥库-> Secrets
-> Create a secret
,我不确定为什么可以使用access_key
作为秘密名称,pey我的测试,它是无效的。因此,在我的示例中,我使用accesskey
作为密码的名称,然后存储存储帐户的Connection string
。
2。导航至密钥仓库的Access policies
,添加具有正确秘密权限的数据工厂的MSI。如果您未启用数据工厂的MSI,请按照此link生成它,这将用于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。返回链接的服务页面,刷新并测试连接,它工作正常。