Streamline and refactor the azure and the azure-web adapters.
- 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.
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
== 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"
|
||||
},
|
||||
...
|
||||
]
|
||||
}
|
||||
----
|
||||
Reference in New Issue
Block a user