Implementación de aplicaciones ASP.NET Web Forms en AWS - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Implementación de aplicaciones ASP.NET Web Forms en AWS

Administrar paquetes NuGet

NuGet es un repositorio que contiene y administra paquetes de código para.NET. Una aplicación puede tener instalados dos tipos de NuGet paquetes: paquetes disponibles públicamente en nuget.org o paquetes personalizados que se publican en un repositorio interno. Para extraer paquetes de nuget.org, es necesario que las instancias que crean la aplicación tengan acceso saliente a Internet. Para algunos usuarios, es posible que el acceso a Internet no sea deseable debido a problemas de seguridad o restricciones de la red.

Para solucionar este problema, puedes aprovisionar un repositorio de artifact (NuGet) administrado para descargar paquetes de fuentes externas, como nuget.org. Puedes usar AWS CodeArtifact, que es un servicio de repositorio de artefactos totalmente gestionado, como repositorio de paquetes. NuGet Para obtener más información, consulta la AWS entrada del blog Using NuGet with AWS CodeArtifact. Otras opciones populares de terceros son Nexus y Artifactory. Este enfoque te permite almacenar en caché los paquetes disponibles públicamente en tu repositorio privado y reduce la necesidad de acceso directo a Internet durante el proceso de creación. Si quieres tener más control sobre los paquetes que se pueden descargar, puedes deshabilitar el acceso externo. En este caso, los desarrolladores deberán enviar al repositorio sus propios NuGet paquetes y cualquier otro paquete de terceros que necesiten.

Para configurar la aplicación para que utilice el repositorio de NuGet paquetes, cree un NuGet.config archivo en el directorio raíz del proyecto o en el directorio raíz de la solución. Este archivo especifica las fuentes de paquetes que se NuGet deben usar al restaurar los paquetes. El siguiente ejemplo muestra cómo configurar el NuGet.config archivo que se va a utilizar CodeArtifact:

<?xml version="1.0" encoding="utf-8"?> <configuration> <packageRestore> <!-- Allow NuGet to download missing packages --> <add key="enabled" value="True" /> <!-- Automatically check for missing packages during build in Visual Studio --> <add key="automatic" value="True" /> </packageRestore> <packageSources> <add key="MyRepo" value="https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json" /> </packageSources> </configuration>

En este ejemplo, https://my_domain-111122223333.d.codeartifact.us-west-2.amazonaws.com/nuget/my_repo/v3/index.json sustitúyalo por la URL real de tu CodeArtifact repositorio. Puedes encontrar esta URL en la CodeArtifact consola o ejecutando el aws codeartifact get-repository-endpoint comando.

importante
  • La configuración del NuGet.config archivo afecta a todos los proyectos dentro de la misma estructura de directorios. Si desea utilizar diferentes fuentes de paquetes para distintos proyectos, cree NuGet.config archivos independientes para cada proyecto o solución.

  • Asegúrese de que las instancias que crean la aplicación tengan los permisos y el acceso a la red necesarios para conectarse al repositorio de NuGet paquetes (por ejemplo CodeArtifact). Para obtener más información sobre la obtención de credenciales, consulte Utilización CodeArtifact con la CLI de nuget o dotnet en la CodeArtifact documentación.

Creación de una aplicación

Al migrar aplicaciones antiguas de ASP.NET Web Forms a AWS, se sigue utilizando Microsoft Build Engine (MSBuild) como herramienta central para crear las aplicaciones. MSBuild normalmente se incluye con Visual Studio, pero puede descargar y usar el MSBuild ejecutable independiente de Microsoft sin instalar Visual Studio. Este enfoque resulta especialmente útil cuando se crea una aplicación de formularios Web Forms AWS, donde se pueden utilizar instancias de Windows o contenedores de Docker si están instalados. MSBuild

Para crear una aplicación ASP.NET Web Forms se requieren dos pasos principales: restaurar los NuGet paquetes y crear la aplicación. Los detalles de cómo se realizan estos pasos pueden variar en función de la herramienta de CI/CD que elija utilizar. Por ejemplo, si la usas AWS CodeBuild, el proceso de compilación se ejecuta dentro de un contenedor Docker.

Restaure paquetes NuGet

Antes de crear la aplicación, debe restaurar los NuGet paquetes necesarios para el proyecto. Puede hacerlo mediante los NuGet comandos de la interfaz de línea de comandos (CLI), que se ejecutan en el directorio raíz del proyecto. MSBuild

Usando MSBuild:

msbuild -t:restore

Uso de NuGet CLI:

nuget restore

Compila usando MSBuild

Tras restaurar los NuGet paquetes, puede continuar con el comando de compilación principal que produce los artefactos de despliegue. El comando normalmente especifica el archivo del proyecto, la configuración de compilación (por ejemploRelease) y el directorio de salida de los artefactos creados.

msbuild <ProjectName>.csproj /p:Configuration=Release /p:OutDir=<OutDir>

Para obtener más información acerca de MSBuild las opciones, consulte la referencia de la MSBuild línea de comandos en la documentación de Microsoft.

Para obtener más información sobre cómo crear una aplicación de ASP.NET con AWS CodeBuild, consulte la entrada del AWS blog Cómo crear canalizaciones de CI/CD para ASP.NET 4.x con y. AWS CodePipeline AWS Elastic Beanstalk

Implementación de una aplicación

Tras crear la aplicación Web Forms, debe implementar los artefactos en el entorno de destino. AWS En la mayoría de los casos, puede comprimir y cargar los artefactos creados en un depósito de Amazon Simple Storage Service (Amazon S3) para facilitar su distribución e implementación. Para obtener instrucciones, consulte la documentación de Amazon S3.

Existen dos opciones principales para implementar los artefactos en una EC2 instancia de Amazon: manual y automática.

Despliegue manual

Esta opción implica usar los datos de usuario de la EC2 instancia para incluir scripts que realizarán las siguientes tareas:

  • Instale Internet Information Services (IIS)

  • Extraiga y descomprima los artefactos de construcción del depósito de Amazon S3

  • Cree y configure la aplicación IIS

Si bien este enfoque proporciona flexibilidad, requiere una intervención manual y puede resultar difícil administrarlo a medida que la aplicación se amplía o si se actualiza con frecuencia.

Implementación automatizada

El enfoque recomendado es utilizarlo AWS CodeDeploypara implementaciones automatizadas y repetibles. CodeDeploy se integra perfectamente con otras, Servicios de AWS como AWS CodeBuild y AWS CodePipeline, por lo que puede crear CI/CD pipeline for your ASP.NET Web Forms application. With CodeDeploy, you can define deployment strategies such as rolling and blue/green actualizaciones completas para garantizar un tiempo de inactividad mínimo y una transición fluida entre las versiones de la aplicación.

Para obtener más información y ejemplos sobre cómo configurar canalizaciones de CI/CD para aplicaciones de ASP.NET Web Forms mediante CodePipeline CodeBuild CodeDeploy, y consulte la entrada del AWS blog Creación de canalizaciones de CI/CD para ASP.NET 4.x con y. AWS CodePipeline AWS Elastic Beanstalk

Al utilizarlos Servicios de AWS como CodeBuild, y CodeDeploy CodePipeline, puede agilizar los procesos de creación e implementación de las aplicaciones ASP.NET Web Forms migradas y garantizar implementaciones consistentes y confiables en la infraestructura. AWS

Para obtener más información sobre las implementaciones automatizadas, consulte la entrada del AWS blog Generación de canalizaciones de CI/CD para aplicaciones ASP.NET en contenedores AWS App2Container y la información sobre la creación de una canalización de CI/CD para aplicaciones antiguas de .NET Framework en Re:post. AWS