airflow.providers.microsoft.azure.hooks.asb

模組內容

類別

BaseAzureServiceBusHook

BaseAzureServiceBusHook 類別,用於建立會話並使用連接字串建立連線。

AdminClientHook

與 ServiceBusAdministrationClient 互動。

MessageHook

與 ServiceBusClient 互動。

屬性

MessageCallback

airflow.providers.microsoft.azure.hooks.asb.MessageCallback[原始碼]
class airflow.providers.microsoft.azure.hooks.asb.BaseAzureServiceBusHook(azure_service_bus_conn_id=default_conn_name)[原始碼]

基礎類別: airflow.hooks.base.BaseHook

BaseAzureServiceBusHook 類別,用於建立會話並使用連接字串建立連線。

參數

azure_service_bus_conn_id (str) – 參考 Azure Service Bus 連線

conn_name_attr = 'azure_service_bus_conn_id'[原始碼]
default_conn_name = 'azure_service_bus_default'[原始碼]
conn_type = 'azure_service_bus'[原始碼]
hook_name = 'Azure Service Bus'[原始碼]
classmethod get_connection_form_widgets()[原始碼]

傳回要新增至連線表單的連線小工具。

classmethod get_ui_field_behaviour()[原始碼]

傳回自訂欄位行為。

abstract get_conn()[原始碼]

傳回 hook 的連線。

class airflow.providers.microsoft.azure.hooks.asb.AdminClientHook(azure_service_bus_conn_id=default_conn_name)[原始碼]

基礎類別: BaseAzureServiceBusHook

與 ServiceBusAdministrationClient 互動。

這可以用於建立、更新、列出和刪除 Service Bus 命名空間的資源。此 hook 使用從基礎類別繼承的相同 Azure Service Bus 用戶端連線。

get_conn()[原始碼]

建立 ServiceBusAdministrationClient 實例。

這使用連線詳細資訊中的連線字串。

create_queue(queue_name, max_delivery_count=10, dead_lettering_on_message_expiration=True, enable_batched_operations=True)[原始碼]

透過連線到 Service Bus 管理用戶端來建立佇列,並傳回 QueueProperties。

參數
  • queue_name (str) – 佇列的名稱或具有名稱的 QueueProperties。

  • max_delivery_count (int) – 最大傳遞計數。訊息在傳遞次數達到此數字後會自動變成死信。預設值為 10。

  • dead_lettering_on_message_expiration (bool) – 一個值,指出當訊息過期時,此訂閱是否具有死信支援。

  • enable_batched_operations (bool) – 一個值,指出是否啟用伺服器端批次作業。

delete_queue(queue_name)[原始碼]

刪除 Service Bus 命名空間中 queue_name 指定的佇列。

參數

queue_name (str) – 佇列的名稱或具有名稱的 QueueProperties。

delete_subscription(subscription_name, topic_name)[原始碼]

刪除 Service Bus 命名空間下的主題訂閱實體。

參數
  • subscription_name (str) – 將擁有主題中規則的訂閱名稱

  • topic_name (str) – 將擁有訂閱規則的主題。

class airflow.providers.microsoft.azure.hooks.asb.MessageHook(azure_service_bus_conn_id=default_conn_name)[原始碼]

基礎類別: BaseAzureServiceBusHook

與 ServiceBusClient 互動。

這作為取得 ServiceBusSender 和 ServiceBusReceiver 的高階介面。

get_conn()[原始碼]

透過使用連線詳細資訊中的連線字串來建立並傳回 ServiceBusClient。

send_message(queue_name, messages, batch_message_flag=False)[原始碼]

使用 ServiceBusClient Send 將訊息傳送到 Service Bus 佇列。

透過使用 batch_message_flag,可以啟用並將訊息作為批次訊息傳送。

參數
  • queue_name (str) – 佇列的名稱或具有名稱的 QueueProperties。

  • messages (str | list[str]) – 需要傳送到佇列的訊息。它可以是字串或字串列表。

  • batch_message_flag (bool) – 布林旗標,如果需要將訊息作為批次訊息傳送,則可以設定為 True。

static send_list_messages(sender, messages)[原始碼]
static send_batch_message(sender, messages)[原始碼]
receive_message(queue_name, context, max_message_count=1, max_wait_time=None, message_callback=None)[原始碼]

在指定的佇列名稱中一次接收一批訊息。

參數
  • queue_name (str) – 佇列名稱或具有名稱的 QueueProperties 的名稱。

  • max_message_count (int | None) – 批次中的最大訊息數。

  • max_wait_time (float | None) – 等待第一個訊息到達的最長秒數。

  • message_callback (MessageCallback | None) – 用於處理每個訊息的可選回呼。如果未提供,則將記錄並完成訊息。如果提供,並且拋出例外,則將放棄訊息以供將來重新傳遞。

receive_subscription_message(topic_name, subscription_name, context, max_message_count, max_wait_time, message_callback=None)[原始碼]

一次接收一批訂閱訊息。

如果您希望同時處理多個訊息,或執行作為單次呼叫的臨時接收,則此方法是最佳的。

參數
  • subscription_name (str) – 將擁有主題中規則的訂閱名稱

  • topic_name (str) – 將擁有訂閱規則的主題。

  • max_message_count (int | None) – 批次中的最大訊息數。實際傳回的數字將取決於 prefetch_count 和傳入的串流速率。設定為 None 將完全取決於預先擷取設定。預設值為 1。

  • max_wait_time (float | None) – 等待第一個訊息到達的最長秒數。如果沒有訊息到達,並且未指定逾時,則此呼叫將不會傳回,直到連線關閉。如果指定,且在逾時期間內沒有訊息到達,則將傳回空列表。

這個條目有幫助嗎?