I have two functions in my container: one with a blob trigger and another one with a HTTP trigger. Runtime version is 4.28.4.4:
The managed environment is "Consumption only".
When I add a blob to my storage, hours go by without the function being triggered.
Then I call the HTTP function (a simple function that just returns "hello") and all my pending blobs get processed.
When the blob finally triggers, it executes without errors:
Bellow is my HTTP trigger code:
[FunctionName("SayHello")]
public static IActionResult Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
var message = "Hello!";
return new OkObjectResult(message);
}
Blob trigger:
[FunctionName("ProcessJpegImage")]
public static async Task RunAsync(
[BlobTrigger(Containers.JpgExportProcessing + "/{name}", Connection = "[REDACTED]")] Stream inputBlob,
string name,
IDictionary<string, string> metadata,
ILogger log)
{
// ... processing code
}
I have the container name in another class:
public static class Containers
{
public const string JpgExportProcessing = "jpg-export-processing";
// ... more containers
}
My host.json is the default:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
},
"enableLiveMetricsFilters": true
}
}
}
I'm using the in-process model for the function. Here's a part of the csproj file:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<AzureFunctionsVersion>v4</AzureFunctionsVersion>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Azure.Data.Tables" Version="12.8.2" />
<PackageReference Include="Azure.Storage.Blobs" Version="12.19.1" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage" Version="5.0.1" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.2.0" />
</ItemGroup>
<!-- ... files to copy to output/publish -->
</Project>
I'm guessing the HTTP trigger wakes the container up, but the blob trigger doesn't. What can I do about it?



I have created http trigger and blob trigger functions with runtime stack dotnet.
By using below code and configuration I am able to access the blobs in storage account container without accessing the http function.
Blob trigger function code:
Http trigger function code:
host.json:
local.settings.json:
When I ran the above function, it successfully processed all blobs in the container.
Output:
After I accessed the HTTP function URL, I received the following output: