ServiceBusClient Класс

Класс ServiceBusClient определяет высокоуровневый интерфейс для получения ServiceBusSender и ServiceBusReceiver.

Наследование
builtins.object
ServiceBusClient

Конструктор

ServiceBusClient(fully_qualified_namespace: str, credential: TokenCredential | AzureSasCredential | AzureNamedKeyCredential, *, retry_total: int = 3, retry_backoff_factor: float = 0.8, retry_backoff_max: float = 120, retry_mode: str = 'exponential', **kwargs: Any)

Параметры

fully_qualified_namespace
str
Обязательно

Полное имя узла для пространства имен служебной шины. Формат пространства имен: .servicebus.windows.net.

credential
TokenCredential или AzureSasCredential или AzureNamedKeyCredential
Обязательно

Объект учетных данных, используемый для проверки подлинности, который реализует определенный интерфейс для получения маркеров. Он принимает объекты учетных данных, созданные библиотекой azure-identity, и объекты, реализующие метод *get_token(self, scopes) или также можно предоставить AzureSasCredential.

logging_enable
bool

Следует ли выводить журналы трассировки сети в средство ведения журнала. Значение по умолчанию — False.

transport_type
TransportType

Тип транспортного протокола, который будет использоваться для взаимодействия со службой служебной шины. Значение по умолчанию — TransportType.Amqp , в котором используется порт 5671. Если порт 5671 недоступен или заблокирован в сетевой среде, можно использовать TransportType.AmqpOverWebsocket , который использует порт 443 для обмена данными.

http_proxy
Dict

Параметры прокси-сервера HTTP. Это должен быть словарь со следующими ключами: "proxy_hostname" (значение str) и "proxy_port" (значение int). Кроме того, могут присутствовать следующие ключи: "имя пользователя", "пароль".

user_agent
str

Если этот параметр указан, он будет добавлен перед строкой встроенного агента пользователя.

retry_total
int

Общее число попыток повторного выполнения операции, завершилось сбоем при возникновении ошибки. Значение по умолчанию — 3.

retry_backoff_factor
float

Разностная внутренняя обратная связь в единице секунды между повторными попытками. Значение по умолчанию — 0,8.

retry_backoff_max
float

Максимальный интервал отката в единице секунды. Значение по умолчанию — 120.

retry_mode
str

Поведение задержки между повторными попытками. Поддерживаются значения "fixed" или "exponential", где по умолчанию используется значение "exponential".

custom_endpoint_address
str

Адрес пользовательской конечной точки, используемый для установки подключения к службе служебной шины, что позволяет маршрутизировать сетевые запросы через шлюзы приложений или другие пути, необходимые для среды узла. Значение по умолчанию — Нет. Формат будет выглядеть следующим образом: "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Если порт не указан в custom_endpoint_address, по умолчанию будет использоваться порт 443.

connection_verify
str

Путь к пользовательскому CA_BUNDLE файлу SSL-сертификата, который используется для проверки подлинности удостоверения конечной точки подключения. Значение по умолчанию — None, в этом случае будет использоваться certifi.where().

uamqp_transport
bool

Следует ли использовать библиотеку uamqp в качестве базового транспорта. Значение по умолчанию — False, и в качестве базового транспорта будет использоваться библиотека AMQP Pure Python.

Примеры

Создайте новый экземпляр ServiceBusClient.


   import os
   from azure.identity import DefaultAzureCredential
   from azure.servicebus import ServiceBusClient
   fully_qualified_namespace = os.environ['SERVICEBUS_FULLY_QUALIFIED_NAMESPACE']
   servicebus_client = ServiceBusClient(
       fully_qualified_namespace=fully_qualified_namespace,
       credential=DefaultAzureCredential()
   )

Переменные

fully_qualified_namespace
str

Полное имя узла для пространства имен служебной шины. Формат пространства имен: .servicebus.windows.net.

Методы

close

Закройте клиент ServiceBus. Все порожденные отправители, получатели и базовое подключение будут завершены.

from_connection_string

Создайте ServiceBusClient из строки подключения.

get_queue_receiver

Получите ServiceBusReceiver для конкретной очереди.

get_queue_sender

Получите ServiceBusSender для конкретной очереди.

get_subscription_receiver

Получите ServiceBusReceiver для конкретной подписки в разделе .

get_topic_sender

Получите ServiceBusSender для определенного раздела.

close

Закройте клиент ServiceBus. Все порожденные отправители, получатели и базовое подключение будут завершены.

close() -> None

Возвращаемое значение

Нет

from_connection_string

Создайте ServiceBusClient из строки подключения.

from_connection_string(conn_str: str, *, retry_total: int = 3, retry_backoff_factor: float = 0.8, retry_backoff_max: float = 120, retry_mode: str = 'exponential', **kwargs: Any) -> ServiceBusClient

Параметры

conn_str
str
Обязательно

Строка подключения служебной шины.

logging_enable
bool

Следует ли выводить журналы трассировки сети в средство ведения журнала. Значение по умолчанию — False.

transport_type
TransportType

Тип транспортного протокола, который будет использоваться для взаимодействия со службой служебной шины. Значение по умолчанию — TransportType.Amqp , в котором используется порт 5671. Если порт 5671 недоступен или заблокирован в сетевой среде, можно использовать TransportType.AmqpOverWebsocket , который использует порт 443 для обмена данными.

http_proxy
Dict

Параметры прокси-сервера HTTP. Это должен быть словарь со следующими ключами: "proxy_hostname" (значение str) и "proxy_port" (значение int). Кроме того, могут присутствовать следующие ключи: "имя пользователя", "пароль".

user_agent
str

Если этот параметр указан, он будет добавлен перед строкой встроенного агента пользователя.

retry_total
int

Общее число попыток повторного выполнения операции, завершилось сбоем при возникновении ошибки. Значение по умолчанию — 3.

retry_backoff_factor
float

Разностная внутренняя обратная связь в единице секунды между повторными попытками. Значение по умолчанию — 0,8.

retry_backoff_max
float

Максимальный интервал отката в единице секунды. Значение по умолчанию — 120.

retry_mode
str

Поведение задержки между повторными попытками. Поддерживаемые значения: fixed или exponential, где по умолчанию — exponential.

custom_endpoint_address
str

Адрес пользовательской конечной точки, используемый для установки подключения к службе служебной шины, что позволяет маршрутизировать сетевые запросы через шлюзы приложений или другие пути, необходимые для среды узла. Значение по умолчанию — Нет. Формат будет выглядеть следующим образом: "sb://< custom_endpoint_hostname>:<custom_endpoint_port>". Если порт не указан в custom_endpoint_address, по умолчанию будет использоваться порт 443.

connection_verify
str

Путь к пользовательскому CA_BUNDLE файлу SSL-сертификата, который используется для проверки подлинности удостоверения конечной точки подключения. Значение по умолчанию — None, в этом случае будет использоваться certifi.where().

uamqp_transport
bool

Следует ли использовать библиотеку uamqp в качестве базового транспорта. Значение по умолчанию — False, и в качестве базового транспорта будет использоваться библиотека AMQP Pure Python.

Возвращаемый тип

Примеры

Создайте новый экземпляр ServiceBusClient из строки подключения.


   import os
   from azure.servicebus import ServiceBusClient
   servicebus_connection_str = os.environ['SERVICEBUS_CONNECTION_STR']
   servicebus_client = ServiceBusClient.from_connection_string(conn_str=servicebus_connection_str)

get_queue_receiver

Получите ServiceBusReceiver для конкретной очереди.

get_queue_receiver(queue_name: str, *, session_id: str | ~typing.Literal[<ServiceBusSessionFilter.NEXT_AVAILABLE: 0>] | None = None, sub_queue: ~azure.servicebus._common.constants.ServiceBusSubQueue | str | None = None, receive_mode: ~azure.servicebus._common.constants.ServiceBusReceiveMode | str = ServiceBusReceiveMode.PEEK_LOCK, max_wait_time: float | None = None, auto_lock_renewer: ~azure.servicebus._common.auto_lock_renewer.AutoLockRenewer | None = None, prefetch_count: int = 0, **kwargs: ~typing.Any) -> ServiceBusReceiver

Параметры

queue_name
str
Обязательно

Путь к определенной очереди служебной шины, к которому подключается клиент.

session_id
str или <xref:azure.servicebus.NEXT_AVAILABLE_SESSION>

Определенный сеанс, из которого требуется получить. Он должен быть указан для сеансовой очереди, в противном случае он должен иметь значение None. Чтобы получать сообщения из следующего доступного сеанса, задайте для этого параметра значение ~azure.servicebus.NEXT_AVAILABLE_SESSION.

sub_queue
str или ServiceBusSubQueue или None

Если этот параметр указан, вложенная очередь, к которому будет подключаться этот получатель. Сюда входят очереди DEAD_LETTER и TRANSFER_DEAD_LETTER, содержит сообщения, которые не могут быть доставлены получателю, или сообщения, которые не могут быть обработаны. Значение по умолчанию — Нет, то есть подключение к основной очереди. Можно назначать значения из перечисления ServiceBusSubQueue или эквивалентные строковые значения deadletter и transferdeadletter.

receive_mode
Union[ServiceBusReceiveMode, str]

Receive_mode, с помощью которого сообщения будут извлекаться из сущности. Два варианта: PEEK_LOCK и RECEIVE_AND_DELETE. Сообщения, полученные с PEEK_LOCK, должны быть урегулированы в течение заданного периода блокировки, прежде чем они будут удалены из очереди. Сообщения, полученные с помощью RECEIVE_AND_DELETE, будут немедленно удалены из очереди и не могут быть впоследствии отклонены или получены повторно, если клиенту не удается обработать сообщение. Receive_mode по умолчанию — PEEK_LOCK.

max_wait_time
Optional[float]

Время ожидания в секундах между полученными сообщениями, после которого получатель автоматически прекращает получение. Значение по умолчанию — None, что означает отсутствие времени ожидания. Если возникают ошибки подключения из-за истечения времени ожидания записи, может потребоваться изменить значение времени ожидания подключения. Дополнительные сведения см. в socket_timeout необязательный параметр.

auto_lock_renewer
Optional[AutoLockRenewer]

Можно указать ~azure.servicebus.AutoLockRenewer, чтобы сообщения автоматически регистрировались при получении. Если получатель является приемником сеанса, он будет применяться к сеансу.

prefetch_count
int

Максимальное количество сообщений для кэширования при каждом запросе к службе. Этот параметр предназначен только для расширенной настройки производительности. Увеличение этого значения повысит производительность пропускной способности сообщений, но увеличит вероятность истечения срока действия сообщений во время их кэширования, если они не обрабатываются достаточно быстро. Значение по умолчанию — 0, то есть сообщения будут поступать от службы и обрабатываться по одному за раз. Если prefetch_count равно 0, ServiceBusReceiver.receive будет пытаться кэшировать max_message_count (если указано) в своем запросе к службе.

client_identifier
str

Строковый идентификатор для уникальной идентификации экземпляра получателя. Служебная шина связывает ее с некоторыми сообщениями об ошибках, чтобы упростить корреляцию ошибок. Если значение не указано, будет создан уникальный идентификатор.

socket_timeout
float

Время в секундах, в течение времени ожидания базового сокета в подключении при отправке и получении данных до истечения времени ожидания. Значение по умолчанию — 0,2 для TransportType.Amqp и 1 для TransportType.AmqpOverWebsocket. Если возникают ошибки подключения из-за истечения времени ожидания записи, может потребоваться передать значение, превышающее значение по умолчанию.

Возвращаемый тип

Примеры

Создайте новый экземпляр ServiceBusReceiver из ServiceBusClient.


   import os
   from azure.servicebus import ServiceBusClient
   servicebus_connection_str = os.environ['SERVICEBUS_CONNECTION_STR']
   queue_name = os.environ['SERVICEBUS_QUEUE_NAME']
   servicebus_client = ServiceBusClient.from_connection_string(conn_str=servicebus_connection_str)
   with servicebus_client:
       queue_receiver = servicebus_client.get_queue_receiver(queue_name=queue_name)

get_queue_sender

Получите ServiceBusSender для конкретной очереди.

get_queue_sender(queue_name: str, **kwargs: Any) -> ServiceBusSender

Параметры

queue_name
str
Обязательно

Путь к определенной очереди служебной шины, к которому подключается клиент.

client_identifier
str

Строковый идентификатор для уникальной идентификации экземпляра отправителя. Служебная шина связывает ее с некоторыми сообщениями об ошибках, чтобы упростить корреляцию ошибок. Если значение не указано, будет создан уникальный идентификатор.

socket_timeout
float

Время в секундах, в течение времени ожидания базового сокета в подключении при отправке и получении данных до истечения времени ожидания. Значение по умолчанию — 0,2 для TransportType.Amqp и 1 для TransportType.AmqpOverWebsocket. Если возникают ошибки подключения из-за истечения времени ожидания записи, может потребоваться передать значение, превышающее значение по умолчанию.

Возвращаемое значение

Отправитель очереди.

Возвращаемый тип

Примеры

Создайте новый экземпляр ServiceBusSender из ServiceBusClient.


   import os
   from azure.servicebus import ServiceBusClient
   servicebus_connection_str = os.environ['SERVICEBUS_CONNECTION_STR']
   queue_name = os.environ['SERVICEBUS_QUEUE_NAME']
   servicebus_client = ServiceBusClient.from_connection_string(conn_str=servicebus_connection_str)
   with servicebus_client:
       queue_sender = servicebus_client.get_queue_sender(queue_name=queue_name)

get_subscription_receiver

Получите ServiceBusReceiver для конкретной подписки в разделе .

get_subscription_receiver(topic_name: str, subscription_name: str, *, session_id: str | ~typing.Literal[<ServiceBusSessionFilter.NEXT_AVAILABLE: 0>] | None = None, sub_queue: ~azure.servicebus._common.constants.ServiceBusSubQueue | str | None = None, receive_mode: ~azure.servicebus._common.constants.ServiceBusReceiveMode | str = ServiceBusReceiveMode.PEEK_LOCK, max_wait_time: float | None = None, auto_lock_renewer: ~azure.servicebus._common.auto_lock_renewer.AutoLockRenewer | None = None, prefetch_count: int = 0, **kwargs: ~typing.Any) -> ServiceBusReceiver

Параметры

topic_name
str
Обязательно

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

subscription_name
str
Обязательно

Имя конкретной подписки служебной шины в заданном разделе служебной шины.

session_id
str или <xref:azure.servicebus.NEXT_AVAILABLE_SESSION>

Определенный сеанс, из которого требуется получить. Он должен быть указан для подписки с сеансом, в противном случае — None. Чтобы получать сообщения из следующего доступного сеанса, задайте для этого параметра значение ~azure.servicebus.NEXT_AVAILABLE_SESSION.

sub_queue
str или ServiceBusSubQueue или None

Если этот параметр указан, вложенная очередь, к которому будет подключаться этот получатель. Сюда входят очереди DEAD_LETTER и TRANSFER_DEAD_LETTER, содержит сообщения, которые не могут быть доставлены получателю, или сообщения, которые не могут быть обработаны. Значение по умолчанию — Нет, то есть подключение к основной очереди. Можно назначать значения из перечисления ServiceBusSubQueue или эквивалентные строковые значения deadletter и transferdeadletter.

receive_mode
Union[ServiceBusReceiveMode, str]

Receive_mode, с помощью которого сообщения будут извлекаться из сущности. Два варианта: PEEK_LOCK и RECEIVE_AND_DELETE. Сообщения, полученные с PEEK_LOCK, должны быть урегулированы в течение заданного периода блокировки, прежде чем они будут удалены из подписки. Сообщения, полученные с помощью RECEIVE_AND_DELETE, будут немедленно удалены из подписки и не могут быть впоследствии отклонены или получены повторно, если клиенту не удается обработать сообщение. Receive_mode по умолчанию — PEEK_LOCK.

max_wait_time
Optional[float]

Время ожидания в секундах между полученными сообщениями, после которого получатель автоматически прекращает получение. Значение по умолчанию — None, что означает отсутствие времени ожидания. Если возникают ошибки подключения из-за истечения времени ожидания записи, может потребоваться изменить значение времени ожидания подключения. Дополнительные сведения см. в socket_timeout необязательный параметр.

auto_lock_renewer
Optional[AutoLockRenewer]

Можно указать ~azure.servicebus.AutoLockRenewer, чтобы сообщения автоматически регистрировались при получении. Если получатель является приемником сеанса, он будет применяться к сеансу.

prefetch_count
int

Максимальное количество сообщений для кэширования при каждом запросе к службе. Этот параметр предназначен только для расширенной настройки производительности. Увеличение этого значения повысит производительность пропускной способности сообщений, но увеличит вероятность истечения срока действия сообщений во время их кэширования, если они не обрабатываются достаточно быстро. Значение по умолчанию — 0, то есть сообщения будут поступать от службы и обрабатываться по одному за раз. Если prefetch_count равно 0, ServiceBusReceiver.receive будет пытаться кэшировать max_message_count (если указано) в своем запросе к службе.

client_identifier
str

Строковый идентификатор для уникальной идентификации экземпляра получателя. Служебная шина связывает ее с некоторыми сообщениями об ошибках, чтобы упростить корреляцию ошибок. Если значение не указано, будет создан уникальный идентификатор.

socket_timeout
float

Время в секундах, в течение времени ожидания базового сокета в подключении при отправке и получении данных до истечения времени ожидания. Значение по умолчанию — 0,2 для TransportType.Amqp и 1 для TransportType.AmqpOverWebsocket. Если возникают ошибки подключения из-за истечения времени ожидания записи, может потребоваться передать значение, превышающее значение по умолчанию.

Возвращаемый тип

Примеры

Создайте новый экземпляр ServiceBusReceiver из ServiceBusClient.


   import os
   from azure.servicebus import ServiceBusClient
   servicebus_connection_str = os.environ['SERVICEBUS_CONNECTION_STR']
   topic_name = os.environ["SERVICEBUS_TOPIC_NAME"]
   subscription_name = os.environ["SERVICEBUS_SUBSCRIPTION_NAME"]
   servicebus_client = ServiceBusClient.from_connection_string(conn_str=servicebus_connection_str)
   with servicebus_client:
       subscription_receiver = servicebus_client.get_subscription_receiver(
           topic_name=topic_name,
           subscription_name=subscription_name,
       )

get_topic_sender

Получите ServiceBusSender для определенного раздела.

get_topic_sender(topic_name: str, **kwargs: Any) -> ServiceBusSender

Параметры

topic_name
str
Обязательно

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

client_identifier
str

Строковый идентификатор для уникальной идентификации экземпляра отправителя. Служебная шина связывает ее с некоторыми сообщениями об ошибках, чтобы упростить корреляцию ошибок. Если значение не указано, будет создан уникальный идентификатор.

socket_timeout
float

Время в секундах, в течение времени ожидания базового сокета в подключении при отправке и получении данных до истечения времени ожидания. Значение по умолчанию — 0,2 для TransportType.Amqp и 1 для TransportType.AmqpOverWebsocket. Если возникают ошибки подключения из-за истечения времени ожидания записи, может потребоваться передать значение, превышающее значение по умолчанию.

Возвращаемое значение

Отправитель раздела.

Возвращаемый тип

Примеры

Создайте новый экземпляр ServiceBusSender из ServiceBusClient.


   import os
   from azure.servicebus import ServiceBusClient
   servicebus_connection_str = os.environ['SERVICEBUS_CONNECTION_STR']
   topic_name = os.environ['SERVICEBUS_TOPIC_NAME']
   servicebus_client = ServiceBusClient.from_connection_string(conn_str=servicebus_connection_str)
   with servicebus_client:
       topic_sender = servicebus_client.get_topic_sender(topic_name=topic_name)