簡體   English   中英

python function start_copy_from_url 未觸發 Azure ADF 存儲 BlobCreated 事件

[英]python function start_copy_from_url not triggering Azure storage BlobCreated event for ADF

目標:我們希望使用 Azure Function(python)將 blob 從源容器復制到目標容器(python)一旦它到達目標容器..我們希望 blob 創建事件觸發 ADF 管道

問題如果我手動將文件復制到目標容器,觸發器將按預期觸發並且 ADF 管道成功執行。 但是,如果文件是由 Azure function 創建的,則觸發器不會觸發。

負責創建文件的python代碼是

dest_blob_service_client = BlobServiceClient(dest_acct_url, credential=credential)

copied_blob_client = dest_blob_service_client.get_blob_client(container=dest_container_name, blob=dest_blob_name)

blob_to_copy_url = blob_url + '?' + sas_token

# Start copy
print('Copy started')
copied_blob_client.start_copy_from_url(blob_to_copy_url)
for i in range(10):
    dest_blob_properties = copied_blob_client.get_blob_properties()
    status = dest_blob_properties.copy.status
    print('Copy destination properties status: ' + status)
    if status == "success":
        # Copy finished
        print('Copy is successful')
        
        break
    time.sleep(10)

if status != 'success':
    # if not finished after 100s, cancel the operation
    dest_blob_properties = copied_blob_client.get_blob_properties()
    print('Copy destination properties status: ' + status)
    copy_id = dest_blob_properties.copy.id
    copied_blob_client.abort_copy(copy_id)
    dest_blob_properties = copied_blob_client.get_blob_properties()
    print('Copy is aborted')

我想知道是否與 start_copy_from_url function 有什么關系,它阻止它觸發 BlobCreated 事件,但我似乎找不到關於該主題的任何內容。

任何幫助將不勝感激

我發現如果我將 requires_sync 屬性設置為 True 那么它會強制它同步並且 BlobCreated 事件成功觸發

copied_blob_client.start_copy_from_url(blob_to_copy_url, requires_sync=True)

在我的場景中,這是一個不錯的選擇。 仍然很想知道是否可以在異步上觸發

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM