ServiceBusClient Sınıf
ServiceBusClient sınıfı, ServiceBusSender ve ServiceBusReceiver'ı almak için üst düzey bir arabirim tanımlar.
- Devralma
-
builtins.objectServiceBusClient
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
Service Bus ad alanının tam konak adı. Ad alanı biçimi: .servicebus.windows.net.
- credential
- TokenCredential veya AzureSasCredential veya AzureNamedKeyCredential
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
- 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
- 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.
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
- 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
- subscription_name
- str
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.
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
- 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)