Create an Azure Function package¶
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.


2. Choose the data provider¶
The Azure App Registration data provider whose service principal authenticates against Azure.

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.
Related¶
- Packages overview
- Create a PowerShell package — for calling an HTTP endpoint without a function app
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.