com.microsoft.azure.functions.annotation

Copyright (c) Microsoft Corporation. Alle Rechte vorbehalten. Lizenziert unter der MIT-Lizenz. Lizenzinformationen finden Sie unter License.txt im Projektstamm. Anmerkungen und Unterstützungsklassen für die Verwendung als Teil der Java-API für Azure Functions.

Klassen

BindingTest

Komponententests, die Anmerkungsverträge und Konventionen für Functions erzwingen

Schnittstellen

BindingName

Platzieren Sie dies für einen Parameter, dessen Wert aus Azure Functions Runtime stammen würde. Verwenden Sie diese Anmerkung, wenn Sie den Wert der Triggermetadaten abrufen möchten oder wenn Sie ihre eigenen Bindungen manuell in function.json definiert haben.

BlobInput

BlobInput(name = "file", dataType = "binary", path = "samples-workitems/{queueTrigger}") byte[] content, final ExecutionContext context ) { context.getLogger().info("The size of \"" + filename + "" is: " + content.length + " bytes"); }

BlobOutput

BlobInput(name = "source", path = "samples-workitems/{queueTrigger}") String content ) { return content; }

BlobTrigger

BindingName("name") String filename, final ExecutionContext context ) { context.getLogger().info("Name: " + filename + ", Size: " + content.length + " bytes"); }

CosmosDBInput

CosmosDBInput(name = "database", databaseName = "ToDoList", collectionName = "Items", id = "{Query.id}", connectionStringSetting = "AzureCosmosDBConnection") Optionales<Zeichenfolgenelement> ) { return item.orElse("Not found"); }

CosmosDBOutput

CosmosDBOutput(name = "database", databaseName = "ToDoList", collectionName = "Items", connectionStringSetting = "AzureCosmosDBConnection") ) { return "{ \"id": "" + System.currentTimeMillis() + "", "description": "" + message + "" }"; }

CosmosDBTrigger

CosmosDBTrigger(name = "database", databaseName = "ToDoList", collectionName = "Items", leaseCollectionName = "leases", createLeaseCollectionIfNotExists = true, connectionStringSetting = "AzureCosmosDBConnection") Listenzuordnungszeichenfolge<<, Zeichenfolgenelemente>>, abschließender ExecutionContext-Kontext ) { context.getLogger().info(items.size() + " item(s) is/are inserted."); if (!items.isEmpty()) { context.getLogger().info("Die ID des ersten Elements ist: " + items.get(0).get("id")); } }

CustomBinding

CustomBinding(direction = "in", name = "inputParameterName", type = "customBindingTrigger") String customTriggerInput final ExecutionContext context ) { context.getLogger().info(customTriggerInput); }

EventGridOutput

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); }

EventGridTrigger

EventGridTrigger(name = "event") String content, final ExecutionContext context ) { context.getLogger().info(content); }

EventHubOutput

TimerTrigger(name = "sendTimeTrigger", schedule = "0 *&#47;5 * * * *") String timerInfo ) { return LocalDateTime.now().toString(); }

EventHubTrigger

EventHubTrigger(name = "event", eventHubName = "samples-workitems", connection = "AzureEventHubConnection") String message, final ExecutionContext context ) { context.getLogger().info("Event Hub message received: " + message); }

ExponentialBackoffRetry

Definiert eine exponentielle Wiederholungsstrategie für backoffs, bei der die Verzögerung zwischen Wiederholungsversuchen schrittweise größer wird, begrenzt durch die angegebene Max/Min.

FixedDelayRetry

Definiert eine Wiederholungsstrategie, bei der eine feste Verzögerung zwischen Wiederholungen verwendet wird.

FunctionName

HttpTrigger(name = "req", methods = {"get"}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<String>> request) { .... }

HttpOutput

Platzieren Sie dies für einen Parameter, dessen Wert als HTTP-Antwort zurück an den Benutzer gesendet wird. Der Parametertyp sollte OutputBinding<T> sein, wobei T eine der folgenden Sein kann:

    <li>
    
      <p>
    
        <xref uid="com.microsoft.azure.functions.HttpResponseMessage" data-throw-if-not-resolved="false" data-raw-source="HttpResponseMessage"></xref>
    
      </p>
    
    </li>
    
    <li>
    
      <p>Any native Java types such as int, String, byte[] </p>
    
    </li>
    
    <li>
    
      <p>Any POJO type </p>
    
    </li>
    

HttpTrigger

HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) final HttpRequestMessage<Optional<String>> request) { String name = request.getBody().orElseGet(() -> request.getQueryParameters().get("name")); rückgabename == null ? "Übergeben Sie einen Namen in der Abfragezeichenfolge oder im Anforderungstext" : "Hallo " + Name; }

KafkaOutput

KafkaOutput(name = "event", topic = "users", brokerList="broker:29092") OutputBinding<String<output, final ExecutionContext context) { context.getLogger().info("Message:" + message); output.setValue(message); return "{ \"id": "" + System.currentTimeMillis() + "", "description": "" + message + "" }"; }

KafkaTrigger

KafkaTrigger(name = "kafkaTrigger", topic = "users", brokerList="broker:29092", consumerGroup="functions") List<Map<String, String>> kafkaEventData, final ExecutionContext context ) { context.getLogger().info(kafkaEventData); }

QueueOutput

HttpOutput(name = "response") final OutputBinding<String> result ) { result.setValue(message + " has been added."); return message; }

QueueTrigger

QueueTrigger(name = "msg", queueName = "myqueue-items", connection = "AzureWebJobsStorage") String message, final ExecutionContext context ) { context.getLogger().info("Queue message processed: " + message); }

SendGridOutput

Platzieren Sie dies für einen Parameter, dessen Wert in SendGrid geschrieben wird. Der Parametertyp sollte OutputBinding<T> sein, wobei T eine der folgenden Sein kann:

    <li>
    
      <p>Any native Java types such as int, String, byte[] </p>
    
    </li>
    
    <li>
    
      <p>Any POJO type </p>
    
    </li>
    

ServiceBusQueueOutput

HttpOutput(name = "response") final OutputBinding<String> result ) { result.setValue(message + " has been sent."); return message; }

ServiceBusQueueTrigger

ServiceBusQueueTrigger(name = "msg", queueName = "myqueue", connection = "AzureServiceBusConnection") letzte String-Nachricht, abschließender ExecutionContext-Kontext ) { context.getLogger().info("Message is received: " + message); }

ServiceBusTopicOutput

Platzieren Sie dies für einen Parameter, dessen Wert in ein Service Bus-Thema geschrieben wird. Der Parametertyp sollte OutputBinding<T> sein, wobei T eine der folgenden Sein kann:

    <li>
    
      <p>Any native Java types such as int, String, byte[] </p>
    
    </li>
    
    <li>
    
      <p>Any POJO type </p>
    
    </li>
    

ServiceBusTopicTrigger

ServiceBusTopicTrigger(name = "msg", topicName = "mytopicname", subscriptionName = "mysubname", connection = "myconnvarname") String message, final ExecutionContext context ) { context.getLogger().info(message); }

StorageAccount

Wenden Sie diese Anmerkung auf eine Methode an, wenn Sie über mehrere Azure Storage-Trigger/-Eingaben/-Ausgaben in dieser Methode verfügen, die denselben App-Einstellungsnamen wie die Azure Storage-Verbindungszeichenfolge verwenden.

TableInput

TableInput(name = "items", tableName = "mytablename", partitionKey = "myparkey", connection = "myconnvarname") MyItem[] items ) { return items.length; }

TableOutput

Platzieren Sie dies für einen Parameter, dessen Wert in eine Speichertabelle geschrieben wird. Der Parametertyp sollte OutputBinding<T> sein, wobei T eine der folgenden Sein kann:

    <li>
    
      <p>Any native Java types such as int, String, byte[] </p>
    
    </li>
    
    <li>
    
      <p>Any POJO type </p>
    
    </li>
    

TimerTrigger

TimerTrigger(name = "keepAliveTrigger", schedule = "0 *&#47;5 * * * * ") String timerInfo, ExecutionContext context ) { // timeInfo ist eine JSON-Zeichenfolge, Sie können es mithilfe Ihrer bevorzugten JSON-Bibliothek context.getLogger().info("Timer wird ausgelöst: " + timerInfo); }

TwilioSmsOutput

Platzieren Sie dies für einen Parameter, dessen Wert über twilio SMS gesendet wird. Der Parametertyp sollte OutputBinding<T> sein, wobei T eine der folgenden Sein kann:

    <li>
    
      <p>Any native Java types such as int, String, byte[] </p>
    
    </li>
    
    <li>
    
      <p>Any POJO type </p>
    
    </li>
    

Enumerationen

AccessRights

Azure Service Bus Berechtigung.

AuthorizationLevel

Azure HTTP-Autorisierungsebene: Bestimmt, welche Schlüssel in der Anforderung vorhanden sein müssen, um die Funktion aufzurufen.

Cardinality

Kardinalität der EventHubTrigger-Eingabe. Wählen Sie "ONE", wenn die Eingabe eine einzelne Nachricht ist, oder "Viele", wenn die Eingabe ein Array von Nachrichten ist. "Viele" ist die Standardeinstellung, wenn sie nicht angegeben ist.