Hacer que el proyecto sea compatible con la CLI para desarrolladores de Azure

La CLI para desarrolladores de Azure (azd) permite a los desarrolladores aplicar scaffolding a sus aplicaciones para la nube mediante plantillas hospedadas en GitHub. Microsoft proporciona varias plantillas para empezar. En este artículo, aprenderá a hacer que su propia aplicación azd sea compatible.

Descripción de la arquitectura de plantilla

En el diagrama siguiente se proporciona información general rápida sobre el proceso para crear una azd plantilla:

Diagram of Azure Developer CLI template workflow.

Todas las azd plantillas tienen la misma estructura de archivos, en función de azd las convenciones. En la jerarquía siguiente se muestra la estructura de directorios que creará en este tutorial.

├── .azdo                                        [ Configures an Azure Pipeline ]
├── .devcontainer                                [ For DevContainer ]
├── .github                                      [ Configures a GitHub workflow ]
├── .vscode                                      [ VS Code workspace configurations ]
├── .azure                                       [ Stores Azure configurations and environment variables ]
├── infra                                        [ Contains infrastructure as code files ]
│   ├── main.bicep/main.tf                       [ Main infrastructure file ]
│   ├── main.parameters.json/main.tfvars.json    [ Parameters file ]
│   └── core/modules                             [ Contains reusable Bicep/Terraform modules ]
└── azure.yaml                                   [ Describes the app and type of Azure resources]

Inicialización de la plantilla

El azd init comando se usa para inicializar la aplicación para aprovisionar e implementar los recursos de la aplicación en Azure. Este comando le pide que elija entre dos flujos de trabajo diferentes para inicializar una plantilla que se describe en las secciones siguientes.

  • Usar código en el directorio actual: seleccione esta opción para indicar azd a analizar el código del directorio para identificar qué tecnologías usa, como el lenguaje de programación, el marco de trabajo y el sistema de base de datos. azd Después, generará automáticamente recursos de plantilla, como el azure.yaml archivo de definición de servicio y la infra carpeta con archivos de infraestructura como código.

  • Seleccione una plantilla: seleccione esta opción para usar una plantilla existente como punto de partida. De forma predeterminada, azd le permite examinar plantillas desde la galería de Awesome AZD , pero también puede configurar sus propias galerías de plantillas. Al seleccionar una plantilla, los recursos de esa plantilla se agregarán al directorio del proyecto existente.

Los detalles de cada uno de estos flujos de trabajo se describen en las secciones siguientes.

  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 la herramienta de línea de comandos que prefiera 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 examinará 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.

Configuración de la canalización de CI/CD

Si la plantilla incluye compatibilidad con Acciones de GitHub o Azure Pipelines, puede configurar una canalización de CI/CD mediante los pasos siguientes:

  1. Ejecute el siguiente comando para insertar actualizaciones en el repositorio. El flujo de trabajo acciones de GitHub se desencadena debido a la actualización.

    azd pipeline config    
    
  2. Con el explorador, vaya al repositorio de GitHub del proyecto.

  3. Seleccione Acciones para ver el flujo de trabajo en ejecución.

Limpieza de recursos

Cuando ya no necesite los recursos creados en este artículo, ejecute el siguiente comando:

azd down

Consulte también

Solicitar ayuda

Para obtener información sobre cómo archivar un error, solicitar ayuda o proponer una nueva característica para la CLI para desarrolladores de Azure, visite la página de solución de problemas y soporte técnico .

Pasos siguientes