Table of Contents

Deployment

This guide covers running Universal Data Generator in Azure. The most common deployment is the Functions host on a timer, writing to one or more Azure targets.

Identity and roles

Use a managed identity and Microsoft Entra rather than keys. Grant the identity the role each target requires:

Target Role
ADLS Gen2 (NDJSON or Parquet) Storage Blob Data Contributor
Event Hubs Azure Event Hubs Data Sender
Azure AI Foundry The model deployment access role on the Foundry resource

Functions host

  1. Create a Function App on the .NET isolated worker.
  2. Set the app settings: DATAGEN_CONFIG, APPLICATIONINSIGHTS_CONNECTION_STRING, and DATAGEN_OFFLINE if needed.
  3. Deploy the run config with the app, or read it from storage. The catalog is embedded in the app.
  4. Assign the Function App managed identity the roles above.

Note: The default timer is 0 */5 * * * *, which runs every five minutes for a pass of up to four and a half minutes so invocations do not overlap. Adjust the cron expression for your cadence.

Container support

The libraries and the non-WinForms hosts publish as containers with the built-in .NET container support:

dotnet publish hosts/UniDataGen.Foundry.Tool --os linux --arch x64 -p:PublishProfile=DefaultContainer

Observability

Set APPLICATIONINSIGHTS_CONNECTION_STRING so every tier logs to Application Insights. See Logging for the structured properties and an example query.