Skip to main content 首页 创作者 phoroth agentic azure-eventgrid-java
azure-eventgrid-java Build event-driven applications with Azure Event Grid SDK for Java. Use when publishing events, implementing pub/sub patterns, or integrating with Azure services via events.
跳到安装 Skills Marketplace 发现并探索由社区构建的 Agent Skills
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/phoroth/AGENTIC --skill azure-eventgrid-java命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
下载 Zip 下载中... name azure-eventgrid-java description Build event-driven applications with Azure Event Grid SDK for Java. Use when publishing events, implementing pub/sub patterns, or integrating with Azure services via events. risk unknown source community date_added 2026-02-27
Azure Event Grid SDK for Java
Build event-driven applications using the Azure Event Grid SDK for Java.
Installation
<dependency >
<groupId > com.azure</groupId >
<artifactId > azure-messaging-eventgrid</artifactId >
<version > 4.27.0</version >
</dependency >
Client Creation
EventGridPublisherClient
import com.azure.messaging.eventgrid.EventGridPublisherClient;
import com.azure.messaging.eventgrid.EventGridPublisherClientBuilder;
import com.azure.core.credential.AzureKeyCredential;
EventGridPublisherClient<EventGridEvent> client = new EventGridPublisherClientBuilder ()
.endpoint("<topic-endpoint>" )
.credential(new AzureKeyCredential ("<access-key>" ))
.buildEventGridEventPublisherClient();
EventGridPublisherClient<CloudEvent> cloudClient = new EventGridPublisherClientBuilder ()
.endpoint("<topic-endpoint>" )
.credential(new AzureKeyCredential ("<access-key>" ))
.buildCloudEventPublisherClient();
With DefaultAzureCredential import com.azure.identity.DefaultAzureCredentialBuilder;
EventGridPublisherClient<EventGridEvent> client = new EventGridPublisherClientBuilder ()
.endpoint("<topic-endpoint>" )
.credential(new DefaultAzureCredentialBuilder ().build())
.buildEventGridEventPublisherClient();
Async Client import com.azure.messaging.eventgrid.EventGridPublisherAsyncClient;
EventGridPublisherAsyncClient<EventGridEvent> asyncClient = new EventGridPublisherClientBuilder ()
.endpoint("<topic-endpoint>" )
.credential(new AzureKeyCredential ("<access-key>" ))
.buildEventGridEventPublisherAsyncClient();
Event Types Type Description EventGridEventAzure Event Grid native schema CloudEventCNCF CloudEvents 1.0 specification BinaryDataCustom schema events
Core Patterns
Publish EventGridEvent import com.azure.messaging.eventgrid.EventGridEvent;
import com.azure.core.util.BinaryData;
EventGridEvent event = new EventGridEvent (
"resource/path" ,
"MyApp.Events.OrderCreated" ,
BinaryData.fromObject(new OrderData ("order-123" , 99.99 )),
"1.0"
);
client.sendEvent(event);
Publish Multiple Events List<EventGridEvent> events = Arrays.asList(
new EventGridEvent ("orders/1" , "Order.Created" ,
BinaryData.fromObject(order1), "1.0" ),
new EventGridEvent ("orders/2" , "Order.Created" ,
BinaryData.fromObject(order2), "1.0" )
);
client.sendEvents(events);
Publish CloudEvent import com.azure.core.models.CloudEvent;
import com.azure.core.models.CloudEventDataFormat;
CloudEvent cloudEvent = new CloudEvent (
"/myapp/orders" ,
"order.created" ,
BinaryData.fromObject(orderData),
CloudEventDataFormat.JSON
);
cloudEvent.setSubject("orders/12345" );
cloudEvent.setId(UUID.randomUUID().toString());
cloudClient.sendEvent(cloudEvent);
Publish CloudEvents Batch List<CloudEvent> cloudEvents = Arrays.asList(
new CloudEvent ("/app" , "event.type1" , BinaryData.fromString("data1" ), CloudEventDataFormat.JSON),
new CloudEvent ("/app" , "event.type2" , BinaryData.fromString("data2" ), CloudEventDataFormat.JSON)
);
cloudClient.sendEvents(cloudEvents);
Async Publishing asyncClient.sendEvent(event)
.subscribe(
unused -> System.out.println("Event sent successfully" ),
error -> System.err.println("Error: " + error.getMessage())
);
asyncClient.sendEvents(events)
.doOnSuccess(unused -> System.out.println("All events sent" ))
.doOnError(error -> System.err.println("Failed: " + error))
.block();
Custom Event Data Class public class OrderData {
private String orderId;
private double amount;
private String customerId;
public OrderData (String orderId, double amount) {
this .orderId = orderId;
this .amount = amount;
}
}
OrderData order = new OrderData ("ORD-123" , 150.00 );
EventGridEvent event = new EventGridEvent (
"orders/" + order.getOrderId(),
"MyApp.Order.Created" ,
BinaryData.fromObject(order),
"1.0"
);
Receiving Events
Parse EventGridEvent import com.azure.messaging.eventgrid.EventGridEvent;
String jsonPayload = "[{\"id\": \"...\", ...}]" ;
List<EventGridEvent> events = EventGridEvent.fromString(jsonPayload);
for (EventGridEvent event : events) {
System.out.println("Event Type: " + event.getEventType());
System.out.println("Subject: " + event.getSubject());
System.out.println("Event Time: " + event.getEventTime());
BinaryData data = event.getData();
OrderData orderData = data.toObject(OrderData.class);
}
Parse CloudEvent import com.azure.core.models.CloudEvent;
String cloudEventJson = "[{\"specversion\": \"1.0\", ...}]" ;
List<CloudEvent> cloudEvents = CloudEvent.fromString(cloudEventJson);
for (CloudEvent event : cloudEvents) {
System.out.println("Type: " + event.getType());
System.out.println("Source: " + event.getSource());
System.out.println("ID: " + event.getId());
MyEventData data = event.getData().toObject(MyEventData.class);
}
Handle System Events import com.azure.messaging.eventgrid.systemevents.*;
for (EventGridEvent event : events) {
if (event.getEventType().equals("Microsoft.Storage.BlobCreated" )) {
StorageBlobCreatedEventData blobData =
event.getData().toObject(StorageBlobCreatedEventData.class);
System.out.println("Blob URL: " + blobData.getUrl());
}
}
Event Grid Namespaces (MQTT/Pull)
Receive from Namespace Topic import com.azure.messaging.eventgrid.namespaces.EventGridReceiverClient;
import com.azure.messaging.eventgrid.namespaces.EventGridReceiverClientBuilder;
import com.azure.messaging.eventgrid.namespaces.models.*;
EventGridReceiverClient receiverClient = new EventGridReceiverClientBuilder ()
.endpoint("<namespace-endpoint>" )
.credential(new AzureKeyCredential ("<key>" ))
.topicName("my-topic" )
.subscriptionName("my-subscription" )
.buildClient();
ReceiveResult result = receiverClient.receive(10 , Duration.ofSeconds(30 ));
for (ReceiveDetails detail : result.getValue()) {
CloudEvent event = detail.getEvent();
System.out.println("Event: " + event.getType());
receiverClient.acknowledge(Arrays.asList(detail.getBrokerProperties().getLockToken()));
}
Reject or Release Events
receiverClient.reject(Arrays.asList(lockToken));
receiverClient.release(Arrays.asList(lockToken));
receiverClient.release(Arrays.asList(lockToken),
new ReleaseOptions ().setDelay(ReleaseDelay.BY_60_SECONDS));
Error Handling import com.azure.core.exception.HttpResponseException;
try {
client.sendEvent(event);
} catch (HttpResponseException e) {
System.out.println("Status: " + e.getResponse().getStatusCode());
System.out.println("Error: " + e.getMessage());
}
Enprojectnment Variables EVENT_GRID_TOPIC_ENDPOINT=https://<topic-name>.<region>.eventgrid.azure.net/api/events
EVENT_GRID_ACCESS_KEY=<your-access-key>
Best Practices
Batch Events : Send multiple events in one call when possible
Idempotency : Include unique event IDs for deduplication
Schema Validation : Use strongly-typed event data classes
Retry Logic : Built-in, but consider dead-letter for failures
Event Size : Keep events under 1MB (64KB for basic tier)
Trigger Phrases
"Event Grid Java"
"publish events Azure"
"CloudEvent SDK"
"event-driven messaging"
"pub/sub Azure"
"webhook events"
When to Use This skill is applicable to execute the workflow or actions described in the overview.
Limitations
Use this skill only when the task clearly matches the scope described above.
Do not treat the output as a substitute for enprojectnment-specific validation, testing, or expert review.
Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.