EventGridPublisherAsyncClient<T> Class
- java.
lang. Object - com.
azure. messaging. eventgrid. EventGridPublisherAsyncClient<T>
- com.
Type Parameters
- T
The type of the event to publish. One of EventGridEvent or CloudEvent.
public final class EventGridPublisherAsyncClient<T>
A service client that publishes events to an EventGrid topic or domain asynchronously. Use EventGridPublisherClientBuilder to create an instance of this client.
Create EventGridPublisherAsyncClient for CloudEvent Samples
// Create a client to send events of CloudEvent schema (com.azure.core.models.CloudEvent)
EventGridPublisherAsyncClient<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")))
.buildCloudEventPublisherAsyncClient();
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).block();
// 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
)).block();
Create EventGridPublisherAsyncClient for EventGridEvent Samples
// Create a client to send events of EventGridEvent schema
EventGridPublisherAsyncClient<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")))
.buildEventGridEventPublisherAsyncClient();
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).block();
// 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
)).block();
Create EventGridPublisherAsyncClient for Custom Event Schema Samples
// Create a client to send events of custom event
EventGridPublisherAsyncClient<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")))
.buildCustomEventPublisherAsyncClient();
Send Custom Event Schema Samples
// Create an custom event object (both POJO and Map work)
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)).block();
// Send a list of EventGridEvents 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
)).block();
Method Summary
| Modifier and Type | Method and Description |
|---|---|
| static String |
generateSas(String endpoint, 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 in getLatest(). |
| static String |
generateSas(String endpoint, AzureKeyCredential keyCredential, OffsetDateTime expirationTime, EventGridServiceVersion apiVersion)
Generate a shared access signature to provide time-limited authentication for requests to the Event Grid service. |
| reactor.core.publisher.Mono<Void> |
sendEvent(T event)
Publishes the given events to the set topic or domain. |
| reactor.core.publisher.Mono<Void> |
sendEvents(Iterable<T> events)
Publishes the given events to the set topic or domain. |
| reactor.core.publisher.Mono<Response<Void>> |
sendEventsWithResponse(Iterable<T> events)
Publishes the given events to the set topic or domain and gives the response issued by Event |
| reactor.core.publisher.Mono<Response<Void>> |
sendEventsWithResponse(Iterable<T> events, String channelName)
Publishes the given events to the set topic or domain and gives the response issued by Event |
Methods inherited from java.lang.Object
Method Details
generateSas
public static String generateSas(String endpoint, 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 in getLatest().
Parameters:
Returns:
generateSas
public static String generateSas(String endpoint, AzureKeyCredential keyCredential, OffsetDateTime expirationTime, EventGridServiceVersion apiVersion)
Generate a shared access signature to provide time-limited authentication for requests to the Event Grid service.
Parameters:
Returns:
sendEvent
public Mono<Void> sendEvent(T event)
Publishes the given events to the set topic or domain.
Parameters:
Returns:
sendEvents
public Mono<Void> sendEvents(Iterable<T> events)
Publishes the given events to the set topic or domain.
Parameters:
Returns:
sendEventsWithResponse
public Mono<Response<Void>> sendEventsWithResponse(Iterable<T> events)
Publishes the given events to the set topic or domain and gives the response issued by EventGrid.
Parameters:
Returns:
sendEventsWithResponse
public Mono<Response<Void>> sendEventsWithResponse(Iterable<T> events, String channelName)
Publishes the given events to the set topic or domain and gives the response issued by EventGrid.
Parameters:
Returns: