Azure functions samples in Java
This repository contains samples which show the usage of Azure Functions in Java for the below scenarios.
Scenario | Description |
---|---|
HttpTrigger | Basic HttpTrigger and FixedDelayRetry with HttpTrigger. |
BlobTrigger | BlobTrigger, read blob using BlobInput binding and output to blob using BlobOutput binding. |
CosmosDBTrigger | CosmosDBTrigger, read cosmos DB entries with CosmosDBInput binding and output to cosmos DB CosmosDBOutput binding. |
TimerTrigger | Basic periodic TimerTrigger. |
EventGridTrigger | EventGridTrigger and send event to Event Grid using EventGridOutput binding. |
EventHubTrigger | EventHubTrigger for message received in event grid and output to event grid using EventHubOutput binding. |
KafkaTrigger | KafkaTrigger with KafkaOutput and QueueOutput example. |
QueueTrigger | QueueTrigger to read content from queue and output to queue using QueueOutput binding. |
ServiceBusQueueTrigger | ServiceBusQueueTrigger to read message from a queue in service bus and output to service bus queue using ServiceBusQueueOutput binding. |
ServiceBusTopicTrigger | ServiceBusTopicTrigger to read message from a topic in service bus and output to service bus topic using ServiceBusTopicOutput binding. |
Table function | Basic example to read and write to table in Azure Storage using TableInput and TableOutput binding. |
Durable function | Durable function example to start an orchestration and follow activity chaining. |
Distributed tracing | Distributed tracing example that adds entries to a MYSQL database via JDBC, adds custom metrics to the Application Insights and outputs to cosmos DB CosmosDBOutput binding. |
Dependency injection - Dagger | Dagger example that shows the usage of dependency injection with azure functions. |
Dependency injection - Guice | Google guice example that shows the usage of dependency injection with azure functions. |
Spring cloud | Usage of Spring cloud to develop a function. |
Contents
Outlines the contents of this repository. It helps users navigate the codebase, build configuration and any related assets.
File/folder | Description |
---|---|
triggers-bindings |
Triggers and bindings available in Azure functions. |
dependency-injection |
Integration of Google Guice and Dagger with Azure Functions. |
spring-cloud |
Usage of Spring cloud to develop a Java function. |
distributed-tracing |
Sample that shows the usage of distributed tracing coupled with azure functions. |
durable-function |
Durable function example to run orchestrations and activities. |
.gitignore |
Define what to ignore at commit time. |
CHANGELOG.md |
List of changes to the sample. |
CONTRIBUTING.md |
Guidelines for contributing to the sample. |
README.md |
This README file. |
LICENSE.txt |
The license for the sample. |
Prerequisites
- Gradle 4.10+
- Latest Function Core Tools
- Azure CLI. This plugin use Azure CLI for authentication, please make sure you have Azure CLI installed and logged in.
Setup
Please refer individual directories for sample specific setup. Some common setup instructions are provided below.
-
az login az account set -s <your subscription id>
Update the Application settings in Azure portal with the required parameters as below
- AzureWebJobsStorage: Connection string to your storage account
- CosmosDBDatabaseName: Cosmos database name. Example: ItemCollectionIn
- CosmosDBCollectionName:Cosmos database collection name. Example: ItemDb
- AzureWebJobsCosmosDBConnectionString: Connection string to your Cosmos database
- AzureWebJobsEventGridOutputBindingTopicUriString: Event Grid URI
- AzureWebJobsEventGridOutputBindingTopicKeyString: Event Grid string
- AzureWebJobsEventHubSender, AzureWebJobsEventHubSender_2 : Event hub connection string
- AzureWebJobsServiceBus: Service bus connection string
- SBQueueName: Service bus queue name. Example: test-input-java
- SBTopicName: Service bus topic name. Example: javaworkercitopic2
- SBTopicSubName: Service bus topic name. Example: javaworkercisub
- Documentation on how to manage connection strings and access keys
Update
host.json
with the right extension bundle version.V3 - [1.*, 2.0.0) and V4 - [2.*, 3.0.0)
Running the sample
./mvnw clean package azure-functions:run
./gradlew clean azureFunctionsRun
Deploy the sample on Azure
./mvnw clean package azure-functions:deploy
./gradlew clean azureFunctionsDeploy
NOTE: please replace '/' with '\' when you are running on windows.
Contributing
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
Telemetry
This project collects usage data and sends it to Microsoft to help improve our products and services.
Read Microsoft's privacy statement to learn more.
If you would like to opt out of sending telemetry data to Microsoft, you can set allowTelemetry
to false in the plugin configuration.
Please read our document to find more details about allowTelemetry.