Compartir vía


Incorporación de compatibilidad con la CLI para desarrolladores de Azure a la aplicación mediante código en el directorio de la aplicación

La CLI para desarrolladores de Azure (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 agregar compatibilidad con la CLI para desarrolladores de Azure (azd) a la aplicación mediante el uso de código en el enfoque de 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. azd analiza el proyecto y proporciona un resumen de los servicios detectados y los recursos de hospedaje de Azure 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 también para sus propias aplicaciones. Si es necesario, los archivos generados se pueden modificar para adaptarlos a sus necesidades. Por ejemplo, puede que tenga que modificar aún más los archivos de infraestructura como código en la carpeta si la infra aplicación se basa en recursos de Azure más allá 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 código Usar en el flujo de trabajo del directorio actual, el comando analiza el azd init proyecto y genera automáticamente el código en función de lo que detecta. 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 admitidos:
    • 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.

Generación

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 admitidos:
    • Azure Container Apps.
  • En el caso de las bases de datos, la asignación admitida entre la tecnología de base de datos y el servicio usados:
    • MongoDB: API de Azure CosmosDB para MongoDB
    • PostgreSQL: servidor flexible de Azure Database for PostgreSQL
    • Redis: complemento redis de Azure Container Apps
  • 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 detectan servicios front-end y back-end, se actualizará la configuración de CORS en el host de Azure para los servicios back-end para permitir el dominio de hospedaje predeterminado de los servicios front-end. Esto se puede modificar o quitar según sea necesario en la infraestructura como archivos de configuración de 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.

Adición de compatibilidad con una 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 acciones de GitHub 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 Acciones de GitHub de ejemplo y archivos de canalizaciones de Azure DevOps de ejemplo para cada plataforma que puede copiar en el proyecto y modificar 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.