com.microsoft.azure.functions.annotation

Copyright (c) Microsoft Corporation. Todos os direitos reservados. Licenciado sob a licença MIT. Consulte License.txt na raiz do projeto para obter informações de licença. Anotações e classes de suporte para uso como parte da API Java para Azure Functions.

Classes

BindingTest

Testes de unidade que impõem contratos de anotação e convenções para o Functions

Interfaces

BindingName

Coloque isso em um parâmetro cujo valor viria de Azure Functions runtime. Use essa anotação quando quiser obter o valor dos metadados de gatilho ou quando definir suas próprias associações em function.json manualmente.

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}") Conteúdo da cadeia de caracteres ) { retornar conteúdo; }

BlobTrigger

BindingName("name") Nome do arquivo de cadeia de caracteres, contexto final executionContext ) { context.getLogger().info("Name: " + filename + ", Size: " + content.length + " bytes"); }

CosmosDBInput

CosmosDBInput(name = "database", databaseName = "ToDoList", collectionName = "Items", id = "{Query.id}", connectionStringSetting = "AzureCosmosDBConnection") Item de cadeia de caracteres opcional<> ) { item de retorno.orElse("Não encontrado"); }

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") List<Map<String,>> Itens de cadeia de caracteres, contexto final executionContext ) { context.getLogger().info(items.size() + " item(s) is/are inserted."); if (!items.isEmpty()) { context.getLogger().info("A ID do primeiro item é: " + 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") Conteúdo da cadeia de caracteres, contexto final ExecutionContext ) { 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

Define uma estratégia de repetição de retirada exponencial, em que o atraso entre as repetições ficará progressivamente maior, limitado pelo máximo/min especificado.

FixedDelayRetry

Define uma estratégia de repetição em que um atraso fixo é usado entre novas tentativas.

FunctionName

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

HttpOutput

Coloque isso em um parâmetro cujo valor seria enviado de volta para o usuário como uma resposta HTTP. O tipo de parâmetro deve ser OutputBinding<T>, em que T pode ser um dos seguintes:

    <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")); return name == null ? "Passe um nome na cadeia de caracteres de consulta ou no corpo da solicitação" : "Hello " + 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 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

Coloque isso em um parâmetro cujo valor seria gravado em SendGrid. O tipo de parâmetro deve ser OutputBinding<T>, em que T pode ser um dos seguintes:

    <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") final String message, final ExecutionContext context ) { context.getLogger().info("Message is received: " + message); }

ServiceBusTopicOutput

Coloque isso em um parâmetro cujo valor seria gravado em um tópico do barramento de serviço. O tipo de parâmetro deve ser OutputBinding<T>, em que T pode ser um dos seguintes:

    <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

Aplique essa anotação a um método se você tiver vários gatilhos/entrada/saída do Armazenamento do Azure nesse método que compartilham o mesmo nome de configuração de aplicativo da cadeia de conexão do Armazenamento do Azure.

TableInput

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

TableOutput

Coloque isso em um parâmetro cujo valor seria gravado em uma tabela de armazenamento. O tipo de parâmetro deve ser OutputBinding<T>, em que T pode ser um dos seguintes:

    <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 is a JSON string, you can deserialize-lo para um objeto usando seu contexto de biblioteca JSON favorito.getLogger().info("Timer is triggered: " + timerInfo); }

TwilioSmsOutput

Coloque isso em um parâmetro cujo valor seria enviado por meio do Twilio SMS. O tipo de parâmetro deve ser OutputBinding<T>, em que T pode ser um dos seguintes:

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

Enumerações

AccessRights

Barramento de Serviço do Azure permissão.

AuthorizationLevel

Nível de autorização HTTP do Azure Determina quais chaves, se houver, precisam estar presentes na solicitação para invocar a função.

Cardinality

Cardinalidade da entrada EventHubTrigger. Escolha 'ONE' se a entrada for uma única mensagem ou 'Muitos' se a entrada for uma matriz de mensagens. 'Muitos' é o padrão se não for especificado