All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.microsoft.azure.functions.annotation.EventGridOutput Maven / Gradle / Ivy

Go to download

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