EventHubProducerClient Sınıf

EventHubProducerClient sınıfı, olayları Azure Event Hubs hizmetine göndermek için üst düzey bir arabirim tanımlar.

Devralma
azure.eventhub.aio._client_base_async.ClientBaseAsync
EventHubProducerClient

Oluşturucu

EventHubProducerClient(fully_qualified_namespace: str, eventhub_name: str, credential: CredentialTypes, *, buffered_mode: bool = False, on_error: Callable[[List[EventData | AmqpAnnotatedMessage], str | None, Exception], Awaitable[None]] | None = None, on_success: Callable[[List[EventData | AmqpAnnotatedMessage], str | None], Awaitable[None]] | None = None, max_buffer_length: int | None = None, max_wait_time: float | None = None, **kwargs: Any)

Parametreler

fully_qualified_namespace
str
Gerekli

Event Hubs ad alanı için tam konak adı. Bu büyük olasılıkla .servicebus.windows.net

eventhub_name
str
Gerekli

İstemcinin bağlanacak belirli Olay Hub'ının yolu.

credential
AsyncTokenCredential 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 , veya kimlik bilgisi nesnelerini ve *get_token(self, scopes) yöntemini uygulayan nesneleri kabul EventHubSharedKeyCredentialeder.

buffered_mode
bool

True ise, üretici istemcisi olayları bir arabellekte toplar, verimli bir şekilde toplu işler ve yayımlar. Varsayılan değer False'tur.

on_success
Optional[Callable[[<xref:SendEventTypes>, Optional[str]], Awaitable[None]]]

Toplu iş başarıyla yayımlandıktan sonra çağrılacak geri çağırma. Geri çağırma iki parametre alır:

  • events: Başarıyla yayımlanan olayların listesi

  • partition_id: Listedeki olayların yayımlandığı bölüm kimliği.

Geri çağırma işlevi şu şekilde tanımlanmalıdır: on_success(olaylar, partition_id). buffered_mode True olduğunda, buffered_mode False ise isteğe bağlı olduğunda gereklidir.

on_error
Optional[Callable[[<xref:SendEventTypes>, Optional[str], Exception], Awaitable[None]]]

Toplu iş yayımlanamadığında çağrılacak geri çağırma. buffered_mode içinde True olduğunda gereklidir, buffered_mode False ise isteğe bağlıdır. Geri çağırma işlevi şu şekilde tanımlanmalıdır: on_error(olaylar, partition_id, hata); burada:

  • events: Yayımlanamayan olayların listesi,

  • partition_id: Listedeki olayların ve'de yayımlanmaya çalışıldığı bölüm kimliği

  • error: Gönderme hatasıyla ilgili özel durum.

buffered_mode False ise, on_error geri çağırma isteğe bağlıdır ve hatalar aşağıdaki gibi işlenir:

  • Üretici istemci örneği oluşturma sırasında bir on_error geri çağırma geçirilirse,

    ardından hata bilgileri on_error geri çağırmaya geçirilir ve bu da çağrılır.

  • İstemci örneği oluşturma sırasında bir on_error geri çağırma geçirilmediyse,

    ardından hata varsayılan olarak oluşturulur.

buffered_mode True ise, on_error geri çağırma gerekir ve hatalar şu şekilde işlenir:

  • Olaylar verilen zaman aşımı içinde sıraya alınamazsa, doğrudan bir hata oluşur.

  • Olaylar başarıyla sıraya alındıktan sonra gönderilemiyorsa , on_error geri çağırma çağrılır.

max_buffer_length
int

Yalnızca arabelleğe alınan mod. Temizleme tetiklenmeden önce arabelleğe alınabilecek bölüm başına toplam olay sayısı. Arabelleğe alınan modda varsayılan değer 1500'dür.

max_wait_time
Optional[float]

Yalnızca arabelleğe alınan mod. Yayımlamadan önce arabellekteki olaylarla bir toplu işlemin derlenmesini bekleme süresi. Arabelleğe alınan modda varsayılan değer 1'dir.

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.

auth_timeout
float

Saniye cinsinden bir belirtecin hizmet tarafından yetkilendirilmesini bekleme süresi. Varsayılan değer 60 saniyedir. 0 olarak ayarlanırsa, istemciden hiçbir zaman aşımı uygulanmaz.

user_agent
str

Belirtilirse, bu 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

İkinci denemeden sonra girişimler arasında uygulanacak bir geri alma faktörü (çoğu hata gecikme olmadan ikinci bir denemeyle hemen çözülür). Sabit modda, yeniden deneme ilkesi {backoff factor} için her zaman uyku moduna geçer. 'Üstel' modda, yeniden deneme ilkesi şu süre boyunca uyku moduna geçer: {backoff factor} * (2 ** ({toplam yeniden deneme sayısı} - 1)) saniye. backoff_factor 0,1 ise yeniden denemeler arasında [0,0s, 0,2s, 0,4s, ...] için yeniden deneme uyku moduna alır. Varsayılan değer 0,8'dir.

retry_backoff_max
float

İzin süresi üst sınırı. Varsayılan değer 120 saniyedir (2 dakika).

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.

idle_timeout
float

Saniyeler içinde zaman aşımı, etkinlik yoksa bu istemci temel bağlantıyı kapatır. Varsayılan olarak değer Yok'tur, yani hizmet tarafından başlatılmadığı sürece istemcinin etkinlik dışı kalma nedeniyle kapanmayacağı anlamına gelir.

transport_type
TransportType

Event Hubs 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'.

custom_endpoint_address
Optional[str]

Event Hubs hizmetine 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
Optional[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.

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 EventHubsConnectionError hataları oluşuyorsa, varsayılan değerden daha büyük bir değerin geçirilmesi gerekebilir. Bu gelişmiş kullanım senaryoları içindir ve normalde varsayılan değer yeterli olmalıdır.

Örnekler

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


   import os
   from azure.eventhub.aio import EventHubProducerClient, EventHubSharedKeyCredential

   fully_qualified_namespace = os.environ['EVENT_HUB_HOSTNAME']
   eventhub_name = os.environ['EVENT_HUB_NAME']
   shared_access_policy = os.environ['EVENT_HUB_SAS_POLICY']
   shared_access_key = os.environ['EVENT_HUB_SAS_KEY']

   producer = EventHubProducerClient(fully_qualified_namespace=fully_qualified_namespace,
                                     eventhub_name=eventhub_name,
                                     credential=EventHubSharedKeyCredential(shared_access_policy, shared_access_key))

Yöntemler

close

Temel alınan AMQP bağlantısı ve bağlantılarını üretici istemcisini kapatın.

create_batch

max_size_in_bytes tarafından kısıtlanan tüm içeriğin en büyük boyutuna sahip bir EventDataBatch nesnesi oluşturun.

max_size_in_bytes, hizmet tarafından tanımlanan izin verilen maksimum ileti boyutundan büyük olmamalıdır.

flush

Yalnızca arabelleğe alınan mod. İstemci arabelleğe alınan modda çalışıyorsa hemen gönderilecek arabellekteki olayları boşaltın.

from_connection_string

bir bağlantı dizesi EventHubProducerClient oluşturun.

get_buffered_event_count

Arabelleğe alınan ve belirli bir bölüm için yayımlanmayı bekleyen olayların sayısı. Arabelleğe alınamayan modda Hiçbiri döndürür. NOT: Olay arabelleği bir arka plan eş yordamda işlenir, bu nedenle bu API tarafından bildirilen arabellekteki olayların sayısı yalnızca yaklaşık olarak kabul edilmelidir ve yalnızca hata ayıklamada kullanılması önerilir. Arabelleğe alınmamış olay içermeyen bir bölüm kimliği için, bölüm kimliğinin Olay Hub'ının içinde olup olmadığına bakılmaksızın 0 döndürülür.

get_eventhub_properties

Olay Hub'ının özelliklerini alma.

Döndürülen sözlükteki anahtarlar şunlardır:

  • eventhub_name (str)

  • created_at (UTC datetime.datetime)

  • partition_ids (list[str])

get_partition_ids

Olay Hub'ının bölüm kimliklerini alın.

get_partition_properties

Belirtilen bölümün özelliklerini alın.

Özellikler sözlüğündeki anahtarlar şunlardır:

  • eventhub_name (str)

  • id (str)

  • beginning_sequence_number (int)

  • last_enqueued_sequence_number (int)

  • last_enqueued_offset (str)

  • last_enqueued_time_utc (UTC datetime.datetime)

  • is_empty (bool)

send_batch

Bir grup olay verisi gönderir. Varsayılan olarak, onay alınana veya işlem zaman aşımına ulaşana kadar yöntemi engeller. EventHubProducerClient arabelleğe alınmış modda çalışacak şekilde yapılandırılmışsa, yöntemi olayları yerel arabelleğe alır ve döndürür. Yapımcı arka planda otomatik gönderme yapar.

buffered_mode False ise, on_error geri çağırma isteğe bağlıdır ve hatalar aşağıdaki gibi işlenir:

  • Üretici istemci örneği oluşturma sırasında bir on_error geri çağırma geçirilirse,

    ardından hata bilgileri on_error geri çağırmaya geçirilir ve bu da çağrılır.

  • İstemci örneği oluşturma sırasında bir on_error geri çağırma geçirilmediyse,

    ardından hata varsayılan olarak oluşturulur.

buffered_mode True ise, on_error geri çağırma gerekir ve hatalar şu şekilde işlenir:

  • Olaylar verilen zaman aşımı içinde sıraya alınamazsa, doğrudan bir hata oluşur.

  • Olaylar başarıyla sıraya alındıktan sonra gönderilemiyorsa , on_error geri çağırma çağrılır.

Arabelleğe alınan modda, toplu iş gönderme işlemi değişmeden kalır ve tek bir birim olarak gönderilir. Toplu iş yeniden düzenlenmeyecek. Bu, olay göndermede yetersizliğe neden olabilir.

EventData veya AmqpAnnotatedMessage'ın sınırlı bir listesini gönderiyorsanız ve bunun olay hub'ı çerçeve boyutu sınırı içinde olduğunu biliyorsanız, bunları bir send_batch çağrısıyla gönderebilirsiniz. Aksi takdirde, EventDataBatch oluşturmak ve boyut sınırına kadar toplu işleme EventData veya AmqpAnnotatedMessage eklemek için kullanın create_batch ve ardından toplu işlemi göndermek için bu yöntemi çağırın.

send_event

Olay verileri gönderir. Varsayılan olarak, onay alınana veya işlem zaman aşımına ulaşana kadar yöntemi engeller. EventHubProducerClient arabelleğe alınmış modda çalışacak şekilde yapılandırılmışsa, yöntemi olayı yerel arabelleğe alır ve döndürür. Üretici, arka planda otomatik toplu işlem ve gönderme işlemi yapar.

buffered_mode False ise, on_error geri çağırma isteğe bağlıdır ve hatalar şu şekilde işlenir: * Üretici istemci örneği oluşturma sırasında bir on_error geri çağırma geçirilirse,

       then error information will be passed to the *on_error* callback, which will then be called.

  * If an *on_error* callback is not passed in during client instantiation,

       then the error will be raised by default.

buffered_mode True ise, on_error geri çağırma gerekir ve hatalar şu şekilde işlenir: * Olaylar belirtilen zaman aşımı içinde sıraya alınamazsa, doğrudan bir hata oluşur.

  * If events fail to send after enqueuing successfully, the *on_error* callback will be called.

close

Temel alınan AMQP bağlantısı ve bağlantılarını üretici istemcisini kapatın.

async close(*, flush: bool = True, **kwargs: Any) -> None

Parametreler

flush
bool

Yalnızca arabelleğe alınan mod. True olarak ayarlanırsa arabellekteki olaylar hemen gönderilir. Varsayılan değer True'dur.

timeout
float veya None

Yalnızca arabelleğe alınan mod. Yapımcıyı kapatmak için zaman aşımı. Varsayılan Değer Yok'tur ve bu da zaman aşımı olmadığı anlamına gelir.

Dönüş türü

Özel durumlar

Arabellek boşaltılırken hata oluştuysa, boşaltma Doğru olarak ayarlandıysa veya arabelleğe alınan modda temel alınan AMQP bağlantılarını kapatın.

Örnekler

İşleyiciyi kapatın.


   import os
   from azure.eventhub.aio import EventHubProducerClient
   from azure.eventhub import EventData

   event_hub_connection_str = os.environ['EVENT_HUB_CONN_STR']
   eventhub_name = os.environ['EVENT_HUB_NAME']

   producer = EventHubProducerClient.from_connection_string(
       conn_str=event_hub_connection_str,
       eventhub_name=eventhub_name  # EventHub name should be specified if it doesn't show up in connection string.
   )
   try:
       event_data_batch = await producer.create_batch()
       while True:
           try:
               event_data_batch.add(EventData('Message inside EventBatchData'))
           except ValueError:
               # The EventDataBatch object reaches its max_size.
               # You can send the full EventDataBatch object and create a new one here.
               break
       await producer.send_batch(event_data_batch)
   finally:
       # Close down the producer handler.
       await producer.close()

create_batch

max_size_in_bytes tarafından kısıtlanan tüm içeriğin en büyük boyutuna sahip bir EventDataBatch nesnesi oluşturun.

max_size_in_bytes, hizmet tarafından tanımlanan izin verilen maksimum ileti boyutundan büyük olmamalıdır.

async create_batch(*, partition_id: str | None = None, partition_key: str | None = None, max_size_in_bytes: int | None = None) -> EventDataBatch

Dönüş türü

Özel durumlar

Arabellek boşaltılırken hata oluştuysa, boşaltma Doğru olarak ayarlandıysa veya arabelleğe alınan modda temel alınan AMQP bağlantılarını kapatın.

Örnekler

Sınırlı boyutta EventDataBatch nesnesi oluşturma


       from azure.eventhub import EventData
       event_data_batch = await producer.create_batch()
       while True:
           try:
               event_data_batch.add(EventData('Message inside EventBatchData'))
           except ValueError:
               # The EventDataBatch object reaches its max_size.
               # You can send the full EventDataBatch object and create a new one here.
               break

flush

Yalnızca arabelleğe alınan mod. İstemci arabelleğe alınan modda çalışıyorsa hemen gönderilecek arabellekteki olayları boşaltın.

async flush(**kwargs: Any) -> None

Parametreler

timeout
float veya None

Arabelleğe alınan olayları temizlemek için zaman aşımı, varsayılan değer Yok'tur ve bu da zaman aşımı olmadığı anlamına gelir.

Dönüş türü

Özel durumlar

Üretici arabelleğe alınan modda verilen zaman aşımı içinde arabelleği temizleyemezse.

from_connection_string

bir bağlantı dizesi EventHubProducerClient oluşturun.

from_connection_string(conn_str: str, *, eventhub_name: str | None = None, buffered_mode: bool = False, on_error: Callable[[List[EventData | AmqpAnnotatedMessage], str | None, Exception], Awaitable[None]] | None = None, on_success: Callable[[List[EventData | AmqpAnnotatedMessage], str | None], Awaitable[None]] | None = None, max_buffer_length: int | None = None, max_wait_time: float | None = None, logging_enable: bool = False, http_proxy: Dict[str, str | int] | None = None, auth_timeout: float = 60, user_agent: str | None = None, retry_total: int = 3, transport_type: TransportType = TransportType.Amqp, **kwargs: Any) -> EventHubProducerClient

Parametreler

conn_str
str
Gerekli

Olay Hub'ının bağlantı dizesi.

eventhub_name
str

İstemcinin bağlanacak olay hub'ının yolu.

buffered_mode
bool

True ise, üretici istemcisi olayları bir arabellekte toplar, verimli bir şekilde toplu işler ve yayımlar. Varsayılan değer False'tur.

on_success
Optional[Callable[[<xref:SendEventTypes>, Optional[str]], Awaitable[None]]]

Toplu iş başarıyla yayımlandıktan sonra çağrılacak geri çağırma. Geri çağırma iki parametre alır:

  • events: Başarıyla yayımlanan olayların listesi

  • partition_id: Listedeki olayların yayımlandığı bölüm kimliği.

Geri çağırma işlevi şöyle tanımlanmalıdır: on_success(olaylar, partition_id). buffered_mode True olduğunda, buffered_mode False ise isteğe bağlı olduğunda gereklidir.

on_error
Optional[Callable[[<xref:SendEventTypes>, Optional[str], Exception], Awaitable[None]]]

Toplu iş yayımlanamadığında çağrılacak geri çağırma. Geri çağırma işlevi şöyle tanımlanmalıdır: on_error(olaylar, partition_id, hata); burada:

  • events: Yayımlanamayan olayların listesi,

  • partition_id: Listedeki olayların ve'de yayımlanmaya çalışıldığı bölüm kimliği

  • error: Gönderme hatasıyla ilgili özel durum.

buffered_mode False ise, on_error geri çağırma isteğe bağlıdır ve hatalar aşağıdaki gibi işlenir:

  • Üretici istemci örneği oluşturma sırasında bir on_error geri çağırma geçirilirse,

    daha sonra hata bilgileri on_error geri çağırmaya geçirilir ve bu da çağrılır.

  • İstemci örneği oluşturma sırasında bir on_error geri çağırma geçirilmediyse,

    ardından hata varsayılan olarak oluşturulur.

buffered_mode True ise, on_error geri çağırma gereklidir ve hatalar aşağıdaki gibi işlenir:

  • Olaylar verilen zaman aşımı içinde sıraya alınamazsa, doğrudan bir hata oluşur.

  • Olaylar başarıyla sıraladıktan sonra gönderilemiyorsa , on_error geri çağırma çağrılır.

max_buffer_length
int

Yalnızca arabelleğe alınan mod. Temizleme tetiklenmeden önce arabelleğe alınabilecek bölüm başına toplam olay sayısı. Varsayılan değer arabelleğe alınan modda 1500'dür.

max_wait_time
Optional[float]

Yalnızca arabelleğe alınan mod. Yayımlamadan önce toplu işlemin arabellekteki olaylarla derlenmesini bekleme süresi. Arabelleğe alınan modda varsayılan değer 1'dir.

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.

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: 'kullanıcı adı', 'parola'.

auth_timeout
float

Bir belirtecin hizmet tarafından yetkilendirilmesini beklemek için saniye cinsinden süre. Varsayılan değer 60 saniyedir. 0 olarak ayarlanırsa, istemciden zaman aşımı uygulanmaz.

user_agent
str

Belirtilirse, bu 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

İkinci denemeden sonraki denemeler arasında uygulanacak geri alma faktörü (çoğu hata gecikme olmadan ikinci bir denemeyle hemen çözülür). Sabit modda, yeniden deneme ilkesi {backoff factor} için her zaman uyku moduna geçer. 'Üstel' modda, yeniden deneme ilkesi şu süre boyunca uyku moduna geçer: {backoff factor} * (2 ** ({toplam yeniden deneme sayısı} - 1)) saniye. backoff_factor 0,1 ise yeniden denemeler arasında [0,0s, 0,2s, 0,4s, ...] için yeniden deneme uyku moduna girer. Varsayılan değer 0,8'dir.

retry_backoff_max
float

İzin süresi üst sınırı. Varsayılan değer 120 saniyedir (2 dakika).

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.

idle_timeout
float

Saniyeler içinde zaman aşımı, etkinlik yoksa bu istemci temel bağlantıyı kapatır. Varsayılan olarak değer Yok'tır, yani hizmet tarafından başlatılmadığı sürece istemcinin etkinlik dışı kalma nedeniyle kapanmayacağı anlamına gelir.

transport_type
TransportType

Event Hubs hizmetiyle iletişim kurmak için kullanılacak aktarım protokolünün türü. Varsayılan değer TransportType.Amqp'tir ve bu durumda 5671 numaralı bağlantı noktası 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.

custom_endpoint_address
Optional[str]

Ağ isteklerinin herhangi bir uygulama ağ geçidi veya konak ortamı için gereken diğer yollar üzerinden yönlendirilmesine olanak tanıyarak Event Hubs hizmetine bağlantı kurmak için kullanılacak özel uç nokta adresi. Varsayılan değer Yok'tır. Biçim "sb://< custom_endpoint_hostname>:<custom_endpoint_port>" gibi olabilir. bağlantı noktası custom_endpoint_address belirtilmezse, varsayılan olarak 443 numaralı bağlantı noktası kullanılır.

connection_verify
Optional[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ü

Özel durumlar

Arabellek boşaltılırken hata oluştuysa, boşaltma Doğru olarak ayarlandıysa veya arabelleğe alınan modda temel alınan AMQP bağlantılarını kapatın.

Örnekler

bağlantı dizesi'den EventHubProducerClient'ın yeni bir örneğini oluşturun.


   import os
   from azure.eventhub.aio import EventHubProducerClient
   event_hub_connection_str = os.environ['EVENT_HUB_CONN_STR']
   eventhub_name = os.environ['EVENT_HUB_NAME']
   producer = EventHubProducerClient.from_connection_string(
       conn_str=event_hub_connection_str,
       eventhub_name=eventhub_name  # EventHub name should be specified if it doesn't show up in connection string.
   )

get_buffered_event_count

Arabelleğe alınan ve belirli bir bölüm için yayımlanmayı bekleyen olayların sayısı. Arabelleğe alınamayan modda Hiçbiri döndürür. NOT: Olay arabelleği bir arka plan eş yordamda işlenir, bu nedenle bu API tarafından bildirilen arabellekteki olayların sayısı yalnızca yaklaşık olarak kabul edilmelidir ve yalnızca hata ayıklamada kullanılması önerilir. Arabelleğe alınmamış olay içermeyen bir bölüm kimliği için, bölüm kimliğinin Olay Hub'ının içinde olup olmadığına bakılmaksızın 0 döndürülür.

get_buffered_event_count(partition_id: str) -> int | None

Parametreler

partition_id
str
Gerekli

Hedef bölüm kimliği.

Dönüş türü

int,

Özel durumlar

Arabellek boşaltılırken hata oluştuysa, boşaltma Doğru olarak ayarlandıysa veya arabelleğe alınan modda temel alınan AMQP bağlantılarını kapatın.

get_eventhub_properties

Olay Hub'ının özelliklerini alma.

Döndürülen sözlükteki anahtarlar şunlardır:

  • eventhub_name (str)

  • created_at (UTC datetime.datetime)

  • partition_ids (list[str])

async get_eventhub_properties() -> Dict[str, Any]

Döndürülenler

Olay Hub'ı hakkında bilgi içeren bir sözlük.

Dönüş türü

Özel durumlar

get_partition_ids

Olay Hub'ının bölüm kimliklerini alın.

async get_partition_ids() -> List[str]

Döndürülenler

Bölüm kimliklerinin listesi.

Dönüş türü

Özel durumlar

get_partition_properties

Belirtilen bölümün özelliklerini alın.

Özellikler sözlüğündeki anahtarlar şunlardır:

  • eventhub_name (str)

  • id (str)

  • beginning_sequence_number (int)

  • last_enqueued_sequence_number (int)

  • last_enqueued_offset (str)

  • last_enqueued_time_utc (UTC datetime.datetime)

  • is_empty (bool)

async get_partition_properties(partition_id: str) -> Dict[str, Any]

Parametreler

partition_id
str
Gerekli

Hedef bölüm kimliği.

Döndürülenler

Bölüm özelliklerinin diktesi.

Dönüş türü

Özel durumlar

send_batch

Bir grup olay verisi gönderir. Varsayılan olarak, onay alınana veya işlem zaman aşımına ulaşana kadar yöntemi engeller. EventHubProducerClient arabelleğe alınmış modda çalışacak şekilde yapılandırılmışsa, yöntemi olayları yerel arabelleğe alır ve döndürür. Yapımcı arka planda otomatik gönderme yapar.

buffered_mode False ise, on_error geri çağırma isteğe bağlıdır ve hatalar aşağıdaki gibi işlenir:

  • Üretici istemci örneği oluşturma sırasında bir on_error geri çağırma geçirilirse,

    ardından hata bilgileri on_error geri çağırmaya geçirilir ve bu da çağrılır.

  • İstemci örneği oluşturma sırasında bir on_error geri çağırma geçirilmediyse,

    ardından hata varsayılan olarak oluşturulur.

buffered_mode True ise, on_error geri çağırma gerekir ve hatalar şu şekilde işlenir:

  • Olaylar verilen zaman aşımı içinde sıraya alınamazsa, doğrudan bir hata oluşur.

  • Olaylar başarıyla sıraya alındıktan sonra gönderilemiyorsa , on_error geri çağırma çağrılır.

Arabelleğe alınan modda, toplu iş gönderme işlemi değişmeden kalır ve tek bir birim olarak gönderilir. Toplu iş yeniden düzenlenmeyecek. Bu, olay göndermede yetersizliğe neden olabilir.

EventData veya AmqpAnnotatedMessage'ın sınırlı bir listesini gönderiyorsanız ve bunun olay hub'ı çerçeve boyutu sınırı içinde olduğunu biliyorsanız, bunları bir send_batch çağrısıyla gönderebilirsiniz. Aksi takdirde, EventDataBatch oluşturmak ve boyut sınırına kadar toplu işleme EventData veya AmqpAnnotatedMessage eklemek için kullanın create_batch ve ardından toplu işlemi göndermek için bu yöntemi çağırın.

async send_batch(event_data_batch: EventDataBatch | List[EventData | AmqpAnnotatedMessage], **kwargs: Any) -> None

Parametreler

event_data_batch
Union[EventDataBatch, List[Union[EventData, AmqpAnnotatedMessage]]
Gerekli

Gönderilecek EventDataBatch nesnesi veya toplu olarak gönderilecek EventData listesi. Listedeki veya EventDataBatch'teki tüm EventData veya AmqpAnnotatedMessage aynı bölüme iner.

timeout
float

Olay verilerini arabelleğe alınamayan modda göndermek için en uzun bekleme süresi veya arabelleğe alınan modda olay verilerini arabelleğe almak için en uzun bekleme süresi. Arabelleğe alınamayan modda, üretici oluşturulduğunda belirtilen varsayılan bekleme süresi kullanılır. Arabelleğe alınan modda varsayılan bekleme süresi Yok'dur.

partition_id
str

Gönderilecek belirli bölüm kimliği. Varsayılan değer Yok'tur, bu durumda hizmet hepsini bir kez deneme kullanarak tüm bölümlere atar. partition_id belirtilirse ve EventDataBatch partition_id olduğundan event_data_batch bir EventDataBatch ise bir TypeError oluşturulur.

partition_key
str

Verilen partition_key, olay verileri hizmet tarafından karar verilen Olay Hub'ının belirli bir bölümüne gönderilir. Partition_key belirtilirse ve EventDataBatch'ın kendisinde partition_key olduğundan event_data_batch bir EventDataBatch ise bir TypeError oluşturulur. Hem partition_id hem de partition_key sağlanırsa, partition_id öncelik kazanır. UYARI: Gönderilecek olaylarda dize olmayan değerin partition_key ayarlanması önerilmez çünkü partition_key Olay Hub'ı hizmeti tarafından yoksayılır ve olaylar hepsini bir kez deneme kullanılarak tüm bölümlere atanır. Ayrıca, partition_key yalnızca dize türü olmasını bekleyen olayları kullanmak için SDK'lar vardır; bunlar dize olmayan değeri ayrıştıramayabilir.

Dönüş türü

Özel durumlar

Zaman aşımı parametresi tarafından belirtilen değer, olayın arabelleğe alınamayan modda gönderilebilmesinden önce geçerse veya olaylar arabelleğe alınan modda arabelleğe alınan moda sıralanabilir.

Örnekler

Olay verilerini zaman uyumsuz olarak gönderir


       async with producer:
           event_data_batch = await producer.create_batch()
           while True:
               try:
                   event_data_batch.add(EventData('Message inside EventBatchData'))
               except ValueError:
                   # The EventDataBatch object reaches its max_size.
                   # You can send the full EventDataBatch object and create a new one here.
                   break
           await producer.send_batch(event_data_batch)

send_event

Olay verileri gönderir. Varsayılan olarak, onay alınana veya işlem zaman aşımına ulaşana kadar yöntemi engeller. EventHubProducerClient arabelleğe alınmış modda çalışacak şekilde yapılandırılmışsa, yöntemi olayı yerel arabelleğe alır ve döndürür. Üretici, arka planda otomatik toplu işlem ve gönderme işlemi yapar.

buffered_mode False ise, on_error geri çağırma isteğe bağlıdır ve hatalar şu şekilde işlenir: * Üretici istemci örneği oluşturma sırasında bir on_error geri çağırma geçirilirse,

       then error information will be passed to the *on_error* callback, which will then be called.

  * If an *on_error* callback is not passed in during client instantiation,

       then the error will be raised by default.

buffered_mode True ise, on_error geri çağırma gerekir ve hatalar şu şekilde işlenir: * Olaylar belirtilen zaman aşımı içinde sıraya alınamazsa, doğrudan bir hata oluşur.

  * If events fail to send after enqueuing successfully, the *on_error* callback will be called.
async send_event(event_data: EventData | AmqpAnnotatedMessage, **kwargs: Any) -> None

Parametreler

event_data
Union[EventData, AmqpAnnotatedMessage]
Gerekli

Gönderilecek EventData nesnesi.

timeout
float

Olay verilerini arabelleğe alınamayan modda göndermek için en uzun bekleme süresi veya arabelleğe alınan modda olay verilerini arabelleğe almak için maksimum bekleme süresi. Arabelleğe alınamayan modda, üretici oluşturulduğunda belirtilen varsayılan bekleme süresi kullanılır. Arabelleğe alınan modda varsayılan bekleme süresi Yok olur.

partition_id
str

Gönderilecek bölüm kimliği. Varsayılan değer Yok'tur. Bu durumda hizmet hepsini bir kez deneme kullanarak tüm bölümlere atanır. Partition_id belirtilirse ve EventDataBatch'ın kendisi partition_id olduğundan event_data_batch bir EventDataBatch ise bir TypeError oluşturulur.

partition_key
str

Verilen partition_key, olay verileri hizmet tarafından karar verilen Olay Hub'ının belirli bir bölümüne gönderilir. Partition_key belirtilirse ve EventDataBatch'ın kendisinde partition_key olduğundan event_data_batch bir EventDataBatch ise bir TypeError tetiklenir. Hem partition_id hem de partition_key sağlanırsa, partition_id öncelikli olur. UYARI: Gönderilecek olaylarda dize olmayan değerin partition_key ayarlanması önerilmez çünkü partition_key Olay Hub'ı hizmeti tarafından yoksayılır ve olaylar hepsini bir kez deneme kullanılarak tüm bölümlere atanır. Ayrıca, partition_key yalnızca dize türü olmasını bekleyen olayları kullanmak için SDK'lar vardır; bunlar dize olmayan değeri ayrıştıramayabilir.

Dönüş türü

Özel durumlar

Zaman aşımı parametresi tarafından belirtilen değer, olay arabelleğe alınmamış modda gönderilmeden önce geçerse veya olaylar arabelleğe alınan modda arabelleğe alınan moda sıralanamazsa.

Öznitelikler

total_buffered_event_count

Tüm bölümlerde arabelleğe alınmış ve yayımlanmayı bekleyen olayların toplam sayısı. Arabelleğe alınamayan modda Hiçbiri döndürür. NOT: Olay arabelleği bir arka plan eş yordamda işlenir, bu nedenle bu API tarafından bildirilen arabellekteki olay sayısı yalnızca bir yaklaşık değer olarak kabul edilmelidir ve yalnızca hata ayıklamada kullanılması önerilir.

Dönüş türü

int,