Program.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using Microsoft.Azure.Functions.Worker;
  2. using Microsoft.Extensions.Configuration;
  3. using Microsoft.Extensions.DependencyInjection;
  4. using Microsoft.Extensions.Hosting;
  5. using TEAMModelOS.Function.DI;
  6. using TEAMModelOS.SDK;
  7. using TEAMModelOS.SDK.DI;
  8. using TEAMModelOS.SDK.DI.Multiple;
  9. var host = new HostBuilder()
  10. .ConfigureFunctionsWebApplication()
  11. .ConfigureServices((context, services) =>
  12. {
  13. services.AddApplicationInsightsTelemetryWorkerService();
  14. services.ConfigureFunctionsApplicationInsights();
  15. services.AddHttpClient();
  16. services.AddHttpClient<DingDing>();
  17. services.AddHttpClient<HttpTrigger>();
  18. services.AddHttpClient<CoreAPIHttpService>();
  19. List<(string name, string connectionString)> cosmosDBConnects = new();
  20. cosmosDBConnects.Add(("Default", context.Configuration.GetSection("Azure:Cosmos:ConnectionString").Get<string>()));
  21. cosmosDBConnects.Add(("CoreServiceV1", context.Configuration.GetSection("CoreServiceV1:Cosmos:ConnectionString").Get<string>())); //CoreService V1 read only
  22. cosmosDBConnects.Add(("CoreServiceV2", context.Configuration.GetSection("CoreServiceV2:Cosmos:ConnectionString").Get<string>())); //CoreService V2
  23. cosmosDBConnects.Add(("CoreServiceV2CnRead", context.Configuration.GetSection("CoreServiceV2:CosmosCnRead:ConnectionString").Get<string>())); //CoreService V2 CN read only
  24. services.AddMultipleAzureCosmos(cosmosDBConnects);
  25. services.AddAzureServiceBus(context.Configuration.GetSection("Azure:ServiceBus:ConnectionString").Get<string>());
  26. services.AddAzureRedis(context.Configuration.GetSection("Azure:Redis:ConnectionString").Get<string>());
  27. services.AddSnowflakeId(Convert.ToInt64(context.Configuration.GetSection("Option:LocationNum").Get<Int32>()), 1);
  28. List<(string name, string connectionString)> storageConnects = new();
  29. storageConnects.Add(("Default", context.Configuration.GetSection("Azure:Storage:ConnectionString").Get<string>()));
  30. services.AddMultipleAzureStorage(storageConnects);
  31. services.AddSingleton<BackgroundWorkerQueue>();
  32. services.AddHostedService<LongRunningService>();
  33. })
  34. .Build();
  35. host.Run();