Compartir a través de


Implementación de un Aspire proyecto en Azure Container Apps

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:

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

  1. Abra una nueva ventana de terminal y cd en el directorio de la solución Aspire.

  2. Ejecute el comando azd init para inicializar el proyecto con azd, que inspeccionará la estructura del directorio local y determinará el tipo de aplicación.

    azd init
    

    Para obtener más información sobre el comando azd init, vea azd init.

  3. Seleccione Usar código en el directorio actual cuando azd le 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 project
    
  4. Después de examinar el directorio, azd le 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 exit
    
  5. Escriba un nombre de entorno, que se usa para asignar un nombre a los recursos aprovisionados en Azure y administrar entornos diferentes, como dev y prod.

    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 azd cuál es el entorno activo actual.
  • .azure/aspireazddev/.env: Contiene anulaciones específicas del entorno.

Implementación de la plantilla

  1. Una vez inicializada una azd plantilla, el proceso de aprovisionamiento e implementación se puede ejecutar como un solo comando desde el directorio del proyecto AppHost mediante azd up:

    azd up
    
  2. Seleccione 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)
    
  3. 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:

  1. azd package: los proyectos de aplicación y sus dependencias se empaquetan en contenedores.
  2. azd provision: se aprovisionan los Azure recursos que necesitará la aplicación.
  3. 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.

Captura de pantalla del grupo de Aspire recursos del proyecto en el Azure portal.

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.

Captura de pantalla del Aspire front-end del proyecto 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.