Agrega compatibilidad con Azure Developer CLI a tu aplicación mediante el código del directorio de tu aplicación

La CLI de Azure Developer (azd) proporciona dos flujos de trabajo diferentes para inicializar una plantilla para usarla con la aplicación, que incluyen:

  • Usar código en el directorio actual: este enfoque analiza la aplicación y genera automáticamente recursos de configuración y infraestructura admitidos.
  • Seleccionar una plantilla: este enfoque permite integrar una plantilla existente con la aplicación o usar una plantilla existente como punto de partida para una nueva aplicación.

Ambos enfoques se exploran en el documento de información general Sobre la creación de plantillas de la CLI para desarrolladores de Azure.

En este artículo, aprenderá a añadir compatibilidad con Azure Developer CLI (azd) a su aplicación mediante el enfoque Usar el código del directorio actual. Visite la documentación Agregar azd soporte técnico a la aplicación mediante un documento de plantilla existente para obtener más información sobre el enfoque alternativo. También puede visitar training - build and deploy templates (Entrenamiento: compilación e implementación azd de plantillas ) para obtener más información sobre la creación azd de plantillas.

Usar código en el directorio actual

  1. Puede seguir los pasos que se indican a continuación mediante su propio proyecto. Sin embargo, si prefiere seguir con una aplicación de ejemplo, clone el siguiente repositorio de inicio en un directorio vacío en el equipo:

    git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
    
  2. Abra un terminal en el directorio raíz del proyecto.

  3. Ejecute el azd init comando para inicializar la plantilla.

    azd init
    
  4. Cuando se le solicite, seleccione la opción Usar código en el directorio actual. azdanaliza el proyecto y proporciona un resumen de los servicios detectados y Azure recursos de hospedaje recomendados.

  5. Seleccione Confirmar y continuar inicializando mi aplicación. azd genera los siguientes recursos en el directorio raíz del proyecto:

    • Un azure.yaml archivo con las definiciones de servicio adecuadas.
    • Carpeta infra con archivos de infraestructura como código para aprovisionar e implementar el proyecto en Azure.
    • Una .azure carpeta con variables de entorno establecidas en un .env archivo.

    Más adelante en el artículo se proporcionan más detalles sobre este proceso de detección y generación.

  6. Los archivos generados funcionan tal cual para la aplicación de ejemplo proporcionada y puede que también funcionen para tus propias aplicaciones. Si es necesario, los archivos generados se pueden modificar para adaptarlos a sus necesidades. Por ejemplo, es posible que necesite modificar aún más los archivos de infraestructura como código de la carpeta infra si su aplicación se basa en recursos de Azure además de los identificados por azd.

  7. Ejecute el azd up comando para aprovisionar e implementar la aplicación en Azure.

    azd up
    
  8. Cuando se le solicite, seleccione la suscripción y la ubicación deseadas para comenzar el proceso de aprovisionamiento e implementación.

  9. Cuando se complete el proceso, haga clic en el vínculo de la azd salida para abrir la aplicación en el explorador.

Explorar los pasos de inicialización

Al seleccionar el flujo de trabajo Usar código en el directorio actual, el comando azd init analiza tu proyecto y genera automáticamente código según lo que descubre. En las secciones siguientes se explican los detalles de cómo funciona este proceso y qué tecnologías se admiten actualmente.

Detección

El azd init comando detecta los archivos de proyecto para los idiomas admitidos ubicados en el directorio y subdirectorios del proyecto. azd también examina las dependencias del paquete para recopilar información sobre los marcos web o las bases de datos que usa la aplicación. Si es necesario, puede agregar o editar manualmente los componentes detectados como se muestra en el mensaje de resumen de confirmación.

La lógica de detección actual es la siguiente:

  • Idiomas compatibles:
    • Python
    • JavaScript/TypeScript
    • .NET
    • Java
  • Bases de datos admitidas:
    • MongoDB
    • PostgreSQL
  • Para Python y JavaScript/TypeScript, se detectan automáticamente marcos web y bases de datos.
  • Cuando un proyecto de JavaScript/TypeScript usa un marco web front-end (o del lado cliente), se clasifica como un servicio front-end. Si el servicio usa un marco web front-end que no se detecta actualmente, puede seleccionar JQuery para proporcionar un comportamiento y clasificación de servicios front-end equivalentes.

Generation

Después de confirmar los componentes detectados, azd init genera los archivos de infraestructura como código necesarios para implementar la aplicación en Azure.

La lógica de generación es la siguiente:

  • Hosts compatibles:
    • Azure Container Apps.
  • Para las bases de datos, la correspondencia admitida entre la tecnología de bases de datos y el servicio utilizado:
    • MongoDB: Azure API de CosmosDB para MongoDB
    • PostgreSQL: Servidor flexible de Azure Database for PostgreSQL
    • Redis: complemento Azure Container Apps Redis
  • Los servicios que usan bases de datos tendrán variables de entorno que proporcionan conexión a la base de datos preconfigurada de forma predeterminada.
  • Cuando se detecten tanto servicios front-end como back-end, se actualizará la configuración de CORS en el host de Azure de los servicios back-end para permitir el dominio de alojamiento predeterminado de los servicios front-end. Esto se puede modificar o eliminar según sea necesario en los archivos de configuración de Infraestructura como código.

Adición de compatibilidad con contenedores de desarrollo

También puede hacer que la plantilla sea compatible con contenedores de desarrollo y Codespaces. Un contenedor de desarrollo permite usar un contenedor como entorno de desarrollo completo. Se puede usar para ejecutar una aplicación, para separar herramientas, bibliotecas o entornos de ejecución necesarios para trabajar con un código base y para ayudar en la integración y las pruebas continuas. Los contenedores de desarrollo se pueden ejecutar local o remotamente, en una nube privada o pública. (Origen: https://containers.dev/)

Para agregar compatibilidad con contenedores de desarrollo:

  1. Cree una carpeta .devcontainer en la raíz del proyecto.

  2. Cree un devcontainer.json archivo dentro de la .devcontainer carpeta con las configuraciones deseadas. La azd plantilla de inicio proporciona un archivo de ejemplo devcontainer.json que puede copiar en el proyecto y modificar según sea necesario.

Obtenga más información sobre cómo trabajar con contenedores de desarrollo en la documentación de Visual Studio Code.

Añadir soporte para canalización de CI/CD

También puede agregar compatibilidad con CI/CD en la plantilla mediante acciones de GitHub o Azure DevOps mediante los pasos siguientes:

  1. Agregue una .github carpeta para GitHub acciones o una .ado carpeta para Azure DevOps a la raíz del proyecto.

  2. Agregue un archivo de flujo de trabajo a la nueva carpeta. La azd plantilla de inicio proporciona un archivo de flujo de trabajo de ejemplo Acciones de GitHub y un archivo de ejemplo Azure DevOps Pipelines para cada plataforma. Puede copiar estos archivos en el proyecto y modificarlos según sea necesario.

  3. Es posible que también tenga que actualizar el archivo de la main.parameters.jsoninfra carpeta con las variables de entorno necesarias para que se ejecute el flujo de trabajo.