- Add SCF/Azure Gradle sample and docs. - Move the function-azure-di-samples into standalone projects. - Apply the name convetion and project structure for the SCF adaptes. E.g. function-sample-azure-XXX projects under the spring-cloud-function-samples root. - Remove the redudant samples. - Improve the samples docs and the Adapter generic docs. - Streamline docs. - Add azure web adapter sample and README. - Add Spring Azure Functions banner for azure and azure web adapters. - azure-web adapter fixes: - Fix issues in serverles-web ProxyHttpServletResponse implementation. - Remove the custom FunctionClassUtils utils in favor of scf-context/util/FunctionClassUtils. - Remove redundant files. - Add FunctionInvoker deprecation annotations. - Extend the time trigger sample with Retry policies example.
94 lines
2.3 KiB
Plaintext
94 lines
2.3 KiB
Plaintext
== Azure Functions HTTP triggers sample
|
|
|
|
IMPORTANT: For a general information about building and deploying `Azure Functions` with Spring Cloud Function, consult the https://docs.spring.io/spring-cloud-function/docs/current/reference/html/azure.html[Azure Adapter] documentation.
|
|
|
|
Azure Functions may be invoked via HTTP requests to build serverless APIs.
|
|
Find more about the https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-http-webhook?tabs=in-process%2Cfunctionsv2&pivots=programming-language-java[HTTP triggers].
|
|
|
|
=== Usage
|
|
|
|
==== Package Staging folder
|
|
|
|
Use the script below to package your staging folder:
|
|
|
|
[source,shell]
|
|
----
|
|
./mvnw clean package
|
|
----
|
|
|
|
==== Run Azure Functions locally
|
|
|
|
Use the script below to run the function locally.
|
|
|
|
[source,shell]
|
|
----
|
|
./mvnw azure-functions:run
|
|
----
|
|
|
|
NOTE: To run locally on top of `Azure Functions`, and to deploy to your live Azure environment, you will need `Azure Functions Core Tools` installed along with the Azure CLI (see https://docs.microsoft.com/en-us/azure/azure-functions/create-first-function-cli-java?tabs=bash%2Cazure-cli%2Cbrowser#configure-your-local-environment[here]).
|
|
|
|
NOTE: https://github.com/Azure/azure-functions-core-tools[Azure Functions Core Tools] version `4.0.5030` or newer is required!
|
|
|
|
For some configuration you would need the https://learn.microsoft.com/en-us/azure/storage/common/storage-use-emulator[Azurite emulator] as well.
|
|
|
|
|
|
==== Deploy Azure Functions to Azure Cloud
|
|
|
|
Make sure you are logged in your Azure account.
|
|
|
|
[source,shell]
|
|
----
|
|
az login
|
|
----
|
|
|
|
then build and deploy
|
|
|
|
[source,shell]
|
|
----
|
|
./mvnw clean package
|
|
./mvnw azure-functions:deploy
|
|
----
|
|
|
|
|
|
==== Debug locally
|
|
|
|
Run the function in debug mode.
|
|
|
|
[source,shell]
|
|
----
|
|
./mvnw azure-functions:run -DenableDebug
|
|
----
|
|
|
|
Alternatively and the `JAVA_OPTS` value to your `local.settings.json` like this:
|
|
|
|
[source,json]
|
|
----
|
|
{
|
|
"IsEncrypted": false,
|
|
"Values": {
|
|
...
|
|
"FUNCTIONS_WORKER_RUNTIME": "java",
|
|
"JAVA_OPTS": "-Djava.net.preferIPv4Stack=true -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=127.0.0.1:5005"
|
|
}
|
|
}
|
|
----
|
|
|
|
|
|
For VSCode remote debug use configuration like this:
|
|
|
|
[source,json]
|
|
----
|
|
{
|
|
"version": "0.2.0",
|
|
"configurations": [
|
|
{
|
|
"type": "java",
|
|
"name": "Attach to Remote Program",
|
|
"request": "attach",
|
|
"hostName": "localhost",
|
|
"port": "5005"
|
|
},
|
|
...
|
|
]
|
|
}
|
|
---- |