Package com.azure.messaging.eventgrid
Class EventGridPublisherClient<T>
- java.lang.Object
-
- com.azure.messaging.eventgrid.EventGridPublisherClient<T>
-
public final class EventGridPublisherClient<T> extends Object
A service client that publishes events to an EventGrid topic or domain. UseEventGridPublisherClientBuilder
to create an instance of this client. Note that this is simply a synchronous convenience layer over theEventGridPublisherAsyncClient
, which has more efficient asynchronous functionality and is recommended.Create EventGridPublisherClient for CloudEvent Samples
// Create a client to send events of CloudEvent schema (com.azure.core.models.CloudEvent) EventGridPublisherClient<CloudEvent> cloudEventPublisherClient = new EventGridPublisherClientBuilder() .endpoint(System.getenv("AZURE_EVENTGRID_CLOUDEVENT_ENDPOINT")) // make sure it accepts CloudEvent .credential(new AzureKeyCredential(System.getenv("AZURE_EVENTGRID_CLOUDEVENT_KEY"))) .buildCloudEventPublisherClient();
Send CloudEvent Samples
// Create a com.azure.models.CloudEvent. User user = new User("Stephen", "James"); CloudEvent cloudEventDataObject = new CloudEvent("/cloudevents/example/source", "Example.EventType", BinaryData.fromObject(user), CloudEventDataFormat.JSON, "application/json"); // Send a single CloudEvent cloudEventPublisherClient.sendEvent(cloudEventDataObject); // Send a list of CloudEvents to the EventGrid service altogether. // This has better performance than sending one by one. cloudEventPublisherClient.sendEvents(Arrays.asList( cloudEventDataObject // add more CloudEvents objects ));
Create EventGridPublisherClient for EventGridEvent Samples
// Create a client to send events of EventGridEvent schema EventGridPublisherClient<EventGridEvent> eventGridEventPublisherClient = new EventGridPublisherClientBuilder() .endpoint(System.getenv("AZURE_EVENTGRID_EVENT_ENDPOINT")) // make sure it accepts EventGridEvent .credential(new AzureKeyCredential(System.getenv("AZURE_EVENTGRID_EVENT_KEY"))) .buildEventGridEventPublisherClient();
Send EventGridEvent Samples
// Create an EventGridEvent User user = new User("John", "James"); EventGridEvent eventGridEvent = new EventGridEvent("/EventGridEvents/example/source", "Example.EventType", BinaryData.fromObject(user), "0.1"); // Send a single EventGridEvent eventGridEventPublisherClient.sendEvent(eventGridEvent); // Send a list of EventGridEvents to the EventGrid service altogether. // This has better performance than sending one by one. eventGridEventPublisherClient.sendEvents(Arrays.asList( eventGridEvent // add more EventGridEvents objects ));
Create EventGridPublisherClient for Custom Event Schema Samples
// Create a client to send events of custom event EventGridPublisherClient<BinaryData> customEventPublisherClient = new EventGridPublisherClientBuilder() .endpoint(System.getenv("AZURE_CUSTOM_EVENT_ENDPOINT")) // make sure it accepts custom events .credential(new AzureKeyCredential(System.getenv("AZURE_CUSTOM_EVENT_KEY"))) .buildCustomEventPublisherClient();
Send Custom Event Schema Samples
// Create an custom event object Map<String, Object> customEvent = new HashMap<String, Object>() { { put("id", UUID.randomUUID().toString()); put("subject", "Test"); put("foo", "bar"); put("type", "Microsoft.MockPublisher.TestEvent"); put("data", 100.0); put("dataVersion", "0.1"); } }; // Send a single custom event customEventPublisherClient.sendEvent(BinaryData.fromObject(customEvent)); // Send a list of custom events to the EventGrid service altogether. // This has better performance than sending one by one. customEventPublisherClient.sendEvents(Arrays.asList( BinaryData.fromObject(customEvent) // add more custom events in BinaryData ));
- See Also:
EventGridEvent
,CloudEvent
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static String
generateSas(String endpoint, com.azure.core.credential.AzureKeyCredential keyCredential, OffsetDateTime expirationTime)
Generate a shared access signature to provide time-limited authentication for requests to the Event Grid service with the latest Event Grid service API defined inEventGridServiceVersion.getLatest()
.static String
generateSas(String endpoint, com.azure.core.credential.AzureKeyCredential keyCredential, OffsetDateTime expirationTime, EventGridServiceVersion apiVersion)
Generate a shared access signature to provide time-limited authentication for requests to the Event Grid service.void
sendEvent(T event)
Publishes the given event to the set topic or domain and gives the response issued by EventGrid.void
sendEvents(Iterable<T> events)
Publishes the given events to the given topic or domain.com.azure.core.http.rest.Response<Void>
sendEventsWithResponse(Iterable<T> events, com.azure.core.util.Context context)
Publishes the given events to the set topic or domain and gives the response issued by EventGrid.com.azure.core.http.rest.Response<Void>
sendEventsWithResponse(Iterable<T> events, String channelName, com.azure.core.util.Context context)
Publishes the given events to the set topic or domain and gives the response issued by EventGrid.
-
-
-
Method Detail
-
generateSas
public static String generateSas(String endpoint, com.azure.core.credential.AzureKeyCredential keyCredential, OffsetDateTime expirationTime)
Generate a shared access signature to provide time-limited authentication for requests to the Event Grid service with the latest Event Grid service API defined inEventGridServiceVersion.getLatest()
.- Parameters:
endpoint
- the endpoint of the Event Grid topic or domain.expirationTime
- the time in which the signature should expire, no longer providing authentication.keyCredential
- the access key obtained from the Event Grid topic or domain.- Returns:
- the shared access signature string which can be used to construct an instance of
AzureSasCredential
. - Throws:
NullPointerException
- if keyCredential or expirationTime isnull
.RuntimeException
- if java security doesn't have algorithm "hmacSHA256".
-
generateSas
public static String generateSas(String endpoint, com.azure.core.credential.AzureKeyCredential keyCredential, OffsetDateTime expirationTime, EventGridServiceVersion apiVersion)
Generate a shared access signature to provide time-limited authentication for requests to the Event Grid service.- Parameters:
endpoint
- the endpoint of the Event Grid topic or domain.expirationTime
- the time in which the signature should expire, no longer providing authentication.keyCredential
- the access key obtained from the Event Grid topic or domain.apiVersion
- the EventGrid service api version defined inEventGridServiceVersion
- Returns:
- the shared access signature string which can be used to construct an instance of
AzureSasCredential
. - Throws:
NullPointerException
- if keyCredential or expirationTime isnull
.RuntimeException
- if java security doesn't have algorithm "hmacSHA256".
-
sendEvents
public void sendEvents(Iterable<T> events)
Publishes the given events to the given topic or domain.- Parameters:
events
- the cloud events to publish.- Throws:
NullPointerException
- if events isnull
.
-
sendEventsWithResponse
public com.azure.core.http.rest.Response<Void> sendEventsWithResponse(Iterable<T> events, com.azure.core.util.Context context)
Publishes the given events to the set topic or domain and gives the response issued by EventGrid.- Parameters:
events
- the events to publish.context
- the context to use along the pipeline.- Returns:
- the response from the EventGrid service.
- Throws:
NullPointerException
- if events isnull
.
-
sendEventsWithResponse
public com.azure.core.http.rest.Response<Void> sendEventsWithResponse(Iterable<T> events, String channelName, com.azure.core.util.Context context)
Publishes the given events to the set topic or domain and gives the response issued by EventGrid.- Parameters:
events
- the events to publish.channelName
- the channel name to send to Event Grid service. This is only applicable for sending Cloud Events to a partner topic in partner namespace. For more details, refer to Partner Events Overview.context
- the context to use along the pipeline.- Returns:
- the response from the EventGrid service.
- Throws:
NullPointerException
- if events isnull
.
-
sendEvent
public void sendEvent(T event)
Publishes the given event to the set topic or domain and gives the response issued by EventGrid.- Parameters:
event
- the event to publish.- Throws:
NullPointerException
- if events isnull
.
-
-