使用python使用密钥保管库创建链接服务

时间:2020-02-17 20:35:39

标签: python azure azure-data-factory-2 azure-keyvault

这是我的问题,我正在尝试使用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)

1 个答案:

答案 0 :(得分:0)

我测试了您的代码,它成功创建了链接服务,然后导航到Test connection的门户,它也可以工作,您可以按照以下步骤操作。

1。导航到门户网站中的天蓝色密钥库-> Secrets-> Create a secret,我不确定为什么可以使用access_key作为秘密名称,pey我的测试,它是无效的。因此,在我的示例中,我使用accesskey作为密码的名称,然后存储存储帐户的Connection string

enter image description here

enter image description here

2。导航至密钥仓库的Access policies,添加具有正确秘密权限的数据工厂的MSI。如果您未启用数据工厂的MSI,请按照此link生成它,这将用于Azure Key Vault链接服务来访问您的密钥库机密。

enter image description here

3。导航到数据工厂的Azure Key Vault链接服务,确保连接成功。

enter image description here

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)

enter image description here

5。返回链接的服务页面,刷新并测试连接,它工作正常。

enter image description here