Создайте связанный сервис с ключом Vault, используя python - PullRequest
0 голосов
/ 17 февраля 2020

Вот моя проблема, я пытаюсь создать связанный сервис, используя python sdk, и мне это удалось, если я предоставил имя и ключ учетной записи хранения. Но я хотел бы создать связанный сервис со ссылкой на ключевые хранилища, ниже работает нормально и создает связанный сервис. Однако, когда я go к datafactory и тесту соединения .. он не удается .. Пожалуйста, помогите!

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)

Сообщение об ошибке

Invalid storage connection string provided to 'AzureTableConnection'. Check the storage connection string in configuration. No valid combination of account information found.

1 Ответ

0 голосов
/ 19 февраля 2020

Я проверяю ваш код, он успешно создал связанную службу, и я перехожу на портал к Test connection, он также работает, вы можете выполнить следующие шаги.

1. Перейдите к azure keyvault на портале -> Secrets -> Create a secret, я не уверен, почему вы можете использовать access_key в качестве имени секрета, Пей мой тест, он недействителен. Поэтому в моем примере я использую accesskey в качестве имени секрета, затем сохраняю Connection string учетной записи хранения.

enter image description here

enter image description here

2. Перейдите к Access policies keyvault, добавьте MSI вашей фабрики данных с правильным секретным разрешением. Если вы не включили MSI фабрики данных, перейдите по этой ссылке , чтобы сгенерировать ее, это используется для связанной службы 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. Go вернуться на страницу связанной службы, обновить sh и проверить соединение, оно работает нормально.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...