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.
Aspire los proyectos están diseñados para ejecutarse en entornos en contenedores.
Azure Container Apps es un entorno totalmente administrado que permite ejecutar microservicios y aplicaciones en contenedores en una plataforma sin servidor. Este artículo le guiará a través de la creación de una nueva Aspire solución y su implementación en Microsoft Azure Container Apps mediante (Azure Developer CLIazd). Aprenderá a completar las siguientes tareas:
- Provisione un Azure grupo de recursos y Registro de Contenedores
- Publica los proyectos de Aspire como imágenes de contenedor en el registro de contenedores de Azure.
- Aprovisionar un Redis contenedor en Azure
- Implementación de las aplicaciones en un Azure Container Apps entorno
- Visualización de registros de consola de aplicaciones para solucionar problemas de la aplicación
Prerrequisitos
Para trabajar con Aspire, necesita lo siguiente instalado localmente:
-
.NET 8.0 o .NET 9.0.
- Aspire A partir de la versión 9.4, .NET se admite la versión preliminar 5 o posterior de 10.
- Un entorno de ejecución de contenedor compatible con OCI, como:
- Docker Escritorio o Podman. Para obtener más información, consulte container runtime.
- Un entorno para desarrolladores integrado (IDE) o un editor de código, como:
- Visual Studio 2022 versión 17.9 o posterior (opcional)
-
Visual Studio Code (opcional)
- C# Dev Kit: extensión (opcional)
- JetBrains Rider con Aspire complemento (opcional)
Para obtener más información, consulte Aspire configuración y herramientas y Aspire SDK.
Como alternativa a este tutorial y para obtener una guía más detallada, consulte Implementación de un Aspire proyecto para Azure Container Apps usar azd (guía detallada).
Implementación de Aspire proyectos con azd
Con Aspire y Azure Container Apps (ACA), tiene un excelente escenario de hospedaje para desarrollar sus aplicaciones nativas en la nube con .NET. Hemos creado algunas excelentes características nuevas en el Azure Developer CLI (azd) específicamente para el desarrollo y la implementación de Aspire en Azure, ofreciendo una experiencia sin fricción. Para escenarios de producción que requieren un control pormenorizado sobre la infraestructura, consulte Personalización AspireAzure de implementaciones. Sin embargo, en el caso de los nuevos proyectos, no encontrará una ruta de acceso más fácil al éxito para obtener una nueva topología de microservicio implementada en la nube.
Creación de un Aspire proyecto
Como punto de partida, se asume en este artículo que has creado un Aspire proyecto a partir de la plantilla Aspire Aplicación inicial. Para obtener más información, consulte Inicio rápido: Compilación del primer Aspire proyecto.
Asignación de nombres de recursos
Al crear nuevos Azure recursos, es importante seguir los requisitos de nomenclatura. Para Azure Container Apps, el nombre debe tener entre 2 y 32 caracteres y consistir en letras minúsculas, números y guiones. El nombre debe comenzar con una letra y terminar con un carácter alfanumérico.
Para obtener más información, consulte Reglas de nomenclatura y restricciones para Azure los recursos.
Instala el Azure Developer CLI
El proceso de instalación azd varía en función del sistema operativo, pero está ampliamente disponible a través wingetde , brew, apto directamente a través de curl. Para instalar azd, consulte Instalar Azure Developer CLI.
Inicialización de la plantilla
Abra una nueva ventana de terminal y
cden el directorio de la solución Aspire.Ejecute el comando
azd initpara inicializar el proyecto conazd, que inspeccionará la estructura del directorio local y determinará el tipo de aplicación.azd initPara obtener más información sobre el comando
azd init, vea azd init.Seleccione Usar código en el directorio actual cuando
azdle pida tres opciones de inicialización de la aplicación.? How do you want to initialize your app? [Use arrows to move, type to filter] > Use code in the current directory Select a template Create a minimal projectDespués de examinar el directorio,
azdle pide que confirme que encontró el proyecto Aspire correcto. Seleccione la opción Confirmar y continuar con la inicialización de la aplicación.Detected services: .NET (Aspire) Detected in: D:\source\repos\AspireSample\AspireSample.AppHost\AspireSample.AppHost.csproj azd will generate the files necessary to host your app on Azure using Azure Container Apps. ? Select an option [Use arrows to move, type to filter] > Confirm and continue initializing my app Cancel and exitEscriba un nombre de entorno, que se usa para asignar un nombre a los recursos aprovisionados en Azure y administrar entornos diferentes, como
devyprod.Generating files to run your app on Azure: (✓) Done: Generating ./azure.yaml (✓) Done: Generating ./next-steps.md SUCCESS: Your app is ready for the cloud! You can provision and deploy your app to Azure by running the azd up command in this directory. For more information on configuring your app, see ./next-steps.md
azd genera una serie de archivos y los coloca en el directorio de trabajo. Estos archivos son:
- azure.yaml: Describe los servicios de la aplicación, como el proyecto Aspire AppHost, y los asigna a Azure recursos.
-
.azure/config.json: archivo de configuración que informa
azdcuál es el entorno activo actual. - .azure/aspireazddev/.env: Contiene anulaciones específicas del entorno.
Implementación de la plantilla
Una vez inicializada una
azdplantilla, el proceso de aprovisionamiento e implementación se puede ejecutar como un solo comando desde el directorio del proyecto AppHost mediante azd up:azd upSeleccione la suscripción a la que desea realizar la implementación en en la lista de opciones disponibles:
Select an Azure Subscription to use: [Use arrows to move, type to filter] 1. SampleSubscription01 (xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx) 2. SampleSubscription02 (xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx)Seleccione la ubicación deseada Azure que se va a usar en la lista de opciones disponibles:
Select an Azure location to use: [Use arrows to move, type to filter] 42. (US) Central US (centralus) 43. (US) East US (eastus) > 44. (US) East US 2 (eastus2) 46. (US) North Central US (northcentralus) 47. (US) South Central US (southcentralus)
Después de realizar las selecciones, azd ejecuta el proceso de aprovisionamiento e implementación.
By default, a service can only be reached from inside the Azure Container Apps environment it is running in. Selecting a service here will also allow it to be reached from the Internet.
? Select which services to expose to the Internet webfrontend
? Select an Azure Subscription to use: 1. <YOUR SUBSCRIPTION>
? Select an Azure location to use: 1. <YOUR LOCATION>
Packaging services (azd package)
Provisioning Azure resources (azd provision)
Provisioning Azure resources can take some time.
Subscription: <YOUR SUBSCRIPTION>
Location: <YOUR LOCATION>
You can view detailed progress in the Azure Portal:
<LINK TO DEPLOYMENT>
(✓) Done: Resource group: <YOUR RESOURCE GROUP>
(✓) Done: Container Registry: <ID>
(✓) Done: Log Analytics workspace: <ID>
(✓) Done: Container Apps Environment: <ID>
SUCCESS: Your application was provisioned in Azure in 1 minute 13 seconds.
You can view the resources created under the resource group <YOUR RESOURCE GROUP> in Azure Portal:
<LINK TO RESOURCE GROUP OVERVIEW>
Deploying services (azd deploy)
(✓) Done: Deploying service apiservice
- Endpoint: <YOUR UNIQUE apiservice APP>.azurecontainerapps.io/
(✓) Done: Deploying service webfrontend
- Endpoint: <YOUR UNIQUE webfrontend APP>.azurecontainerapps.io/
Aspire Dashboard: <LINK TO DEPLOYED Aspire DASHBOARD>
SUCCESS: Your up workflow to provision and deploy to Azure completed in 3 minutes 50 seconds.
El azd up comando actúa como contenedor para los siguientes comandos individuales azd para aprovisionar e implementar los recursos en un solo paso:
-
azd package: los proyectos de aplicación y sus dependencias se empaquetan en contenedores. -
azd provision: se aprovisionan los Azure recursos que necesitará la aplicación. -
azd deploy: los proyectos se insertan como contenedores en una Azure instancia de Container Registry y, a continuación, se usan para crear nuevas revisiones de Azure Container Apps en las que se hospedará el código.
Cuando se completen las azd up fases, la aplicación estará disponible en Azurey puede abrir el Azure portal para explorar los recursos.
azd también genera direcciones URL para acceder directamente a las aplicaciones implementadas.
Prueba de la aplicación implementada
Ahora que la aplicación se ha aprovisionado e implementado, puede navegar al portal Azure. En el grupo de recursos donde implementó la aplicación, verá las tres aplicaciones de contenedor y otros recursos.
Haga clic en la web App de Contenedor para abrirla en el portal.
Aspire project's front end in the Azure portal.
Haga clic en el vínculo Dirección URL de la aplicación para abrir el front-end en el explorador.
Al hacer clic en el nodo "Weather" de la barra de navegación, la aplicación contenedora front-end web realiza una llamada a la aplicación contenedora apiservice para obtener datos. La salida del front-end se almacenará en caché mediante la redis aplicación contenedora y la AspireRedis integración del almacenamiento en caché de salida. A medida que actualice el front-end varias veces, observará que los datos meteorológicos se almacenan en caché. Se actualizará después de unos segundos.
Desplegar el Aspire panel
Puede implementar el Aspire panel como parte de la aplicación hospedada. Esta funcionalidad ahora está totalmente soportada. Al implementar, los registros de salida de azd imprimen una dirección URL adicional en el panel implementado.
Puede ejecutar azd monitor para iniciar automáticamente el panel.
azd monitor
Limpieza de recursos
Ejecute el siguiente comando Azure CLI para eliminar el grupo de recursos cuando ya no necesite los recursos de Azure que creó. Al eliminar el grupo de recursos también se eliminan los recursos contenidos en él.
az group delete --name <your-resource-group-name>
Para obtener más información, consulte el apartado Limpieza de recursos en Azure.