Операция удаления ADF с python - Невозможно создать запись - PullRequest
0 голосов
/ 09 марта 2020

В настоящее время я создаю операцию удаления adfv2 с помощью python, используя указанный ниже код

Мой python код выглядит следующим образом:

#Create a delete activity 

blob_ls_name = 'AzureBlobLS'
ds_name = 'Dataset_Test'
dataset_name = DatasetReference(reference_name= ds_name)
ds_ls = LinkedServiceReference(reference_name=blob_ls_name)
logsettings = LogStorageSettings(linked_service_name = ds_ls,  path = 'mycontainer/path')
act_name = 'CleanUp_Dest_Folder'
act_delete = DeleteActivity(name = act_name , dataset = dataset_name, log_storage_settings = logsettings)

Даже после создания настроек журнала, когда операция удаления выполняется созданные настройки журнала неправильно применяются в задании и ничего не выбирается.

1 Ответ

0 голосов
/ 09 марта 2020

Я могу воспроизвести вашу проблему, вы пропустили enable_logging = True в последней строке, добавьте ее, как показано ниже, тогда она будет работать нормально.

act_delete = DeleteActivity(name = act_name , dataset = dataset_name, enable_logging = True, log_storage_settings = logsettings )

Мой тестовый образец:

Создает конвейер с операцией удаления.

from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.datafactory import DataFactoryManagementClient
from azure.mgmt.datafactory.models import *

subscription_id = 'xxxxx'
credentials = ServicePrincipalCredentials(client_id='xxxx', secret='xxxx', tenant='xxx')
adf_client = DataFactoryManagementClient(credentials, subscription_id)

blob_ls_name = 'AzureBlobStorage2'
ds_name = 'Binary1'
dataset_name = DatasetReference(reference_name= ds_name)
ds_ls = LinkedServiceReference(reference_name=blob_ls_name)
logsettings = LogStorageSettings(linked_service_name = ds_ls,  path = 'test/d2')
act_name = 'CleanUp_Dest_Folder'
act_delete = DeleteActivity(name = act_name , dataset = dataset_name, enable_logging = True, log_storage_settings = logsettings )

rg_name = 'xxxx'
df_name = 'joyfactory'
p_name = 'Pipeline1234'
params_for_pipeline = {}
p_obj = PipelineResource(
    activities=[act_delete], parameters=params_for_pipeline)
p = adf_client.pipelines.create_or_update(rg_name, df_name, p_name, p_obj)
print(p.activities[0].log_storage_settings.linked_service_name)

enter image description here

Регистрация портал:

enter image description here

...