New to Kestra?
Use blueprints to kickstart your first workflows.
Trigger on a new Azure Blob, transform it with an Azure Function, publish to Service Bus, then run a Data Factory pipeline, all in one Kestra execution.
Stop stitching Logic Apps between every pair of Azure services. This blueprint reacts to a new file landing in Blob Storage, calls an Azure Function to validate and reshape it, publishes the result to a Service Bus queue for any downstream subscriber, and kicks off a Data Factory pipeline for the heavier processing, all as one Kestra execution. It closes a real gap in Azure orchestration: Blob events, Functions, Service Bus, and Data Factory each have their own trigger and monitoring surface, so chaining all four today usually means a Logic App or a Function whose only job is to call the next service.
io.kestra.plugin.azure.storage.blob.Trigger polls the incoming container under the orders/ prefix every PT1M and moves processed files to archive/orders/ so they are not reprocessed.io.kestra.plugin.azure.function.HttpFunction calls an Azure Function (TransformOrder) over HTTP with the blob's container and name, and returns the transformed payload.io.kestra.plugin.azure.servicebus.Publish sends the transformed payload to the orders-transformed Service Bus queue as JSON, so any number of downstream subscribers can pick it up independently of this flow.io.kestra.plugin.azure.datafactory.CreateRun triggers the process_transformed_orders Data Factory pipeline and waits for it to reach a terminal state by default.io.kestra.plugin.microsoft365.teams.TeamsIncomingWebhook posts the blob name and the Data Factory run ID to a Teams channel via an Adaptive Card.Native Blob events, Function bindings, and Data Factory triggers each stop at their own boundary; getting all four services to work as one pipeline today means a Logic App connector for every hop, each with its own retry settings and no shared execution history. Kestra treats the whole chain as one flow: retries are per task, the Service Bus publish and the Data Factory run share the same execution ID as the original blob event, and the Teams notification reports on the outcome of the entire chain, not just the last hop.
incoming container.TransformOrder HTTP-triggered function.orders-transformed queue.process_transformed_orders pipeline.AZURE_STORAGE_ACCOUNT, AZURE_CONNECTION_STRING: Blob Storage account and connection string.AZURE_FUNCTION_APP, AZURE_FUNCTION_CODE: Function App name and function key.AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET: Service principal used for Service Bus and Data Factory.AZURE_SUBSCRIPTION_ID, AZURE_RESOURCE_GROUP, ADF_FACTORY_NAME: Data Factory location.TEAMS_WEBHOOK: Microsoft Teams incoming webhook URL.blob_landed trigger at your storage account and container.orders/ and confirm it flows through Function, Service Bus, and Data Factory.io.kestra.plugin.core.flow.If after transform to branch on validation failures before publishing.TeamsIncomingWebhook for Slack or PagerDuty depending on which channel owns Azure alerts.