项目作者: shibayan

项目描述 :
HttpClientFactory based client service discovery for Azure App Service
高级语言: C#
项目地址: git://github.com/shibayan/SimpleDiscovery.git
创建时间: 2019-07-07T06:14:53Z
项目社区:https://github.com/shibayan/SimpleDiscovery

开源协议:MIT License

下载


SimpleDiscovery

Build Status

HttpClientFactory based client service discovery for .NET Core

NuGet Packages

Package Name Target Framework NuGet
SimpleDiscovery .NET Standard 2.0 NuGet
SimpleDiscovery.AzureAppConfiguration .NET Standard 2.0 NuGet
SimpleDiscovery.AzureResourceManager .NET Standard 2.0 NuGet
SimpleDiscovery.EnvironmentVariables .NET Standard 2.0 NuGet

Basic usage

1. Install nuget package

  1. # Test use only for Azure Functions
  2. Install-Package SimpleDiscovery.EnvironmentVariables -Pre
  3. # Recommend
  4. Install-Package SimpleDiscovery.AzureAppConfiguration -Pre
  5. # or
  6. Install-Package SimpleDiscovery.AzureResourceManager -Pre

2. Deploy Azure App Configuration

https://docs.microsoft.com/en-us/azure/azure-app-configuration/

The key name is saved as Registry:<service name>. The value sets an endpoint, such as a REST API.

image

3. Setup SimpleDiscovery

Adding AppConfiguration connection string

  1. dotnet user-secrets set "ConnectionStrings:AppConfig" "__AzureAppConfiguration_ConnectionString__"

Register SimpleDiscovery to DI

  1. public class Startup
  2. {
  3. public Startup(IConfiguration configuration)
  4. {
  5. Configuration = configuration;
  6. }
  7. public IConfiguration Configuration { get; }
  8. public void ConfigureServices(IServiceCollection services)
  9. {
  10. services.AddSimpleDiscovery()
  11. .AddAzureAppConfiguration(Configuration.GetConnectionString("AppConfig"));
  12. // Match the service name registered in App Configuration
  13. services.AddHttpClient<BuchizoService>()
  14. .WithSimpleDiscovery();
  15. services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
  16. }
  17. }

4. Using HttpClientFactory

  1. public class BuchizoController : Controller
  2. {
  3. public BuchizoController(BuchizoService buchizoService)
  4. {
  5. _buchizoService = buchizoService;
  6. }
  7. private readonly BuchizoService _buchizoService;
  8. public async Task<IActionResult> Index()
  9. {
  10. // SimpleDiscovery automatically resolves destination host
  11. var response = await _buchizoService.GetSAsync("/");
  12. return Content(response);
  13. }
  14. }

License

This project is licensed under the MIT License