Megosztás a következőn keresztül:


Dev Proxy használata .NET Aspire-alkalmazásokkal

.NET Aspire egy irányelvekkel rendelkező, felhőalapú környezetre kész technológiai stack, amely megfigyelhető, éles üzemre kész, elosztott alkalmazások létrehozására szolgál. A .NET-en alapul, és modern, gyors és méretezhető platformot biztosít a webalkalmazások létrehozásához.

Ha a Dev Proxyt a .NET Aspire alkalmazással szeretné használni, használja a DevProxy.Hosting NuGet csomagot. A csomag dev proxy .NET Aspire bővítményeket biztosít a Dev Proxy kényelmes integrálásához a .NET Aspire alkalmazásba.

A Dev Proxy .NET Aspire bővítmények NuGet-csomagjának telepítése

A Dev Proxy .NET Aspire bővítmények NuGet-csomagjának telepítéséhez futtassa a következő parancsot a .NET Aspire-alkalmazás gyökérmappájában:

dotnet add package DevProxy.Hosting

A Dev Proxy .NET Aspire bővítménycsomag használatával integrálhatja a Dev Proxyt a helyileg telepített végrehajtható fájlból vagy egy Docker-tárolóból.

Dev Proxy integrálása a helyileg telepített végrehajtható fájlból

Ha a Dev Proxy helyileg van telepítve, a legegyszerűbben úgy integrálhatja azt a .NET Aspire alkalmazásba, ha a helyi végrehajtható fájlra hivatkozik. Az alábbi kódrészlet bemutatja, hogyan integrálható a Dev Proxy a helyileg telepített végrehajtható fájlból a .NET Aspire starter alkalmazással.

Fontos

Ha a Dev Proxyt úgy konfigurálja, hogy a helyi végrehajtható fájlt használja, győződjön meg arról, hogy a végrehajtható fájl minden olyan gépen elérhető, ahol az alkalmazást futtatja. Ha dev proxyt szeretne használni tárolóalapú környezetben, fontolja meg inkább a Docker-tároló használatát.

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();

Először a Dev Proxy .NET Aspire bővítmények használatával hozzáadhat egy Dev Proxy szolgáltatást az alkalmazáshoz. A AddDevProxyExecutable metódus a végrehajtható dev proxy nevét adja meg. A WithConfigFile metódus használatával megadhatja a dev proxy konfigurációs fájljának elérési útját. A WithUrlsToWatch metódus használatával megadhatja a megtekinteni kívánt URL-címek listáját. Ebben a példában azt szeretné, hogy a Dev Proxy elfogja a webalkalmazás által az API-szolgáltatáshoz küldött kéréseket.

Fontos

Figyelje meg, hogy a WithUrlsToWatch metódus elfogad egy függvényt, amely visszaadja a figyelendő URL-címek listáját. Ennek az az oka, hogy az API-szolgáltatásvégpont nem érhető el a Fejlesztői proxy konfigurálásakor, így nem adhatja át közvetlenül az URL-címet. Ehelyett egy lambda kifejezést használ, amely az API-szolgáltatás URL-címét adja vissza, ha az elérhető.

Ezután a webalkalmazásban a HTTPS_PROXY környezeti változóval konfigurálja a webalkalmazást a Dev Proxy használatára. Ezzel a WaitFor módszerrel utasítja a webalkalmazást, hogy várja meg, amíg a Dev Proxy elérhetővé válik a kezdés előtt.

Dev Proxy integrálása Docker-tárolóból

Másik lehetőségként a Dev Proxyt integrálhatja a .NET Aspire-alkalmazásba egy Docker-tárolóból. A Dev Proxy Docker-rendszerkép használata kényelmes, mert a .NET Aspire automatikusan lekéri a képet, ha helyileg nem érhető el. A hátránya az, hogy van még néhány lépés a dev proxy konfigurálásához az alkalmazásban.

Az alábbi kódrészlet bemutatja, hogyan integrálható a Dev Proxy egy Docker-tárolóból a .NET Aspire kezdőalkalmazással.

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();

Az alapvető lépések ugyanazok, mint a helyileg telepített végrehajtható fájl használatakor. A fő különbség az, hogy hogyan adhatja meg a konfigurációs fájlt és a HTTPS-forgalom elfogására szolgáló tanúsítványt.

Ha dev proxyt integrál egy Docker-tárolóból, csatlakoztatnia kell a helyi mappákat a konfigurációs fájlhoz és a tanúsítványhoz a tárolóba. Ebben a példában a .NET Aspire-megoldásban a következő mappastruktúrával rendelkezik:

AspireStarterApp
├── .devproxy
│   ├── cert
│   │   └── rootCert.pfx
│   └── config
│       └── devproxy.json
├── Projects
│   ├── AspireStarterApp_ApiService
│   └── AspireStarterApp_Web
└── AspireStarterApp.sln

A cert mappa tartalmazza a Személyes adatcsere (PFX) tanúsítványt, amelyet a Dev Proxy a HTTPS-forgalom elfogására használ.

Fontos

Meg kell bíznia a tanúsítványban a cert számítógép mappájában, vagy az API-szolgáltatáshoz érkező kérések sikertelenek lesznek. Ahhoz is, hogy a Dev Proxy betöltse a tanúsítványt, PFX formátumban kell lennie, el kell neveznie rootCert.pfx, és nem szabad jelszóval védenie.

A config mappa tartalmazza a Dev Proxy konfigurációs fájlját és más Fejlesztői proxyfájlokat, például a maketteket vagy a hibákat.

Mivel a tanúsítvány- és konfigurációs fájlokat külön kötetekhez csatlakoztatja a tárolóban, ezeket külön mappákban kell tárolni.

Dev Proxy használata a .NET Aspire kezdőalkalmazással

Az alkalmazás elindítása után a Dev Proxy erőforrásként jelenik meg az alkalmazásban.

Képernyőkép a .NET Aspire irányítópultról, amelyen alkalmazáserőforrások láthatók, beleértve a Dev Proxyt is.

Amikor a webalkalmazást úgy használja, hogy az kéréseket küldjön az API-szolgáltatásnak, a Dev Proxy elfogja a kéréseket, és a konfigurációnak megfelelően kezeli őket. A fejlesztői proxy kimenetét a .NET Aspire irányítópult Konzol szakaszában tekintheti meg.

Képernyőkép a .NET Aspire irányítópultról, amelyen a Fejlesztői proxy konzol kimenete látható.