EventHubProducerClient Classe

La classe EventHubProducerClient définit une interface de haut niveau pour l’envoi d’événements au service Azure Event Hubs.

Héritage
azure.eventhub.aio._client_base_async.ClientBaseAsync
EventHubProducerClient

Constructeur

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)

Paramètres

fully_qualified_namespace
str
Obligatoire

Nom d’hôte complet de l’espace de noms Event Hubs. Cela est susceptible d’être similaire à .servicebus.windows.net

eventhub_name
str
Obligatoire

Chemin d’accès du hub d’événements spécifique auquel connecter le client.

credential
AsyncTokenCredential ou AzureSasCredential ou AzureNamedKeyCredential
Obligatoire

Objet d’informations d’identification utilisé pour l’authentification qui implémente une interface particulière pour obtenir des jetons. Il accepte EventHubSharedKeyCredentialles objets d’informations d’identification ou générés par la bibliothèque d’identité azure et les objets qui implémentent la méthode *get_token(self, scopes).

buffered_mode
bool

Si la valeur est True, le client producteur collecte les événements dans une mémoire tampon, effectue un traitement par lot efficace, puis publie. La valeur par défaut est FALSE.

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

Rappel à appeler une fois qu’un lot a été publié avec succès. Le rappel prend deux paramètres :

  • événements : liste des événements qui ont été publiés avec succès

  • partition_id : ID de partition sur lequel les événements de la liste ont été publiés.

La fonction de rappel doit être définie comme suit : on_success(events, partition_id). Obligatoire lorsque buffered_mode a la valeur True alors que facultatif si buffered_mode a la valeur False.

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

Le rappel à appeler une fois qu’un lot n’a pas pu être publié. Obligatoire lorsque dans buffered_mode a la valeur True alors que facultatif si buffered_mode a la valeur False. La fonction de rappel doit être définie comme suit : on_error(events, partition_id, error) où :

  • événements : liste des événements qui n’ont pas pu être publiés,

  • partition_id : ID de partition dans lequel les événements de la liste ont été tentés d’être publiés et

  • error : exception liée à l’échec d’envoi.

Si buffered_mode a la valeur False, on_error rappel est facultatif et les erreurs sont gérées comme suit :

  • Si un rappel on_error est passé pendant l’instanciation du client producteur,

    ensuite, les informations d’erreur sont transmises au rappel on_error , qui sera ensuite appelé.

  • Si un rappel on_error n’est pas passé pendant l’instanciation du client,

    l’erreur est alors déclenchée par défaut.

Si buffered_mode a la valeur True, on_error rappel est requis et les erreurs sont gérées comme suit :

  • Si les événements ne parviennent pas à mettre en file d’attente dans le délai d’attente donné, une erreur est directement générée.

  • Si les événements ne parviennent pas à être envoyés après la mise en file d’attente, le rappel on_error est appelé.

max_buffer_length
int

Mode mis en mémoire tampon uniquement. Le nombre total d’événements par partition pouvant être mis en mémoire tampon avant qu’un vidage soit déclenché. La valeur par défaut est 1500 en mode mis en mémoire tampon.

max_wait_time
Optional[float]

Mode mis en mémoire tampon uniquement. Durée d’attente avant la publication d’un lot avec des événements dans la mémoire tampon. La valeur par défaut est 1 en mode mis en mémoire tampon.

logging_enable
bool

Indique s’il faut générer des journaux de trace réseau vers l’enregistreur d’événements. La valeur par défaut est False.

auth_timeout
float

Temps en secondes d’attente pour qu’un jeton soit autorisé par le service. La valeur par défaut est 60 secondes. Si la valeur est 0, aucun délai d’attente n’est appliqué à partir du client.

user_agent
str

Si elle est spécifiée, elle est ajoutée devant la chaîne de l’agent utilisateur.

retry_total
int

Nombre total de tentatives de restauration d’une opération ayant échoué en cas d’erreur. La valeur par défaut est 3.

retry_backoff_factor
float

Facteur d’annulation à appliquer entre les tentatives après la deuxième tentative (la plupart des erreurs sont résolues immédiatement par un deuxième essai sans délai). En mode fixe, la stratégie de nouvelle tentative est toujours mise en veille pour {facteur d’arrêt}. En mode « exponentiel », la stratégie de nouvelle tentative est mise en veille pendant : {facteur d’interruption} * (2 ** ({nombre de nouvelles tentatives totales} - 1)) secondes. Si le backoff_factor est 0,1, la nouvelle tentative est mise en veille pour [0,0, 0,2s, 0,4s, ...] entre les nouvelles tentatives. La valeur par défaut est 0,8.

retry_backoff_max
float

Temps d’arrêt maximal. La valeur par défaut est 120 secondes (2 minutes).

retry_mode
str

Comportement de retard entre les tentatives de nouvelle tentative. Les valeurs prises en charge sont « fixes » ou « exponentielles », où la valeur par défaut est « exponentielle ».

idle_timeout
float

Délai d’expiration, en secondes, après quoi ce client ferme la connexion sous-jacente en l’absence d’activité. Par défaut, la valeur est None, ce qui signifie que le client ne s’arrêtera pas en raison d’une inactivité, sauf si le service l’a initié.

transport_type
TransportType

Type de protocole de transport qui sera utilisé pour communiquer avec le service Event Hubs. La valeur par défaut est TransportType.Amqp , auquel cas le port 5671 est utilisé. Si le port 5671 n’est pas disponible/bloqué dans l’environnement réseau, TransportType.AmqpOverWebsocket peut être utilisé à la place, qui utilise le port 443 pour la communication.

http_proxy
dict

Paramètres du proxy HTTP. Il doit s’agir d’un dictionnaire avec les clés suivantes : « proxy_hostname » (valeur str) et « proxy_port » (valeur int). En outre, les clés suivantes peuvent également être présentes : « nom d’utilisateur », « mot de passe ».

custom_endpoint_address
Optional[str]

Adresse de point de terminaison personnalisée à utiliser pour établir une connexion au service Event Hubs, ce qui permet aux demandes réseau d’être acheminées via toutes les passerelles d’application ou d’autres chemins nécessaires à l’environnement hôte. La valeur par défaut est None. Le format est « sb://< custom_endpoint_hostname> :<custom_endpoint_port> ». Si le port n’est pas spécifié dans le custom_endpoint_address, le port 443 est utilisé par défaut.

connection_verify
Optional[str]

Chemin d’accès au fichier CA_BUNDLE personnalisé du certificat SSL utilisé pour authentifier l’identité du point de terminaison de connexion. La valeur par défaut est None, auquel cas certifi.where() sera utilisé.

uamqp_transport
bool

Indique s’il faut utiliser la bibliothèque uamqp comme transport sous-jacent. La valeur par défaut est False et la bibliothèque PURE PYTHON AMQP sera utilisée comme transport sous-jacent.

socket_timeout
float

Durée en secondes pendant laquelle le socket sous-jacent sur la connexion doit attendre lors de l’envoi et de la réception de données avant d’expirer. La valeur par défaut est 0,2 pour TransportType.Amqp et 1 pour TransportType.AmqpOverWebsocket. Si des erreurs EventHubsConnectionError se produisent en raison d’un délai d’écriture, une valeur supérieure à la valeur par défaut peut être transmise. Il s’agit de scénarios d’utilisation avancés et la valeur par défaut doit normalement être suffisante.

Exemples

Créez une instance de EventHubProducerClient.


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

Méthodes

close

Fermez la connexion et les liens AMQP sous-jacents du client Producteur.

create_batch

Créez un objet EventDataBatch dont la taille maximale de tout le contenu est limitée par max_size_in_bytes.

La max_size_in_bytes ne doit pas être supérieure à la taille maximale autorisée des messages définie par le service.

flush

Mode mis en mémoire tampon uniquement. Vider les événements dans la mémoire tampon à envoyer immédiatement si le client fonctionne en mode mis en mémoire tampon.

from_connection_string

Créez un EventHubProducerClient à partir d’un chaîne de connexion.

get_buffered_event_count

Nombre d’événements mis en mémoire tampon et en attente de publication pour une partition donnée. Retourne Aucun en mode non mis en mémoire tampon. REMARQUE : La mémoire tampon d’événements est traitée dans une coroutine d’arrière-plan. Par conséquent, le nombre d’événements dans la mémoire tampon signalé par cette API doit être considéré comme une approximation et n’est recommandé que pour le débogage. Pour un ID de partition pour lequel aucun événement n’est mis en mémoire tampon, 0 est retourné, que cet ID de partition existe réellement dans le hub d’événements.

get_eventhub_properties

Obtient les propriétés du hub d’événements.

Les clés dans le dictionnaire retourné sont les suivantes :

  • eventhub_name (str)

  • created_at (UTC datetime.datetime)

  • partition_ids (list[str])

get_partition_ids

Obtenez les ID de partition de l’Event Hub.

get_partition_properties

Obtient les propriétés de la partition spécifiée.

Les clés du dictionnaire de propriétés sont les suivantes :

  • 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

Envoie un lot de données d’événement. Par défaut, la méthode est bloquée jusqu’à ce que l’accusé de réception soit reçu ou que l’opération expire. Si EventHubProducerClient est configuré pour s’exécuter en mode mis en mémoire tampon, la méthode met en file d’attente les événements dans la mémoire tampon locale et retourne. Le producteur effectue l’envoi automatique en arrière-plan.

Si buffered_mode a la valeur False, on_error rappel est facultatif et les erreurs sont gérées comme suit :

  • Si un rappel on_error est passé pendant l’instanciation du client producteur,

    ensuite, les informations d’erreur sont transmises au rappel on_error , qui sera ensuite appelé.

  • Si un rappel on_error n’est pas passé pendant l’instanciation du client,

    l’erreur est alors déclenchée par défaut.

Si buffered_mode a la valeur True, on_error rappel est requis et les erreurs sont gérées comme suit :

  • Si les événements ne parviennent pas à mettre en file d’attente dans le délai d’attente donné, une erreur est directement générée.

  • Si les événements ne parviennent pas à être envoyés après la mise en file d’attente, le rappel on_error est appelé.

En mode mis en mémoire tampon, l’envoi d’un lot reste intact et envoyé en tant qu’unité unique. Le lot ne sera pas réorganisé. Cela peut entraîner l’inefficacité de l’envoi d’événements.

Si vous envoyez une liste finie d’EventData ou d’AmqpAnnotatedMessage et que vous savez qu’elle se trouve dans la limite de taille d’image du hub d’événements, vous pouvez l’envoyer avec un appel send_batch . Sinon, utilisez create_batch pour créer EventDataBatch et ajouter EventData ou AmqpAnnotatedMessage dans le lot un par un jusqu’à la limite de taille, puis appelez cette méthode pour envoyer le lot.

send_event

Envoie des données d’événement. Par défaut, la méthode est bloquée jusqu’à ce que l’accusé de réception soit reçu ou que l’opération expire. Si EventHubProducerClient est configuré pour s’exécuter en mode mis en mémoire tampon, la méthode met l’événement en file d’attente dans la mémoire tampon locale et retourne. Le producteur effectue automatiquement le traitement par lots et l’envoi en arrière-plan.

Si buffered_mode a la valeur False, on_error rappel est facultatif et les erreurs sont gérées comme suit : * Si un rappel on_error est passé pendant l’instanciation du client producteur,

       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.

Si buffered_mode a la valeur True, on_error rappel est requis et les erreurs sont gérées comme suit : * Si les événements ne parviennent pas à se mettre en file d’attente dans le délai d’attente donné, une erreur est directement générée.

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

close

Fermez la connexion et les liens AMQP sous-jacents du client Producteur.

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

Paramètres

flush
bool

Mode mis en mémoire tampon uniquement. Si la valeur est True, les événements de la mémoire tampon sont envoyés immédiatement. La valeur par défaut est True.

timeout
float ou None

Mode mis en mémoire tampon uniquement. Délai d’attente pour fermer le producteur. La valeur par défaut est None, ce qui signifie aucun délai d’attente.

Type de retour

Exceptions

Si une erreur s’est produite lors du vidage de la mémoire tampon si le vidage est défini sur True ou lors de la fermeture des connexions AMQP sous-jacentes en mode mis en mémoire tampon.

Exemples

Fermez le gestionnaire.


   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

Créez un objet EventDataBatch dont la taille maximale de tout le contenu est limitée par max_size_in_bytes.

La max_size_in_bytes ne doit pas être supérieure à la taille maximale autorisée des messages définie par le service.

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

Type de retour

Exceptions

Si une erreur s’est produite lors du vidage de la mémoire tampon si le vidage est défini sur True ou lors de la fermeture des connexions AMQP sous-jacentes en mode mis en mémoire tampon.

Exemples

Créer un objet EventDataBatch de taille limitée


       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

Mode mis en mémoire tampon uniquement. Vider les événements dans la mémoire tampon à envoyer immédiatement si le client fonctionne en mode mis en mémoire tampon.

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

Paramètres

timeout
float ou None

Délai d’expiration pour vider les événements mis en mémoire tampon, la valeur par défaut est None, ce qui signifie aucun délai d’expiration.

Type de retour

Exceptions

Si le producteur ne parvient pas à vider la mémoire tampon dans le délai d’expiration donné en mode mis en mémoire tampon.

from_connection_string

Créez un EventHubProducerClient à partir d’un chaîne de connexion.

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

Paramètres

conn_str
str
Obligatoire

Chaîne de connexion d’un Event Hub.

eventhub_name
str

Chemin d’accès du hub d’événements spécifique auquel connecter le client.

buffered_mode
bool

Si la valeur est True, le client producteur collecte les événements dans une mémoire tampon, effectue un traitement par lot, puis publie. La valeur par défaut est FALSE.

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

Rappel à appeler une fois qu’un lot a été correctement publié. Le rappel prend deux paramètres :

  • events : liste des événements qui ont été publiés avec succès

  • partition_id : ID de partition sur lequel les événements de la liste ont été publiés.

La fonction de rappel doit être définie comme suit : on_success(events, partition_id) . Elle est obligatoire lorsque buffered_mode a la valeur True alors que facultatif si buffered_mode a la valeur False.

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

Rappel à appeler une fois qu’un lot n’a pas pu être publié. La fonction de rappel doit être définie comme suit : on_error(events, partition_id, error), où :

  • events : liste des événements qui n’ont pas pu être publiés,

  • partition_id : ID de partition dans lequel les événements de la liste ont été tentés d’être publiés et

  • error : exception liée à l’échec d’envoi.

Si buffered_mode a la valeur False, on_error rappel est facultatif et les erreurs sont gérées comme suit :

  • Si un rappel on_error est passé pendant l’instanciation du client producteur,

    ensuite, les informations d’erreur sont passées au rappel on_error , qui sera ensuite appelé.

  • Si un rappel on_error n’est pas passé pendant l’instanciation du client,

    l’erreur est alors déclenchée par défaut.

Si buffered_mode a la valeur True, on_error rappel est requis et les erreurs sont gérées comme suit :

  • Si les événements ne parviennent pas à se mettre en file d’attente dans le délai d’expiration donné, une erreur est directement générée.

  • Si les événements ne parviennent pas à être envoyés après la mise en file d’attente, le rappel on_error est appelé.

max_buffer_length
int

Mode mis en mémoire tampon uniquement. Nombre total d’événements par partition pouvant être mis en mémoire tampon avant qu’un vidage ne soit déclenché. La valeur par défaut est 1 500 en mode mis en mémoire tampon.

max_wait_time
Optional[float]

Mode mis en mémoire tampon uniquement. Durée d’attente avant la publication d’un lot avec des événements dans la mémoire tampon. La valeur par défaut est 1 en mode mis en mémoire tampon.

logging_enable
bool

Indique si les journaux de trace réseau doivent être générés dans l’enregistreur d’événements. La valeur par défaut est False.

http_proxy
dict

Paramètres du proxy HTTP. Il doit s’agir d’un dictionnaire avec les clés suivantes : « proxy_hostname » (valeur str) et « proxy_port » (valeur int). En outre, les clés suivantes peuvent également être présentes : « nom d’utilisateur », « mot de passe ».

auth_timeout
float

Délai en secondes d’attente pour qu’un jeton soit autorisé par le service. La valeur par défaut est 60 secondes. Si la valeur est 0, aucun délai d’expiration n’est appliqué à partir du client.

user_agent
str

Si elle est spécifiée, elle est ajoutée devant la chaîne de l’agent utilisateur.

retry_total
int

Nombre total de tentatives de restauration d’une opération ayant échoué lorsqu’une erreur se produit. La valeur par défaut est 3.

retry_backoff_factor
float

Facteur d’interruption à appliquer entre les tentatives après la deuxième tentative (la plupart des erreurs sont résolues immédiatement par un deuxième essai sans délai). En mode fixe, la stratégie de nouvelle tentative est toujours mise en veille pour {facteur d’interruption}. En mode « exponentiel », la stratégie de nouvelle tentative est mise en veille pendant : {facteur d’interruption} * (2 ** ({nombre de nouvelles tentatives totales} - 1)) secondes. Si la backoff_factor est 0.1, la nouvelle tentative est mise en veille pour [0.0s, 0.2s, 0.4s, ...] entre les nouvelles tentatives. La valeur par défaut est 0,8.

retry_backoff_max
float

Temps d’arrêt maximal. La valeur par défaut est 120 secondes (2 minutes).

retry_mode
str

Comportement de délai entre les tentatives de nouvelle tentative. Les valeurs prises en charge sont « fixes » ou « exponentielles », où la valeur par défaut est « exponentielle ».

idle_timeout
float

Délai d’expiration, en secondes, après lequel ce client ferme la connexion sous-jacente en l’absence d’activité. Par défaut, la valeur est None, ce qui signifie que le client ne s’arrêtera pas en raison de l’inactivité, sauf si le service l’a initié.

transport_type
TransportType

Type de protocole de transport qui sera utilisé pour communiquer avec le service Event Hubs. La valeur par défaut est TransportType.Amqp , auquel cas le port 5671 est utilisé. Si le port 5671 est indisponible/bloqué dans l’environnement réseau, TransportType.AmqpOverWebsocket peut être utilisé à la place, qui utilise le port 443 pour la communication.

custom_endpoint_address
Optional[str]

Adresse de point de terminaison personnalisée à utiliser pour établir une connexion au service Event Hubs, ce qui permet aux demandes réseau d’être routées via toutes les passerelles Application Gateway ou autres chemins nécessaires pour l’environnement hôte. La valeur par défaut est None. Le format est « sb://< custom_endpoint_hostname> :<custom_endpoint_port> ». Si le port n’est pas spécifié dans le custom_endpoint_address, le port 443 est utilisé par défaut.

connection_verify
Optional[str]

Chemin d’accès au fichier de CA_BUNDLE personnalisé du certificat SSL utilisé pour authentifier l’identité du point de terminaison de connexion. La valeur par défaut est None, auquel cas certifi.where() sera utilisé.

uamqp_transport
bool

Indique s’il faut utiliser la bibliothèque uamqp comme transport sous-jacent. La valeur par défaut est False et la bibliothèque PURE PYTHON AMQP sera utilisée comme transport sous-jacent.

Type de retour

Exceptions

Si une erreur s’est produite lors du vidage de la mémoire tampon si le vidage est défini sur True ou lors de la fermeture des connexions AMQP sous-jacentes en mode mis en mémoire tampon.

Exemples

Créez une instance de EventHubProducerClient à partir de chaîne de connexion.


   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

Nombre d’événements mis en mémoire tampon et en attente de publication pour une partition donnée. Retourne Aucun en mode non mis en mémoire tampon. REMARQUE : La mémoire tampon d’événements est traitée dans une coroutine d’arrière-plan. Par conséquent, le nombre d’événements dans la mémoire tampon signalé par cette API doit être considéré comme une approximation et n’est recommandé que pour le débogage. Pour un ID de partition pour lequel aucun événement n’est mis en mémoire tampon, 0 est retourné, que cet ID de partition existe réellement dans le hub d’événements.

get_buffered_event_count(partition_id: str) -> int | None

Paramètres

partition_id
str
Obligatoire

ID de partition cible.

Type de retour

int,

Exceptions

Si une erreur s’est produite lors du vidage de la mémoire tampon si le vidage est défini sur True ou lors de la fermeture des connexions AMQP sous-jacentes en mode mis en mémoire tampon.

get_eventhub_properties

Obtient les propriétés du hub d’événements.

Les clés dans le dictionnaire retourné sont les suivantes :

  • eventhub_name (str)

  • created_at (UTC datetime.datetime)

  • partition_ids (list[str])

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

Retours

Dictionnaire contenant des informations sur le hub d’événements.

Type de retour

Exceptions

get_partition_ids

Obtenez les ID de partition de l’Event Hub.

async get_partition_ids() -> List[str]

Retours

Liste des ID de partition.

Type de retour

Exceptions

get_partition_properties

Obtient les propriétés de la partition spécifiée.

Les clés du dictionnaire de propriétés sont les suivantes :

  • 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]

Paramètres

partition_id
str
Obligatoire

ID de partition cible.

Retours

dicté des propriétés de partition.

Type de retour

Exceptions

send_batch

Envoie un lot de données d’événement. Par défaut, la méthode est bloquée jusqu’à ce que l’accusé de réception soit reçu ou que l’opération expire. Si EventHubProducerClient est configuré pour s’exécuter en mode mis en mémoire tampon, la méthode met en file d’attente les événements dans la mémoire tampon locale et retourne. Le producteur effectue l’envoi automatique en arrière-plan.

Si buffered_mode a la valeur False, on_error rappel est facultatif et les erreurs sont gérées comme suit :

  • Si un rappel on_error est passé pendant l’instanciation du client producteur,

    ensuite, les informations d’erreur sont transmises au rappel on_error , qui sera ensuite appelé.

  • Si un rappel on_error n’est pas passé pendant l’instanciation du client,

    l’erreur est alors déclenchée par défaut.

Si buffered_mode a la valeur True, on_error rappel est requis et les erreurs sont gérées comme suit :

  • Si les événements ne parviennent pas à mettre en file d’attente dans le délai d’attente donné, une erreur est directement générée.

  • Si les événements ne parviennent pas à être envoyés après la mise en file d’attente, le rappel on_error est appelé.

En mode mis en mémoire tampon, l’envoi d’un lot reste intact et envoyé en tant qu’unité unique. Le lot ne sera pas réorganisé. Cela peut entraîner l’inefficacité de l’envoi d’événements.

Si vous envoyez une liste finie d’EventData ou d’AmqpAnnotatedMessage et que vous savez qu’elle se trouve dans la limite de taille d’image du hub d’événements, vous pouvez l’envoyer avec un appel send_batch . Sinon, utilisez create_batch pour créer EventDataBatch et ajouter EventData ou AmqpAnnotatedMessage dans le lot un par un jusqu’à la limite de taille, puis appelez cette méthode pour envoyer le lot.

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

Paramètres

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

Objet EventDataBatch à envoyer ou liste d’EventData à envoyer dans un lot. Tous les EventData ou AmqpAnnotatedMessage dans la liste ou EventDataBatch se trouveront sur la même partition.

timeout
float

Temps d’attente maximal pour envoyer les données d’événement en mode non mis en mémoire tampon ou temps d’attente maximal pour mettre les données d’événement en file d’attente dans la mémoire tampon en mode mis en mémoire tampon. En mode non mis en mémoire tampon, le temps d’attente par défaut spécifié lors de la création du producteur sera utilisé. En mode mis en mémoire tampon, le temps d’attente par défaut est Aucun.

partition_id
str

ID de partition spécifique à envoyer. La valeur par défaut est None, auquel cas le service affecte à toutes les partitions à l’aide du tourniquet (round robin). Un TypeError est déclenché si partition_id est spécifié et event_data_batch est un EventDataBatch , car EventDataBatch lui-même a partition_id.

partition_key
str

Avec le partition_key donné, les données d’événement sont envoyées à une partition particulière du hub d’événements décidé par le service. Un TypeError est déclenché si partition_key est spécifié et event_data_batch est un EventDataBatch , car EventDataBatch lui-même a partition_key. Si partition_id et partition_key sont fournis, le partition_id est prioritaire. AVERTISSEMENT : il est déconseillé de définir partition_key de valeur autre que la chaîne sur les événements à envoyer, car le partition_key sera ignoré par le service Event Hub et les événements seront attribués à toutes les partitions à l’aide d’un tourniquet . En outre, il existe des KITS de développement logiciel (SDK) pour la consommation d’événements qui s’attendent à ce que partition_key soit uniquement de type chaîne. Il se peut qu’ils ne parviennent pas à analyser la valeur non-chaîne.

Type de retour

Exceptions

Si la valeur spécifiée par le paramètre de délai d’expiration s’écoule avant que l’événement puisse être envoyé en mode non mis en mémoire tampon ou que les événements peuvent être mis en file d’attente dans la mise en mémoire tampon en mode mis en mémoire tampon.

Exemples

Envoie de manière asynchrone des données d’événement


       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

Envoie des données d’événement. Par défaut, la méthode est bloquée jusqu’à ce que l’accusé de réception soit reçu ou que l’opération expire. Si EventHubProducerClient est configuré pour s’exécuter en mode mis en mémoire tampon, la méthode met l’événement en file d’attente dans la mémoire tampon locale et retourne. Le producteur effectue automatiquement le traitement par lots et l’envoi en arrière-plan.

Si buffered_mode a la valeur False, on_error rappel est facultatif et les erreurs sont gérées comme suit : * Si un rappel on_error est passé pendant l’instanciation du client producteur,

       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.

Si buffered_mode a la valeur True, on_error rappel est requis et les erreurs sont gérées comme suit : * Si les événements ne parviennent pas à se mettre en file d’attente dans le délai d’attente donné, une erreur est directement générée.

  * 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

Paramètres

event_data
Union[EventData, AmqpAnnotatedMessage]
Obligatoire

Objet EventData à envoyer.

timeout
float

Temps d’attente maximal pour envoyer les données d’événement en mode non mis en mémoire tampon ou durée d’attente maximale pour mettre en file d’attente les données d’événement dans la mémoire tampon en mode mis en mémoire tampon. En mode non mis en mémoire tampon, le temps d’attente par défaut spécifié lors de la création du producteur sera utilisé. En mode mis en mémoire tampon, le temps d’attente par défaut est Aucun.

partition_id
str

ID de partition spécifique à envoyer. La valeur par défaut est None, auquel cas le service est affecté à toutes les partitions à l’aide de round robin. Un typeError est déclenché si partition_id est spécifié et event_data_batch est un EventDataBatch , car EventDataBatch lui-même a partition_id.

partition_key
str

Avec la partition_key donnée, les données d’événement sont envoyées à une partition particulière du hub d’événements décidée par le service. Un TypeError est déclenché si partition_key est spécifié et event_data_batch est un EventDataBatch , car EventDataBatch lui-même a partition_key. Si partition_id et partition_key sont fournis, le partition_id est prioritaire. AVERTISSEMENT : il est déconseillé de définir partition_key de valeur autre que la chaîne sur les événements à envoyer, car le partition_key sera ignoré par le service Event Hub et les événements seront attribués à toutes les partitions à l’aide d’un tourniquet . En outre, il existe des KITS de développement logiciel (SDK) pour la consommation d’événements qui s’attendent à ce que partition_key soit uniquement de type chaîne. Il se peut qu’ils ne parviennent pas à analyser la valeur non-chaîne.

Type de retour

Exceptions

Si la valeur spécifiée par le paramètre de délai d’expiration s’écoule avant que l’événement ne puisse être envoyé en mode non mis en mémoire tampon ou que les événements ne peuvent pas être mis en file d’attente dans la mémoire tampon en mode mis en mémoire tampon.

Attributs

total_buffered_event_count

Nombre total d’événements actuellement mis en mémoire tampon et en attente d’être publiés, sur toutes les partitions. Retourne Aucun en mode non mis en mémoire tampon. REMARQUE : la mémoire tampon d’événements est traitée dans une coroutine en arrière-plan. Par conséquent, le nombre d’événements dans la mémoire tampon signalé par cette API doit être considéré comme une approximation et est recommandé uniquement pour le débogage.

Type de retour

int,