ServiceBusClient Класс
Класс ServiceBusClient определяет высокоуровневый интерфейс для получения ServiceBusSender и ServiceBusReceiver.
- Наследование
-
builtins.objectServiceBusClient
Конструктор
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
Параметры
- 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.
Время ожидания в секундах между полученными сообщениями, после которого получатель автоматически прекращает получение. Значение по умолчанию — 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.
Время ожидания в секундах между полученными сообщениями, после которого получатель автоматически прекращает получение. Значение по умолчанию — 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)