Edit

Share via


Service details and limitations of Fabric User Data Functions

This article details the service details and current limitations of Fabric User Data Functions.

Capacity reporting

The usage of Fabric User Data Functions is reported in the Fabric Capacity Metrics application. The capacity reports account for the creation, publishing, execution, and storage of Fabric User Data Functions. To learn more about the meters reported in the Fabric Capacity Metrics app, visit Fabric operations.

Network security requirements

In order for Fabric User Data Functions to work correctly, your network must allow "multipart/form-data" requests and file uploads to Fabric endpoints. If this requirement is not in place, the following requests may result in a Cross-origin Resource Sharing (CORS) error: publishing functions and uploading custom libraries.

Limitations

The following are current limitations for Fabric User Data Functions:

  • Functions are editable by the owner only: At this moment, only the owner of the User Data Functions item can modify and publish the functions code. For instructions on how to transfer ownership of Fabric items, see Take ownership of Fabric items.

  • Functions publish cooldown period: After publishing your functions, you need to wait at least 2 minutes before publishing again. This cooldown period is applicable when publishing from the Functions in-browser portal, the User Data Functions Visual Studio Code extension, the GIT import action or by using deployment pipelines.

  • "Manage connections" only supports Fabric data sources: The "Manage connections" feature only supports connecting to Fabric-native data sources at this moment. To learn more, visit Connect to data sources.

  • "Manage connections" cannot connect to resources that have special characters in their names: Fabric resources, such as databases, that have special characters in their names, such as curly braces or non-ASCII characters, are not compatible with the Manage Connections experience in User Data Functions. To learn more, visit Connect to data sources.

  • Regional limitations for User Data Functions: User Data Functions is not available in a subset of Fabric regions. For an updated list of regions where Fabric User Data Functions is available, see Fabric region availability. If your Home Tenant is in an unsupported region, you can create a Capacity in a supported region to use User Data Functions. For more information, see Manage your Fabric capacity.

  • Regional limitations for Test feature in Develop mode: The test functionality in Develop mode is not available in the following Fabric regions: Brazil South, Israel Central, and Mexico Central. You can still test your functions by publishing them and running them, or by using the VS Code extension to test them locally.

  • Reserved Python keywords in Fabric User Data Functions: In addition to reserved keywords from the Python language, Fabric User Data Functions also uses the following keywords: req, context, and reqInvocationId. Reserved keywords can't be used as parameter names or function names.

  • Parameters with default values or optional values are unsupported: At this moment, all function parameters are required when invoking invocation. Similarly, providing default values in the function argument definition is currently not supported. For example, the function below throws a syntax error:

        # The default value for the argument called 'name' is not supported and treated like a syntax error.
        @udf.function()
        def goodbye_fabric(name: str = "N/A") -> str:
            return f"Goodbye, {name}."
    
  • Service principal support: Accessing Fabric items or data sources using a Service Principal is not currently supported. For example, you cannot use Fabric User Data Functions as a managed identity or workspace identity.

Service limits

The following list details the service limits for User Data Functions items.

Limit Value Description
Request payload length 4 MB The maximum size of all request parameters combined.
Request execution timeout 240 seconds The maximum amount of time a function can run for.
Response size limit 30 MB The maximum size of the response's return value of a function.
Log retention 30 days The number of days that historical invocation logs are retained for by default.
Private library max size 28.6 MB The maximum size of a .whl file uploaded to the Library Management experience as a private library.
Test in portal timeout 15 minutes The amount of time the test session is active for until a new request is processed. The session is extended by 15 minutes when a new request is received within the timeout period.
Python version (Run capability) 3.11 The Python version used for published functions in Run only mode.
Python version (Test capability) 3.12 The Python version used for the test capability in Develop mode.

Next steps