I want to run a task every day at 5 am to write some data to the database to create some reports. For that I thought I could use Azure Functions (Timer trigger). My goal is to first debug the function locally (using a local database) before publishing it to Azure. For this I have created a new Azure Functions project in Visual Studio 2019 with the following parameters:
- .NET 5.0 (Isolated).
- Timer trigger.
- Storage Account (AzureWebJobsStorage): Storage Emulator.
- Schedule: 0 0 5 * * *
If I try to run the function (pressing F5 in the keyboard) without any changes to the code, it opens a CMD window with the colored Azure Functions logo created with characters and then the following error:
Error: unknown argument --port
In project properties > Debug tab > Application arguments I have
--port 7282
. I have a systray icon with this message: "Storage emulator is started".
I tried the answer of What is the simplest way to run a timer-triggered Azure Function locally once? question, but I get the same error.
What do I have to do to debug the function locally? Do I need to install any specific tool?
----------
If it helps, I have the following files:
Program.cs
public class Program
{
public static void Main()
{
var host = new HostBuilder()
.ConfigureFunctionsWorkerDefaults()
.Build();
host.Run();
}
}
Function1.cs:
public class Function1
{
private readonly ILogger _logger;
public Function1(ILoggerFactory loggerFactory)
{
_logger = loggerFactory.CreateLogger<Function1>();
}
[Function("Function1")]
public void Run([TimerTrigger("0 0 5 * * *")] MyInfo myTimer)
{
_logger.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
_logger.LogInformation($"Next timer schedule at: {myTimer.ScheduleStatus.Next}");
}
}
public class MyInfo { ... }
public class MyScheduleStatus { ... }