Yes you could use the Function chaining pattern in durable functions to do this since it only relies on the functions being within the same function app and uses the function names.
However, you can achieve your end goal without the use of Durable functions by setting up your second function (which is currently triggered by a timer) by using an Event Grid trigger instead.
Azure Event Grid allows you to easily build applications with event-based architectures. First, select the Azure resource you would like to subscribe to, and then give the event handler or WebHook endpoint to send the event to. Event Grid has built-in support for events coming from Azure services, like storage blobs and resource groups. Event Grid also has support for your own events, using custom topics.
Yes you could use the Blob Storage trigger but these do not scale and use a polling mechanism behind the scenes, as explained in this video, where as the Events (from Event Grid) use a push mechanism.
- Check out the video description for sample source code.
From the official docs:
The Event Grid trigger also has built-in support for blob events. Use Event Grid instead of the Blob storage trigger for the following scenarios:
Blob-only storage accounts: Blob-only storage accounts are supported for blob input and output bindings but not for blob triggers.
High-scale: High scale can be loosely defined as containers that have more than 100,000 blobs in them or storage accounts that have more than 100 blob updates per second.
Minimizing latency: If your function app is on the Consumption plan, there can be up to a 10-minute delay in processing new blobs if a function app has gone idle. To avoid this latency, you can switch to an App Service plan with Always On enabled. You can also use an Event Grid trigger with your Blob storage account. For an example, see the Event Grid tutorial.
Essentially you need to configure the event grid subscription against your storage account - there is a guide here, you can filter to certain containers and virtual directories using the syntax outlined here:
To match events from blobs created in specific container sharing a blob name prefix, use a subjectBeginsWith filter like:
/blobServices/default/containers/containername/blobs/blobprefix
I also found this post really helpful when setting this up.