Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
.NET Aspire es una pila con opinión preparada para la nube para compilar aplicaciones observables, listas para producción y distribuidas. Se basa en .NET y proporciona una plataforma moderna, rápida y escalable para compilar aplicaciones web.
Para usar dev Proxy con la aplicación .NET Aspire, use el paquete NuGet DevProxy.Hosting. El paquete proporciona extensiones Dev Proxy .NET Aspire para integrar convenientemente Dev Proxy en la aplicación .NET Aspire.
Instalar el paquete NuGet de las extensiones de .NET Aspire del Proxy de Desarrollo
Para instalar el paquete NuGet de las extensiones de Dev Proxy para .NET Aspire, ejecute el siguiente comando en la carpeta raíz de su aplicación .NET Aspire:
dotnet add package DevProxy.Hosting
Con el paquete de extensiones Dev Proxy .NET Aspire, puede integrar Dev Proxy desde el ejecutable instalado localmente o desde un contenedor de Docker.
Integración del proxy de desarrollo desde el ejecutable instalado localmente
Si tiene dev Proxy instalado localmente, la manera más conveniente de integrarlo en la aplicación .NET Aspire es hacer referencia al ejecutable local. En el fragmento de código siguiente se muestra cómo integrar Dev Proxy desde el archivo ejecutable instalado localmente con la aplicación de inicio de .NET Aspire.
Importante
Al configurar el proxy de desarrollo para usar el ejecutable local, asegúrese de que el ejecutable está disponible en todas las máquinas en las que se ejecuta la aplicación. Si quiere usar el proxy de desarrollo en un entorno contenedorizado, considere la posibilidad de usar el contenedor de Docker en su lugar.
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();
En primer lugar, con las extensiones Dev Proxy .NET Aspire, se agrega un servicio proxy de desarrollo a la aplicación. El AddDevProxyExecutable
método especifica el nombre del ejecutable del proxy de desarrollo. Mediante el método WithConfigFile
, especifique la ruta de acceso al archivo de configuración del proxy de desarrollo. Usando el método WithUrlsToWatch
, especifique la lista de direcciones URL que desea supervisar. En este ejemplo, quiere que el proxy de desarrollo intercepte las solicitudes que realiza la aplicación web en el servicio de API.
Importante
Observe que el WithUrlsToWatch
método acepta una función que devuelve una lista de direcciones URL que se van a inspeccionar. Esto se debe a que el punto de conexión del servicio de API no está disponible al configurar el proxy de desarrollo, por lo que no puede pasar la dirección URL directamente. En su lugar, se usa una expresión lambda que devuelve la dirección URL del servicio de API cuando está disponible.
A continuación, en la aplicación web, usará la variable de entorno HTTPS_PROXY
para configurar la aplicación web para usar el proxy de desarrollo. Usando el método WaitFor
, se indica a la aplicación web que espere a que el proxy de desarrollo esté disponible antes de comenzar.
Integración del proxy de desarrollo desde un contenedor de Docker
Como alternativa, puede integrar Dev Proxy en la aplicación .NET Aspire desde un contenedor de Docker. El uso de la imagen de Docker del proxy de desarrollo es cómodo, ya que .NET Aspire extrae automáticamente la imagen si no está disponible localmente. El inconveniente es que hay algunos pasos más para configurar el proxy de desarrollo en la aplicación.
En el fragmento de código siguiente se muestra cómo integrar Dev Proxy desde un contenedor de Docker con la aplicación de inicio de .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();
Los pasos básicos son los mismos que cuando se usa el ejecutable instalado localmente. La principal diferencia es cómo se especifica el archivo de configuración y el certificado para interceptar el tráfico HTTPS.
Al integrar Dev Proxy desde un contenedor de Docker, debe montar las carpetas locales con el archivo de configuración y el certificado en el contenedor. En este ejemplo, en la solución .NET Aspire, tiene la siguiente estructura de carpetas:
AspireStarterApp
├── .devproxy
│ ├── cert
│ │ └── rootCert.pfx
│ └── config
│ └── devproxy.json
├── Projects
│ ├── AspireStarterApp_ApiService
│ └── AspireStarterApp_Web
└── AspireStarterApp.sln
La cert
carpeta contiene el certificado de Intercambio de información personal (PFX) que usa el proxy de desarrollo para interceptar el tráfico HTTPS.
Importante
Debe confiar en el certificado de la carpeta de la cert
máquina o se producirá un error en las solicitudes al servicio de API. Además, para que el proxy de desarrollo cargue el certificado, debe estar en el formato PFX, debe tener el nombre rootCert.pfx
y no debe protegerse con una contraseña.
La carpeta config
contiene el archivo de configuración del Dev Proxy y otros archivos del Dev Proxy, como simulaciones y errores.
Dado que va a montar los archivos de certificado y configuración para separar volúmenes en el contenedor, deben almacenarse en carpetas independientes.
Uso del Dev Proxy con la aplicación de inicio Aspire de .NET
Después de iniciar la aplicación, el proxy de desarrollo se muestra como un recurso en la aplicación.
Cuando usas la aplicación web para realizar solicitudes al servicio de API, Dev Proxy intercepta las solicitudes y las gestiona de acuerdo con tu configuración. Puede ver la salida del proxy de desarrollo en la sección Consola del panel de .NET Aspire.