Compartir vía


Incorporación de compatibilidad con la CLI para desarrolladores de Azure a la aplicación mediante una plantilla existente

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 enfoque Seleccionar una plantilla . 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.

Seleccionar una plantilla para la aplicación

El flujo de trabajo Seleccionar una plantilla del azd init comando permite elegir una plantilla existente azd que se usará como punto de partida. El contenido de la plantilla seleccionada se agrega al directorio raíz del proyecto. La mayoría de las plantillas proporcionan el conjunto necesario de azd archivos y carpetas, y muchos incluyen un conjunto completo de archivos de infraestructura como código para aprovisionar recursos de Azure para una pila de aplicaciones elegida.

En este ejemplo, usará la plantilla Starter - Bicep , que incluye la estructura esencial de una azd plantilla y algún código reutilizable útil para empezar. Las plantillas de inicio son una excelente opción cuando quiere aplicar scaffolding a la estructura de plantilla correcta y a los recursos de inicio, pero siguen creando sus propios archivos de infraestructura.

  1. Para seguir los pasos que se indican a continuación mediante una aplicación de ejemplo existente, clone el siguiente proyecto de inicio en un directorio vacío en el equipo:

    git clone https://github.com/Azure-Samples/msdocs-python-flask-webapp-quickstart
    
  2. En la herramienta de línea de comandos que prefiera, vaya al directorio raíz del proyecto clonado.

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

    azd init
    
  4. Cuando se le solicite, elija la opción Seleccionar una plantilla.

    Captura de pantalla que muestra la selección de una plantilla.

  5. En la lista de plantillas, seleccione Starter - Bicep. Puede escribir el nombre de la plantilla o usar las teclas de dirección del teclado para encontrarlo.

  6. Cuando se le solicite, escriba un nombre de entorno corto, como testenv.

  7. Después de ejecutar azd init, se agregan los siguientes recursos al directorio actual:

    ├── .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]
    

Actualización de los archivos de Bicep

El proyecto ahora contiene la estructura principal y los recursos de una azd plantilla. Sin embargo, para aprovisionar los recursos de Azure para su proyecto específico, es necesario actualizar los archivos de Bicep de la infra carpeta. Para hospedar la aplicación de ejemplo, deberá definir los siguientes recursos mediante archivos de Bicep:

  • Un plan de servicio de App de Azure
  • Un servicio App de Azure que se ejecuta en Linux
  1. Abra el directorio del proyecto raíz en el editor que prefiera, como Visual Studio Code.

  2. Abra el main.bicep archivo en la carpeta mediante el infra editor. Este archivo contiene código reutilizable útil para configurar variables esenciales, parámetros y convenciones de nomenclatura. Debajo del bloque de comentarios alrededor de la línea 50 que lee Add resources to be provisioned below, agregue lo siguiente:

    // Creates an app service instance to host the app
    module web './core/host/appservice.bicep' = {
      name: 'web'
      scope: rg
      params: {
        name: '${abbrs.webSitesAppService}web-${resourceToken}'
        location: location
        tags: union(tags, { 'azd-service-name': 'web' })
        appServicePlanId: appServicePlan.outputs.id
        runtimeName: 'python'
        runtimeVersion: '3.8'
        scmDoBuildDuringDeployment: true
      }
    }
    
    // Create an App Service Plan to group applications under the same payment plan and SKU
    module appServicePlan './core/host/appserviceplan.bicep' = {
      name: 'appserviceplan'
      scope: rg
      params: {
        name: '${abbrs.webServerFarms}${resourceToken}'
        location: location
        tags: tags
        sku: {
          name: 'B1'
        }
      }
    }
    

    Nota:

    • Se genera una cadena única basada en el identificador de suscripción y se usa como variable ${resourceToken} . Este token se anexa al nombre de todos los recursos de Azure creados por azd.
    • azd usa etiquetas para identificar recursos para que pueda modificar los nombres en función de la convención de nomenclatura de su organización.
    • La 'azd-service-name': 'web' etiqueta del servicio de aplicaciones es el valor azd que usa para identificar el host de implementación. El valor debe ser el mismo que el definido para el servicio en el archivo azure.yaml .

Actualización del archivo azure.yaml

Para implementar la aplicación, azd debe saber más sobre la aplicación. El azure.yaml archivo se usa para definir la ubicación del código fuente, el idioma y el servicio de hospedaje de Azure para cada servicio de la aplicación. Para más información, consulte el esquema azure.yaml.

  1. Abra en azure.yaml la raíz del proyecto.

  2. Agregue las líneas siguientes a la parte inferior del archivo:

    name: msdocs-python-flask-webapp-quickstart
    services:
      web:
        project: .
        language: py
        host: appservice
    

Aprovisionamiento e implementación de la plantilla

  1. Guarde todos los cambios y ejecute el siguiente comando para aprovisionar e implementar los recursos de la aplicación en Azure:

    azd up
    
  2. Cuando finalice el comando, haga clic en el vínculo de la salida del comando para ir al sitio implementado.

El proyecto ahora es compatible con la CLI para desarrolladores de Azure y se puede usar como plantilla.

Nota:

azd también admite el uso de Buildpack para incluir en contenedores las aplicaciones de forma predeterminada. Si la azd plantilla tiene como destino Azure Container Apps o Azure Kubernetes Service, pero no incluye un archivo de Docker, azd genera automáticamente una imagen mediante Buildpack.