ServiceBusClient Sınıf

ServiceBusClient sınıfı, ServiceBusSender ve ServiceBusReceiver'ı almak için üst düzey bir arabirim tanımlar.

Devralma
builtins.object
ServiceBusClient

Oluşturucu

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)

Parametreler

fully_qualified_namespace
str
Gerekli

Service Bus ad alanının tam konak adı. Ad alanı biçimi: .servicebus.windows.net.

credential
TokenCredential veya AzureSasCredential veya AzureNamedKeyCredential
Gerekli

Belirteçleri almak için belirli bir arabirim uygulayan kimlik doğrulaması için kullanılan kimlik bilgisi nesnesi. Azure-identity kitaplığı tarafından oluşturulan kimlik bilgisi nesnelerini ve *get_token(self, kapsamlar) yöntemini uygulayan nesneleri kabul eder veya alternatif olarak bir AzureSasCredential da sağlanabilir.

logging_enable
bool

Günlükçüye ağ izleme günlüklerinin çıkışının yapılıp yapılmaydığı. Varsayılan değer False'tur.

transport_type
TransportType

Service Bus hizmetiyle iletişim kurmak için kullanılacak aktarım protokolünün türü. Varsayılan değer TransportType.Amqp'dir ve bu durumda bağlantı noktası 5671 kullanılır. Ağ ortamında 5671 numaralı bağlantı noktası kullanılamıyorsa/engelleniyorsa, iletişim için 443 numaralı bağlantı noktasını kullanan TransportType.AmqpOverWebsocket kullanılabilir.

http_proxy
Dict

HTTP proxy ayarları. Bu, şu anahtarlara sahip bir sözlük olmalıdır: 'proxy_hostname' (str değeri) ve 'proxy_port' (int değeri). Ayrıca aşağıdaki anahtarlar da mevcut olabilir: 'username', 'password'.

user_agent
str

Belirtilirse, bu yerleşik kullanıcı aracısı dizesinin önüne eklenir.

retry_total
int

Hata oluştuğunda başarısız olan bir işlemi yineleme denemelerinin toplam sayısı. Varsayılan değer 3’tür.

retry_backoff_factor
float

Yeniden denemeler arasında saniye biriminde delta geri alma iç. Varsayılan değer 0,8'dir.

retry_backoff_max
float

saniye birimi cinsinden maksimum geri dönüş aralığı. Varsayılan değer 120'dir.

retry_mode
str

Yeniden deneme girişimleri arasındaki gecikme davranışı. Desteklenen değerler "sabit" veya "üstel"dir; burada varsayılan değer "üstel"dir.

custom_endpoint_address
str

Service Bus hizmetiyle bağlantı kurmak için kullanılacak özel uç nokta adresi, ağ isteklerinin konak ortamı için gereken tüm uygulama ağ geçitleri veya diğer yollar üzerinden yönlendirilmesine olanak tanır. Varsayılan değer Yok'tur. Biçim "sb://< custom_endpoint_hostname>:<custom_endpoint_port>" şeklinde olacaktır. bağlantı noktası custom_endpoint_address belirtilmezse, varsayılan olarak 443 numaralı bağlantı noktası kullanılır.

connection_verify
str

Bağlantı uç noktasının kimliğini doğrulamak için kullanılan SSL sertifikasının özel CA_BUNDLE dosyasının yolu. Varsayılan değer Hiçbiri'dir ve bu durumda certifi.where() kullanılır.

uamqp_transport
bool

Temel alınan aktarım olarak uamqp kitaplığının kullanılıp kullanılmaymayacağı. Varsayılan değer False'tur ve temel alınan aktarım olarak Pure Python AMQP kitaplığı kullanılır.

Örnekler

ServiceBusClient'ın yeni bir örneğini oluşturun.


   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()
   )

Değişkenler

fully_qualified_namespace
str

Service Bus ad alanının tam konak adı. Ad alanı biçimi: .servicebus.windows.net.

Yöntemler

close

ServiceBus istemcisini kapatın. Oluşturulan tüm gönderenler, alıcılar ve temel alınan bağlantı kapatılır.

from_connection_string

Bir bağlantı dizesinden ServiceBusClient oluşturun.

get_queue_receiver

Belirli bir kuyruk için ServiceBusReceiver alın.

get_queue_sender

Belirli bir kuyruk için ServiceBusSender alın.

get_subscription_receiver

Konu başlığı altındaki belirli bir abonelik için ServiceBusReceiver alın.

get_topic_sender

Belirli bir konu için ServiceBusSender'ı edinin.

close

ServiceBus istemcisini kapatın. Oluşturulan tüm gönderenler, alıcılar ve temel alınan bağlantı kapatılır.

close() -> None

Döndürülenler

Hiçbiri

from_connection_string

Bir bağlantı dizesinden ServiceBusClient oluşturun.

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

Parametreler

conn_str
str
Gerekli

Service Bus'ın bağlantı dizesi.

logging_enable
bool

Günlükçüye ağ izleme günlüklerinin çıkışının yapılıp yapılmaydığı. Varsayılan değer False'tur.

transport_type
TransportType

Service Bus hizmetiyle iletişim kurmak için kullanılacak aktarım protokolünün türü. Varsayılan değer TransportType.Amqp'dir ve bu durumda bağlantı noktası 5671 kullanılır. Ağ ortamında 5671 numaralı bağlantı noktası kullanılamıyorsa/engelleniyorsa, iletişim için 443 numaralı bağlantı noktasını kullanan TransportType.AmqpOverWebsocket kullanılabilir.

http_proxy
Dict

HTTP proxy ayarları. Bu, şu anahtarlara sahip bir sözlük olmalıdır: 'proxy_hostname' (str değeri) ve 'proxy_port' (int değeri). Ayrıca aşağıdaki anahtarlar da mevcut olabilir: 'username', 'password'.

user_agent
str

Belirtilirse, bu yerleşik kullanıcı aracısı dizesinin önüne eklenir.

retry_total
int

Hata oluştuğunda başarısız olan bir işlemi yineleme denemelerinin toplam sayısı. Varsayılan değer 3’tür.

retry_backoff_factor
float

Yeniden denemeler arasında saniye biriminde delta geri alma iç. Varsayılan değer 0,8'dir.

retry_backoff_max
float

saniye birimi cinsinden maksimum geri dönüş aralığı. Varsayılan değer 120'dir.

retry_mode
str

Yeniden deneme girişimleri arasındaki gecikme davranışı. Desteklenen değerler 'sabit' veya 'üstel'dir; burada varsayılan değer 'üstel'dir.

custom_endpoint_address
str

Service Bus hizmetiyle bağlantı kurmak için kullanılacak özel uç nokta adresi, ağ isteklerinin konak ortamı için gereken tüm uygulama ağ geçitleri veya diğer yollar üzerinden yönlendirilmesine olanak tanır. Varsayılan değer Yok'tur. Biçim "sb://< custom_endpoint_hostname>:<custom_endpoint_port>" şeklinde olacaktır. bağlantı noktası custom_endpoint_address belirtilmezse, varsayılan olarak 443 numaralı bağlantı noktası kullanılır.

connection_verify
str

Bağlantı uç noktasının kimliğini doğrulamak için kullanılan SSL sertifikasının özel CA_BUNDLE dosyasının yolu. Varsayılan değer Hiçbiri'dir ve bu durumda certifi.where() kullanılır.

uamqp_transport
bool

Temel alınan aktarım olarak uamqp kitaplığının kullanılıp kullanılmaymayacağı. Varsayılan değer False'tur ve temel alınan aktarım olarak Pure Python AMQP kitaplığı kullanılır.

Dönüş türü

Örnekler

Bağlantı dizesinden yeni bir ServiceBusClient örneği oluşturun.


   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

Belirli bir kuyruk için ServiceBusReceiver alın.

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

Parametreler

queue_name
str
Gerekli

İstemcinin bağlandığınız belirli Service Bus Kuyruğunun yolu.

session_id
str veya <xref:azure.servicebus.NEXT_AVAILABLE_SESSION>

Alınacak belirli bir oturum. Bu, oturumlu bir kuyruk için belirtilmelidir, aksi takdirde Hiçbiri olmalıdır. Bir sonraki kullanılabilir oturumdan ileti almak için bunu ~azure.servicebus.NEXT_AVAILABLE_SESSION olarak ayarlayın.

sub_queue
str veya ServiceBusSubQueue veya None

Belirtilirse, bu alıcının bağlanacağı alt sorgu. Bu, DEAD_LETTER ve TRANSFER_DEAD_LETTER kuyruklarını içerir, hiçbir alıcıya teslim edilmeyecek iletileri veya işlenmeyecek iletileri tutar. Varsayılan değer Yok'tur, yani birincil kuyruğa bağlanın. ServiceBusSubQueue sabit tablosundan veya eşdeğer dize değerlerinden "deadletter" ve "transferdeadletter" değerleri atanabilir.

receive_mode
Union[ServiceBusReceiveMode, str]

varlıktan iletilerin alınacağı receive_mode. İki seçenek PEEK_LOCK ve RECEIVE_AND_DELETE. PEEK_LOCK ile alınan iletiler kuyruktan kaldırılmadan önce belirli bir kilit süresi içinde kapatılmalıdır. RECEIVE_AND_DELETE ile alınan iletiler kuyruktan hemen kaldırılır ve istemci iletiyi işleyemezse daha sonra reddedilemez veya yeniden alınamaz. Varsayılan receive_mode PEEK_LOCK.

max_wait_time
Optional[float]

Alınan iletiler arasındaki saniyeler içinde zaman aşımı oluşur ve alıcı otomatik olarak almayı durdurur. Varsayılan değer Yok'tur, yani zaman aşımı yoktur. Yazma zaman aşımı nedeniyle bağlantı hataları oluşuyorsa, bağlantı zaman aşımı değerinin ayarlanması gerekebilir. Daha fazla ayrıntı için isteğe bağlı socket_timeout parametresine bakın.

auto_lock_renewer
Optional[AutoLockRenewer]

İletilerin alındı bilgisi üzerine otomatik olarak kaydedilmesi için ~azure.servicebus.AutoLockRenewer sağlanabilir. Alıcı bir oturum alıcısıysa, bunun yerine oturuma uygulanır.

prefetch_count
int

Hizmete yapılan her istekle önbelleğe alınacak en fazla ileti sayısı. Bu ayar yalnızca gelişmiş performans ayarlama içindir. Bu değerin artırılması ileti aktarım hızı performansını artırır ancak iletilerin yeterince hızlı işlenmediği takdirde önbelleğe alınırken süresinin dolma olasılığını artırır. Varsayılan değer 0'dır, yani iletiler hizmetten alınır ve birer birer işlenir. prefetch_count 0 olması durumunda ServiceBusReceiver.receive , hizmete yönelik isteğinde max_message_count önbelleğe almayı (sağlanırsa) dener.

client_identifier
str

Alıcı örneğini benzersiz olarak tanımlamak için dize tabanlı tanımlayıcı. Service Bus, hataların daha kolay ilişkilendirilmesi için bunu bazı hata iletileriyle ilişkilendirir. Belirtilmezse, benzersiz bir kimlik oluşturulur.

socket_timeout
float

Zaman aşımına uğramadan önce bağlantıdaki temel yuvanın veri gönderirken ve alırken beklemesi gereken saniye cinsinden süre. Varsayılan değer TransportType.Amqp için 0.2 ve TransportType.AmqpOverWebsocket için 1'dir. Yazma zaman aşımı nedeniyle bağlantı hataları oluşuyorsa, varsayılan değerden daha büyük bir değerin geçirilmesi gerekebilir.

Dönüş türü

Örnekler

ServiceBusClient'tan yeni bir ServiceBusReceiver örneği oluşturun.


   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

Belirli bir kuyruk için ServiceBusSender alın.

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

Parametreler

queue_name
str
Gerekli

İstemcinin bağlandığınız belirli Service Bus Kuyruğunun yolu.

client_identifier
str

Gönderen örneğini benzersiz olarak tanımlamak için dize tabanlı tanımlayıcı. Service Bus, hataların daha kolay ilişkilendirilmesi için bunu bazı hata iletileriyle ilişkilendirir. Belirtilmezse, benzersiz bir kimlik oluşturulur.

socket_timeout
float

Zaman aşımına uğramadan önce bağlantıdaki temel yuvanın veri gönderirken ve alırken beklemesi gereken saniye cinsinden süre. Varsayılan değer TransportType.Amqp için 0.2 ve TransportType.AmqpOverWebsocket için 1'dir. Yazma zaman aşımı nedeniyle bağlantı hataları oluşuyorsa, varsayılan değerden daha büyük bir değerin geçirilmesi gerekebilir.

Döndürülenler

Kuyruk Göndereni.

Dönüş türü

Örnekler

ServiceBusClient'tan yeni bir ServiceBusSender örneği oluşturun.


   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

Konu başlığı altındaki belirli bir abonelik için ServiceBusReceiver alın.

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

Parametreler

topic_name
str
Gerekli

İstemcinin bağlı olduğu belirli Service Bus Konusunun adı.

subscription_name
str
Gerekli

Verilen Service Bus Konusu altındaki belirli Service Bus Aboneliğinin adı.

session_id
str veya <xref:azure.servicebus.NEXT_AVAILABLE_SESSION>

Alınacak belirli bir oturum. Bu, oturumlu bir abonelik için belirtilmelidir, aksi takdirde Hiçbiri olmalıdır. Bir sonraki kullanılabilir oturumdan ileti almak için bunu ~azure.servicebus.NEXT_AVAILABLE_SESSION olarak ayarlayın.

sub_queue
str veya ServiceBusSubQueue veya None

Belirtilirse, bu alıcının bağlanacağı alt sorgu. Bu, DEAD_LETTER ve TRANSFER_DEAD_LETTER kuyruklarını içerir; herhangi bir alıcıya teslim edilmeyecek iletileri veya işlenmeyecek iletileri tutar. Varsayılan değer Yok'tır; yani birincil kuyruğa bağlanın. ServiceBusSubQueue sabit kutusundan veya eşdeğer dize değerlerinden "deadletter" ve "transferdeadletter" değerleri atanabilir.

receive_mode
Union[ServiceBusReceiveMode, str]

varlıktan iletilerin alınacağı receive_mode. İki seçenek PEEK_LOCK ve RECEIVE_AND_DELETE. PEEK_LOCK ile alınan iletilerin abonelikten kaldırılmadan önce belirli bir kilit süresi içinde kapatılması gerekir. RECEIVE_AND_DELETE ile alınan iletiler abonelikten hemen kaldırılır ve istemci iletiyi işleyemezse daha sonra reddedilemez veya yeniden alınamaz. Varsayılan receive_mode PEEK_LOCK.

max_wait_time
Optional[float]

Alıcı otomatik olarak almayı durduracak olan alınan iletiler arasındaki saniyeler içinde zaman aşımı. Varsayılan değer Yok'tır, yani zaman aşımı yoktur. Yazma zaman aşımı nedeniyle bağlantı hataları oluşuyorsa, bağlantı zaman aşımı değerinin ayarlanması gerekebilir. Daha fazla ayrıntı için isteğe bağlı socket_timeout parametresine bakın.

auto_lock_renewer
Optional[AutoLockRenewer]

İletilerin alındı bilgisi üzerine otomatik olarak kaydedilmesi için ~azure.servicebus.AutoLockRenewer sağlanabilir. Alıcı bir oturum alıcısıysa, bunun yerine oturuma uygulanır.

prefetch_count
int

Hizmete yönelik her istekle önbelleğe alınacak en fazla ileti sayısı. Bu ayar yalnızca gelişmiş performans ayarlama içindir. Bu değerin artırılması ileti aktarım hızı performansını artırır, ancak iletilerin yeterince hızlı işlenmediği takdirde önbelleğe alınırken süresinin dolma olasılığını artırır. Varsayılan değer 0'dır, yani iletiler hizmetten alınır ve teker teker işlenir. prefetch_count 0 olması durumunda ServiceBusReceiver.receive , hizmete yönelik isteğinde max_message_count önbelleğe almayı (sağlandıysa) dener.

client_identifier
str

Alıcı örneğini benzersiz olarak tanımlamak için dize tabanlı tanımlayıcı. Service Bus, hataların daha kolay bağıntılanması için bunu bazı hata iletileriyle ilişkilendirir. Belirtilmezse, benzersiz bir kimlik oluşturulur.

socket_timeout
float

Zaman aşımına uğramadan önce bağlantıdaki temel yuvanın veri gönderirken ve alırken beklemesi gereken saniye cinsinden süre. Varsayılan değer TransportType.Amqp için 0.2 ve TransportType.AmqpOverWebsocket için 1'dir. Yazma zaman aşımı nedeniyle bağlantı hataları oluşuyorsa, varsayılan değerden daha büyük bir değerin geçirilmesi gerekebilir.

Dönüş türü

Örnekler

ServiceBusClient'dan yeni bir ServiceBusReceiver örneği oluşturun.


   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

Belirli bir konu için ServiceBusSender'ı edinin.

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

Parametreler

topic_name
str
Gerekli

İstemcinin bağlı olduğu belirli Service Bus Konusunun yolu.

client_identifier
str

Gönderen örneğini benzersiz olarak tanımlamak için dize tabanlı bir tanımlayıcı. Service Bus, hataların daha kolay bağıntılanması için bunu bazı hata iletileriyle ilişkilendirir. Belirtilmezse, benzersiz bir kimlik oluşturulur.

socket_timeout
float

Zaman aşımına uğramadan önce bağlantıdaki temel yuvanın veri gönderirken ve alırken beklemesi gereken saniye cinsinden süre. Varsayılan değer TransportType.Amqp için 0.2 ve TransportType.AmqpOverWebsocket için 1'dir. Yazma zaman aşımı nedeniyle bağlantı hataları oluşuyorsa, varsayılan değerden daha büyük bir değerin geçirilmesi gerekebilir.

Döndürülenler

Konu göndereni.

Dönüş türü

Örnekler

ServiceBusClient'dan yeni bir ServiceBusSender örneği oluşturun.


   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)