Skip to content
Ask the community about this page

Create an Azure Function package

Timextender Orchestration & Data Quality 23.3+Timextender Data Platform 26.3+cloud

An Azure Function package invokes an HTTP-triggered function. It is the natural home for custom logic that does not belong in SQL or in a script on a gateway — calling a partner API, transforming a payload, doing something with a library that only exists in your function app.

Before you start

  • An Azure App Registration data provider in the workspace
  • An HTTP-triggered function. Timer- and queue-triggered functions cannot be invoked this way and will not be listed.
  • The function's key, unless the function is anonymous

The function key

Worth reading before you go looking for it later:

The function key sent with the request (leave blank for anonymous functions). For security the stored key is never shown — leave this blank to keep it, or type a new value to replace it.

Two consequences. A blank field on reopening does not mean the key was lost — it means the field will not show you what is stored. And to rotate the key you type the new one; there is nothing to clear first.

Keep the key in a global parameter if it needs to differ between environments.

Steps

Screenshots stop at the data provider

The images are real but end there: no service principal available to us can see a Function App on our test environment, so the function list and the steps after it have no screenshot yet. The prose comes from the product's own field help and validation.

1. Create the package

Orchestration → Packages → Create, then Azure Function from the Azure area.

Azure Function in the picker

A new Azure Function package

2. Choose the data provider

The Azure App Registration data provider whose service principal authenticates against Azure.

The data provider list

3. Choose the function

The HTTP-triggered function to invoke. Pick a data provider first to load the functions its service principal can enumerate.

The refresh button beside the field re-reads the list.

4. Enter the function key

Leave it blank for an anonymous function, or when editing a package whose key you do not want to change.

5. Save

Saves as a Draft.

Best practices

Return a meaningful status code. The package's success depends on the HTTP response, so a function that swallows its own errors and returns 200 will report success over a failure.

Keep the function fast, or make it asynchronous. A long synchronous HTTP call is fragile; have the function start work and expose a status endpoint you poll from a PowerShell package instead.

Put the key in a global parameter when it differs per environment, so promoting a package does not mean editing it.

Log inside the function too. The execution log shows the call's outcome; Application Insights shows why.

Troubleshooting

The function list is empty. Either the principal cannot enumerate the function app, or the app contains no HTTP-triggered functions. Check the role assignment on the function app first.

401 or 403 at run time. The key is wrong or has been rotated in Azure. Type the new key into the field — remember it will look blank whether or not one is stored.

The call times out. The function is doing too much synchronously, or is cold-starting on a consumption plan. Raise the package timeout, or split the work.

It worked yesterday and fails today, with no changes. Either the client secret on the data provider expired, or the function key was rotated.

Reference

Fields

Field Required Notes
Execution connection No Defaults to Timextender Cloud
Data provider Yes Azure App Registration
Function Yes HTTP-triggered only; has a refresh button
Function key No Never displayed; blank keeps the stored value

Validation: Please select a data provider, Please select a function.

Behaviour worth knowing

A stored function that is missing from a reloaded list is kept and still shown, so a package configured by someone with broader access opens correctly rather than appearing unconfigured.

Discussed in the community

Looking for related questions…

Didn't find your answer? Ask the community about this page — questions are answered by Timextender experts, partners and other users.