29
loading...
This website collects cookies to deliver better user experience
public static class TimerTriggerFunc
{
[FunctionName("TimerTriggerFunc")]
public static void Run([TimerTrigger("%TimerCron%")] TimerInfo myTimer, ILogger log)
{
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
}
}
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"TimerCron": "*/5 * * * * *"
}
}
namespace azure_function_entities.models
{
public class Output
{
public string ApiKey { get; set; }
public string Message { get; set; }
public Output(string message, string apiKey)
{
ApiKey = apiKey;
Message = message;
}
}
}
namespace azure_function_managers.services
{
public class GreetingsService
{
public string SayHello(string name) => $"Hello {name}!";
}
}
public class GreetingsService : IGreetingsService
<ItemGroup>
<ProjectReference Include="../azure-function-entities/azure-function-entities.csproj"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="../azure-function-manager/azure-function-manager.csproj" />
</ItemGroup>
dotnet add package Microsoft.Azure.Functions.Extensions
using azure_function;
using Microsoft.Azure.Functions.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection;
using azure_function_managers.services;
[assembly: FunctionsStartup(typeof(Startup))]
namespace azure_function
{
public class Startup : FunctionsStartup
{
public override void Configure(IFunctionsHostBuilder builder)
{
builder.Services.AddScoped<IGreetingsService, GreetingsService>();
}
}
}
dotnet add package Microsoft.Extensions.Configuration.UserSecrets --version 3.1.16
{
"ApiKey": "ec47301e-f354-4a98-8796-174737964f2f"
}
public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
{
var ctx = builder.GetContext();
Configuration = new ConfigurationBuilder()
.AddUserSecrets(assembly: Assembly.GetExecutingAssembly(), optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
}
using Microsoft.Extensions.Configuration;
using System.Reflection;
public IConfiguration Configuration { get; set; }
using System;
using azure_function_entities.models;
using azure_function_managers.services;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
namespace azure_function
{
public class TimerTriggerFunc
{
private readonly IGreetingsService _greetingsService;
private readonly IConfiguration _configuration;
public TimerTriggerFunc(IGreetingsService greetingsService, IConfiguration configuration)
{
_greetingsService = greetingsService;
_configuration = configuration;
}
[FunctionName("TimerTriggerFunc")]
public void Run([TimerTrigger("%TimerCron%")] TimerInfo myTimer, ILogger log)
{
log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
var output = new Output(_greetingsService.SayHello("ivan"), _configuration.GetValue<string>("ApiKey"));
log.LogInformation($"Message: {output.Message}");
log.LogInformation($"ApiKey: {output.ApiKey}");
}
}
}
29