Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
.NET Aspire jest opinionowanym, gotowym do obsługi chmury stosem umożliwiającym tworzenie obserwowalnych, gotowych do produkcji aplikacji rozproszonych. Jest ona oparta na platformie .NET i udostępnia nowoczesną, szybką i skalowalną platformę do tworzenia aplikacji internetowych.
Aby użyć serwera proxy deweloperskiego z aplikacją .NET Aspire, użyj pakietu NuGet DevProxy.Hosting. Pakiet zapewnia rozszerzenia Dev Proxy .NET Aspire, umożliwiając wygodną integrację Dev Proxy z Twoją aplikacją .NET Aspire.
Zainstaluj pakiet NuGet rozszerzeń .NET Aspire dla serwera proxy Dev
Aby zainstalować pakiet NuGet rozszerzeń Dev Proxy .NET Aspire, uruchom następujące polecenie w folderze głównym aplikacji .NET Aspire:
dotnet add package DevProxy.Hosting
Korzystając z pakietu rozszerzeń .NET Aspire Dev Proxy, możesz zintegrować Dev Proxy z lokalnie zainstalowanego pliku wykonywalnego lub z kontenera Docker.
Integrowanie serwera proxy dev z lokalnie zainstalowanego pliku wykonywalnego
Jeśli serwer proxy deweloperów jest zainstalowany lokalnie, najwygodniejszym sposobem zintegrowania go z aplikacją .NET Aspire jest odwołanie się do lokalnego pliku wykonywalnego. Poniższy fragment kodu pokazuje, jak zintegrować Dev Proxy z lokalnie zainstalowanego pliku wykonywalnego z aplikacją startową .NET Aspire.
Ważne
Podczas konfigurowania serwera proxy deweloperów do korzystania z lokalnego pliku wykonywalnego upewnij się, że plik wykonywalny jest dostępny na wszystkich komputerach, na których jest uruchamiana aplikacja. Jeśli chcesz użyć serwera proxy deweloperskiego w środowisku konteneryzowanym, rozważ użycie kontenera platformy Docker.
using DevProxy.Hosting;
var builder = DistributedApplication
.CreateBuilder(args);
// Add an API service to the application
var apiService = builder.AddProject<Projects.AspireStarterApp_ApiService>("apiservice")
.WithHttpsHealthCheck("/health");
var devProxy = builder.AddDevProxyExecutable("devproxy")
.WithConfigFile(".devproxy/config/devproxy.json")
.WithUrlsToWatch(() => [$"{apiService.GetEndpoint("https").Url}/*"]);
// Add a web frontend project and configure it to use Dev Proxy
builder.AddProject<Projects.AspireStarterApp_Web>("webfrontend")
.WithExternalHttpEndpoints()
.WithHttpsHealthCheck("/health")
.WithEnvironment("HTTPS_PROXY", devProxy.GetEndpoint(DevProxyResource.ProxyEndpointName))
.WithReference(apiService)
.WaitFor(apiService)
.WaitFor(devProxy);
// Build and run the application
builder.Build().Run();
Najpierw, korzystając z rozszerzeń Dev Proxy .NET Aspire, dodajesz usługę Dev Proxy do aplikacji. Metoda AddDevProxyExecutable określa nazwę pliku wykonywalnego serwera proxy dev. Za pomocą metody WithConfigFile określasz ścieżkę do pliku konfiguracji oprogramowania proxy dewelopera.
WithUrlsToWatch Za pomocą metody należy określić listę adresów URL do obejrzenia. W tym przykładzie chcesz, aby Dev Proxy przechwycił żądania wysyłane przez aplikację internetową do API.
Ważne
Zwróć uwagę, że WithUrlsToWatch metoda akceptuje funkcję, która zwraca listę adresów URL do obserwowania. Dzieje się tak, ponieważ punkt końcowy usługi interfejsu API nie jest dostępny podczas konfigurowania serwera proxy deweloperskiego, więc nie można przekazać adresu URL bezpośrednio. Zamiast tego należy użyć wyrażenia lambda, które zwraca adres URL usługi interfejsu API, gdy jest dostępny.
Następnie w aplikacji internetowej użyjesz zmiennej HTTPS_PROXY środowiskowej, aby skonfigurować aplikację internetową do używania serwera proxy deweloperów. Korzystając z metody WaitFor, poinstruuj aplikację internetową, aby czekała na dostępność serwera proxy Dev przed rozpoczęciem.
Integrowanie serwera proxy deweloperskiego z kontenera platformy Docker
Alternatywnie możesz zintegrować serwer proxy dev z aplikacją .NET Aspire z kontenera platformy Docker. Korzystanie z obrazu serwera proxy Docker dla deweloperów jest wygodne, ponieważ .NET Aspire automatycznie pobiera obraz, jeśli nie jest dostępny lokalnie. Wadą jest to, że istnieje kilka dodatkowych kroków konfigurowania serwera proxy deweloperskiego w aplikacji.
Poniższy fragment kodu pokazuje, jak zintegrować serwer proxy dev z kontenera platformy Docker z aplikacją startową .NET Aspire.
using DevProxy.Hosting;
var builder = DistributedApplication
.CreateBuilder(args);
// Add an API service to the application
var apiService = builder.AddProject<Projects.AspireStarterApp_ApiService>("apiservice")
.WithHttpsHealthCheck("/health");
// Add Dev Proxy as a container resource
var devProxy = builder.AddDevProxyContainer("devproxy")
// specify the Dev Proxy configuration file; relative to the config folder
.WithConfigFile("./devproxy.json")
// mount the local folder with PFX certificate for intercepting HTTPS traffic
.WithCertFolder(".devproxy/cert")
// mount the local folder with Dev Proxy configuration
.WithConfigFolder(".devproxy/config")
// let Dev Proxy intercept requests to the API service
.WithUrlsToWatch(() => [$"{apiService.GetEndpoint("https").Url}/*"]);
// Add a web frontend project and configure it to use Dev Proxy
builder.AddProject<Projects.AspireStarterApp_Web>("webfrontend")
.WithExternalHttpEndpoints()
.WithHttpsHealthCheck("/health")
// set the HTTPS_PROXY environment variable to the Dev Proxy endpoint
.WithEnvironment("HTTPS_PROXY", devProxy.GetEndpoint(DevProxyResource.ProxyEndpointName))
.WithReference(apiService)
.WaitFor(apiService)
.WaitFor(devProxy);
// Build and run the application
builder.Build().Run();
Podstawowe kroki są takie same jak w przypadku korzystania z lokalnie zainstalowanego pliku wykonywalnego. Główną różnicą jest sposób określania pliku konfiguracji i certyfikatu do przechwytywania ruchu HTTPS.
Podczas integrowania Dev Proxy z kontenera Docker, należy zamontować foldery lokalne z plikiem konfiguracyjnym i certyfikatem do kontenera. W tym przykładzie w rozwiązaniu .NET Aspire masz następującą strukturę folderów:
AspireStarterApp
├── .devproxy
│ ├── cert
│ │ └── rootCert.pfx
│ └── config
│ └── devproxy.json
├── Projects
│ ├── AspireStarterApp_ApiService
│ └── AspireStarterApp_Web
└── AspireStarterApp.sln
Folder cert zawiera certyfikat wymiany informacji osobistych (PFX), którego serwer proxy dewelopera używa do przechwytywania ruchu HTTPS.
Ważne
Musisz zaufać certyfikatowi cert w folderze na Twojej maszynie, w przeciwnym razie żądania do usługi interfejsu API zakończą się niepowodzeniem. Ponadto aby serwer proxy deweloperów załadował certyfikat, musi mieć format PFX, musi mieć nazwę rootCert.pfxi nie może być chroniony hasłem.
Folder config zawiera plik konfiguracji serwera proxy dev oraz inne pliki serwera proxy deweloperskiego, takie jak makiety lub błędy.
Ponieważ tworzysz pliki certyfikatu i konfiguracji w celu oddzielenia woluminów w kontenerze, muszą one być przechowywane w oddzielnych folderach.
Używanie serwera proxy deweloperskiego z aplikacją startową .NET Aspire
Po uruchomieniu aplikacji, Dev Proxy jest wyświetlany jako zasób w aplikacji.
Gdy używasz aplikacji internetowej tak, aby wysyłała żądania do usługi interfejsu API, serwer proxy dewelopera przechwytuje żądania i obsługuje je zgodnie z konfiguracją. Wyjście Dev Proxy można zobaczyć w sekcji Konsoli na pulpicie nawigacyjnym .NET Aspire.