
com.microsoft.azure.functions.annotation.EventGridOutput Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of azure-functions-java-library Show documentation
Show all versions of azure-functions-java-library Show documentation
This package contains all Java interfaces and annotations to interact with Microsoft Azure functions runtime.
The newest version!
/**
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for
* license information.
*/
package com.microsoft.azure.functions.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
*
* Place this on a parameter whose value would come from EventGrid, and causing the method to run when an event is
* arrived. The parameter type can be one of the following:
*
*
* - Any native Java types such as String, byte[]
* - Nullable values using Optional<T>
* - Any POJO type
*
*
* The following example shows a Java function that prints out an event and then sends an event to a
* custom eventGrid topic:
*
* {@literal @}FunctionName("eventGridMonitor")
* public void logEvent(
* {@literal @}EventGridTrigger(name = "event") String content,
* {@literal @}EventGridOutput(name = "outputEvent", topicEndpointUri = "MyEventGridTopicUriSetting",
* topicKeySetting = "MyEventGridTopicKeySetting")
* OutputBinding<String> outputEvent
* final ExecutionContext context
* ) {
* context.getLogger().info(content);
* final String eventGridOutputDocument = "{\"id\": \"100\", \"eventType\":\"recordInserted\",
* \"subject\": \"myapp/test/java\", \"eventTime\":\"2017-08-10T21:03:07+00:00\",
* \"data\": {\"tag1\": \"value1\",\"tag2\":\"value2\"}, \"dataVersion\": \"1.0\"}";
* outputEvent.setValue(eventGridOutputDocument);
* }
*
* @since 1.4.0
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.PARAMETER, ElementType.METHOD})
public @interface EventGridOutput {
/**
* The variable name used in function.json.
* @return The variable name used in function.json.
*/
String name();
/**
* Defines how Functions runtime should treat the parameter value. Possible values are:
*
* - "" or string: treat it as a string whose value is serialized from the parameter
* - binary: treat it as a binary data whose value comes from for example OutputBinding<byte[]>
*
* @return The dataType which will be used by the Functions runtime.
*/
String dataType() default "";
/**
* Gets or sets the Topic Key setting. You can find information on getting the Key for a topic
* here: https://docs.microsoft.com/en-us/azure/event-grid/custom-event-quickstart#send-an-event-to-your-topic
* @return The topic key setting of the eventGrid topic.
*/
String topicKeySetting();
/**
* Gets or sets the topic events endpoint URI. Eg: https://topic1.westus2-1.eventgrid.azure.net/api/events
* This is found in the Event Grid Topic's definition. You can find information on getting the Url for a topic
* here: https://docs.microsoft.com/en-us/azure/event-grid/custom-event-quickstart#send-an-event-to-your-topic
* @return The topic events endpoint URI of the eventGrid topic.
*/
String topicEndpointUri();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy