Skip to content

Latest commit

 

History

History

dashboard-web-app

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

Deploy Inventory Hub Java Web App =TO=> Azure App Service

This Inventory Hub app is a Java application. It displays product inventory using AngularJS code in client browsers.

Behind the scene, the inventory data store is Azure CosmosDB and Azure Event Hubs as for data ingestion Data ingestion. Event Hubs - is a "fully managed" cloud scale ingestion of events.

This application uses:

TOC

Requirements

Create Azure Cosmos DB and Event Hub

You can follow steps described in the [deployment folder][../deployment/README.md].

Configuration

Note down your Cosmos DB uri and key from the last step. Be prepared to specify a database name but there is no need to create it. Pick an Azure Resource Group name and Web app name for App Service - you can use an existing resource group and Web app or let the Maven plugin create one for you. Set these values in system environment variables:

COSMOSDB_URI=put-your-COSMOSDB-uri-here
COSMOSDB_KEY=put-your-COSMOSDB-key-here
COSMOSDB_DBNAME=put-your-COSMOSDB-databasename-here

NOTIFICATIONS_EVENT_HUB_NAME=put-your-eventhub-for-notifications
NOTIFICATIONS_EVENT_HUB_FQDN=put-your-eventhub-fqdn
NOTIFICATIONS_EVENT_HUB_CONSUMER_GROUP_NAME=$(uuidgen)
NOTIFICATIONS_EVENT_HUB_CONNECTION_STRING=put-your-event-hub-connection-string
NOTIFICATION_ERRORS_EVENT_HUB_NAME=put-your-event-hub-name-for-errors

NOTIFICATIONS_STORAGE_CONTAINER_NAME=put-your-storage-container-name
NOTIFICATIONS_STORAGE_CONNECTION_STRING=put-your-storage-connection-string

WEBAPP_RESOURCEGROUP_NAME=put-your-resourcegroup-name-here
WEBAPP_NAME=put-your-webapp-name-here
WEBAPP_REGION=put-your-region-here

APPINSIGHTS_INSTRUMENTATIONKEY=put-your-app-insights-instrumentation-key

DOLLAR=\$

Integrate with Spring Security using Azure Active Directory B2C - OPTIONAL STEP

Set up AAD B2C

Configuration

Note down your AAD B2C configuration settings and set the following values in your environment:

TENANT_NAME=put-your-aad-b2c-tenant-name-here
B2C_CLIENT_ID=put-your-registered-aad-application-b2c-client-id-here
B2C_CLIENT_SECRET=put-your-registered-aad-application-b2c-client-secret
B2C_REPLY_URL=<put-your-application-url>/home
B2C_LOGOUT_SUCCESS_URL=<put-your-application-url>/login
USER_FLOW_SIGNUP_SIGNIN=<put-your-aad-b2c-sign-up-sign-in-user-flow-name-here>

Build Inventory Hub Web App - JAR

mvn clean package

Run it locally - OPTIONAL STEP

mvn spring-boot:run

Or if you want to run the application with AAD B2C enabled

mvn spring-boot:run -Dspring.profiles.active=aad

Open http://localhost:8080/ you can see the Inventory Hub app

Deploy to Azure App Service

Deploy

If you want to enable AAD B2C, append -Dspring.profiles.active=add to the JAVA_OPTS App Setting item of azure-webapp-maven-plugin.
Deploy in one step.

mvn azure-webapp:deploy
...
...
[INFO] Start deploying to Web App inventory-hub...
[INFO] Authenticate with Azure CLI 2.0
[INFO] Stopping Web App before deploying artifacts...
[INFO] Successfully stopped Web App.
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource to /inventory-hub-java-on-azure/dashboard-web-app/target/azure-webapp/inventory-hub
[INFO] Trying to deploy artifact to inventory-hub...
[INFO] Renaming /inventory-hub-java-on-azure/dashboard-web-app/target/azure-webapp/inventory-hub/inventory-hub-1.0-SNAPSHOT.jar to app.jar
[INFO] Deploying the zip package inventory-hub.zip...
[INFO] Successfully deployed the artifact to https://inventory-hub.azurewebsites.net
[INFO] Starting Web App after deploying artifacts...
[INFO] Successfully started Web App.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:13 min
[INFO] Finished at: 2018-04-17T21:34:57-04:00
[INFO] Final Memory: 70M/730M
[INFO] ------------------------------------------------------------------------

Open the Inventory Hub Web app

Open it in a browser

If you turned on the aad profile using -Dspring.profiles.active-aad, it will look like this:

Clean up

Delete the Azure resources you created by running the following command:

az group delete -y --no-wait -n <your-resource-group-name>

Contribution

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.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., label, 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.

Useful links