Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Na pierwszy rzut oka
Celem: Wykorzystanie Dev Proxy z Aspire
Czas: 15 minut
Wtyczki: Różne
Wymagania wstępne:Ustawienia serwera proxy dla deweloperów, Aspire
Aspire to opiniowany, gotowy na chmurę stos do budowania 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 korzystać z Dev Proxy z aplikacją Aspire, użyj pakietu NuGet DevProxy.Hosting. Pakiet udostępnia rozszerzenia Dev Proxy Aspire, aby wygodnie zintegrować serwer proxy dev z aplikacją Aspire.
Instalowanie pakietu NuGet rozszerzeń Dev Proxy Aspire
Aby zainstalować pakiet NuGet rozszerzeń Dev Proxy Aspire, uruchom następujące polecenie w folderze głównym aplikacji Aspire:
dotnet add package DevProxy.Hosting
Korzystając z pakietu rozszerzeń Dev Proxy Aspire, możesz zintegrować Dev Proxy, korzystając 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ą Aspire jest odwołanie się do lokalnego pliku wykonywalnego. Poniższy fragment kodu pokazuje, jak zintegrować serwer proxy dev z lokalnie zainstalowanego pliku wykonywalnego z aplikacją startową 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 przy użyciu rozszerzeń Dev Proxy Aspire należy dodać 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ą Aspire z kontenera platformy Docker. Korzystanie z obrazu Dev Proxy dla Docker jest wygodne, ponieważ 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ą 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 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ą 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ą. Możesz zobaczyć dane wyjściowe Dev Proxy w sekcji Konsola na pulpicie nawigacyjnym Aspire.