How to Deploy as an Azure Function

◷ Reading Time: 9 minutes

You can deploy a project as an Azure Function. By doing this, it will not be required to install FlexRule Server in order to get the service URL of your project.

For example, we are deploying this Decision Table. It takes a person’s age as an input and outputs the title according to the age range.

This is the input object of the decision table.

{
     "person":
     {
         "Age":0,
         "Title":null
     }
 }

The complete project is attached at the end of the page.

How to Deploy

The objects we deploy are accessible to everyone in your resource group. You may want to consider the access permissions to these objects and manage these via your group permissions roles.

Open the Project’s Entry Document

Open your project’s entry document.
In this example, the decision table is the entry document.

Open Package Builder

Click on the Package Builder.

Add your package details such as,

  • Package identifier
  • Package version
  • Service version

Go to Deployment tab and select Azure Function.

Enter Azure subscription details.

Optionally, you can create a JSON according to the following template and save it as a JSON file (.json). Then use the button to upload the created JSON file with Azure subscription details.
{
     ClientId: "123435a7-331f-4da7-bbe3-da50rer34383",
     ClientSecret: "vH.F3y-_3Ll1YSX7~WQz397fMwXtOEmp49",
     SubscriptionId:"6ckc658b-ea39-4f9d-a5vc-6c48902f90c9",
     TenantId:"14967fee-0cm3-4ewb-bv5a-f5e23ee2e234",
     Region:"Australia East",
     ResourceGroup:"dev grop"
 }

Download the cloud-deployment Runtime file from the FlexRule user portal’s Licenses section, if you haven’t downloaded it already (If you require a license, contact the support team).

Select the Runtime license file. The Runtime folder will be automatically taken from the Runtime path you have defined in your project.

Click Publish.

Once the package was created successfully, you will see a confirmation message.

The deployment will happen in the background. On the background task window, you will see the list of deployment tasks.

The complete list of deployment tasks can be seen along with their status.

View Deployment URLs

Click on View Task Result to see the results.

You will receive the URLs of the successful deployment.

  • Execute Url: The URL to be used to call the service
    e.g.
    https://defineagetitle-9johvqo.azurewebsites.net/api/Execute/defineagetitle/1/person growing state/1?code=BJuUFuvcMbdN0P1Y8wkrrIfizL0ePw5JGqPHdYsFO9FBAzFu9jW4fA==
  • Package Name Url: Retrieve the list of naming applications with the same package name
    e.g.
    https://defineagetitle-9johvqo.azurewebsites.net/api/Services/defineagetitle/?code=FenY0rALPNquoR8b6YbJLPmj-XOlshfqd31kVp9ILhqyAzFuK3N-kA==
  • Package Version Url: Retrieve the list of naming applications with the same package name and Package version
    e.g.
    https://defineagetitle-9johvqo.azurewebsites.net/api/Services/defineagetitle/1/?code=FenY0rALPNquoR8b6YbJLPmj-XOlshfqd31kVp9ILhqyAzFuK3N-kA==
  • Service Version Url: Retrieve the list of parameters
    e.g.
    https://defineagetitle-9johvqo.azurewebsites.net/api/Services/defineagetitle/1/person growing state/1?code=FenY0rALPNquoR8b6YbJLPmj-XOlshfqd31kVp9ILhqyAzFuK3N-kA==
  • Services Url: Retrieve the list of available services
    e.g.
    https://defineagetitle-9johvqo.azurewebsites.net/api/Services/?code=FenY0rALPNquoR8b6YbJLPmj-XOlshfqd31kVp9ILhqyAzFuK3N-kA==

Update Runtime License

Updating Runtime on Azure functions are as easy as updating the configuration of the function for the environment variable named FlexRule.LicenseContent

Find the Function in Azure portal

Update an Existing App

In Azure Portal navigate to Functions and click on the function you want to update its Runtime license as below.

Functions list of the Azure Portal

Open to Configuration

The Function panel will have a Configuration section on the left-hand side. Or you can type the Config and select it from the navigation panel.

Configuration is selected from the navigation panel

Find the License Setting

In the application Settings, there is a setting named FlexRule.LicenseContent as the screenshot below illustrates:

FlexRule.LicenseContent in the list of settings

Update License Content

Click on the FlexRule.LicenseContent and an application settings editor will be displayed.

Editor for updating the Value

Open your license file in a text editor (e.g. notepad), copy all the contents and paste it in the Value field. Then press OK.

When copying/pasting license content make sure you select all the content and then copy all the content (as the content is large). Also, clear the old value from the field first, to make sure new content fully replaces the old license.

Update an Existing App

Once you deploy a service, you can use the following options to update the service.

  • Identifier: This should be similar to the identifier name you provided on the initial deployment
  • Identifier Version: This should be similar to the identifier version you provided on the initial deployment
  • Service Version: This is the new service version, which should be different from the version you provided on the previous deployment

Then add the following information under the Deployment tab.

  • Update App: Select this if you want to update an app
  • Function App Name: The name of the Function App (Copy the exact app name from the Azure portal or from the execute URL)
  • Set as Default: If you want to set the version that you are about to publish as default, select this

Function App Name can be extracted from the execute/ service URL

https://defineagetitle-vgke35s. azurewebsites.net/api/Execute/defineagetitle/1/person growing state/1?code=YF/cCCUW/C6nIcqjszaTCYlIM8V5c4Kmr86t4PoFeyeZPNJTNIaRVQ==

Or get Function App Name from Azure Resource Group

Once the re-deployment is completed successfully, you can access the new version via the default URL.

Note that the default version does not specify a service version. We set the default to the latest deployment version.

https://defineagetitle-vgke35s.azurewebsites.net/api/Execute/defineagetitle/1/person growing state?code=YF/cCCUW/C6nIcqjszaTCYlIM8V5c4Kmr86t4PoFeyeZPNJTNIaRVQ== 

Troubleshooting

If there are any errors, you can see the specific task(s) with the error(s).

Select the errored task and click on View Task Result to see the detailed exception.

You will be able to see the detailed exception message.

If you select a task and click Repeat Task, you can re-run the selected task.

Once the deployment is completed you can see the completed status with the icon .

Updated on March 9, 2024

Article Attachments

Was this article helpful?

Related Articles