Share via


Esquema azure.yaml de la CLI para desarrolladores de Azure

azd las plantillas son repositorios de planos técnicos que incluyen código de aplicación de prueba de concepto, configuraciones de editor/IDE y código de infraestructura escrito en Bicep o Terraform. Estas plantillas están diseñadas para modificarse y adaptarse a sus requisitos de aplicación específicos y, a continuación, se usan para obtener la aplicación en Azure mediante la CLI para desarrolladores de Azure (azd). El esquema azure.yaml define y describe las aplicaciones y los tipos de recursos de Azure que se incluyen en estas plantillas.

Ejemplo

A continuación se muestra un ejemplo genérico de un azure.yaml requisito para la azd plantilla.

name: yourApp
metadata:
  template: yourApp@0.0.1-beta
services:
  web:
    project: ./src/web # path to your web project
    dist: build # relative path to service deployment artifacts
    language: js # one of the supported languages
    host: appservice # one of the supported Azure services

Compare con el azure.yaml de nuestra plantilla de Mongo ToDo NodeJs:

name: todo-nodejs-mongo
metadata:
  template: todo-nodejs-mongo@0.0.1-beta
services:
  web:
    project: ./src/web
    dist: build
    language: js
    host: appservice
  api:
    project: ./src/api
    language: js
    host: appservice

Descripciones de propiedades

Nombre del elemento Obligatorio Descripción
name Y (cadena) Nombre de la aplicación.
resourceGroup N (cadena) Nombre del grupo de recursos de Azure. Cuando se especifique, invalidará el nombre del grupo de recursos usado para el aprovisionamiento de infraestructura.
metadata N (objeto) Consulte las propiedades de metadatos para obtener más detalles.
infra N (objeto) Proporciona una configuración adicional para el aprovisionamiento de la infraestructura de Azure. Consulte propiedades de infraestructura para obtener más detalles.
services Y (objeto) Definición de servicios que componen la aplicación. Consulte las propiedades de los servicios para obtener más detalles.
pipeline N (objeto) Definición de la canalización de integración continua. Consulte propiedades de canalización para obtener más detalles.
hooks N Enlaces de nivel de comando. Los enlaces deben coincidir azd con pre los nombres de comando con el prefijo o post dependiendo de cuándo se debe ejecutar el script. Al especificar rutas de acceso, deben ser relativas a la ruta de acceso del proyecto. Consulte Personalización de los flujos de trabajo de la CLI para desarrolladores de Azure mediante enlaces de comandos y eventos para más información.
requiredVersions N Intervalo de versiones admitidas de azd para este proyecto. Si la versión de está fuera de azd este intervalo, el proyecto no se cargará. Opcional (permite todas las versiones si están ausentes). Ejemplo: >= 0.6.0-beta.3

Propiedades de metadata

Nombre del elemento Obligatorio Descripción Ejemplo
template N (cadena) Identificador de la plantilla desde la que se creó la aplicación. todo-nodejs-mongo@0.0.1-beta

Propiedades de infra

Nombre del elemento Obligatorio Descripción Ejemplo
provider N (cadena) Proveedor de infraestructura para los recursos de Azure de la aplicación. (Valor predeterminado: bicep). Consulte el ejemplo de Terraform a continuación. bicep, terraform
path N (cadena) Ruta de acceso de carpeta relativa a la ubicación que contiene plantillas de aprovisionamiento de Azure para el proveedor especificado. (Valor predeterminado: infra).
module N (cadena) Nombre del módulo predeterminado con las plantillas de aprovisionamiento de Azure. (Valor predeterminado: main).

Ejemplo de proveedor de Terraform como IaC

name: yourApp-terraform
metadata:
  template: yourApp-terraform@0.0.1-beta
services:
  web:
    project: ./src/web
    dist: build
    language: js
    host: appservice
  api:
    project: ./src/api
      language: js
      host: appservice
infra:
  provider: terraform

Propiedades de services

Nombre del elemento Obligatorio Descripción Ejemplo
resourceName N (cadena) Nombre del recurso de Azure que implementa el servicio. Si no se especifica, azd buscará un recurso por azd-env-name etiquetas y azd-service-name . Si no se encuentra, buscará un nombre de recurso construido a partir del nombre del entorno actual, concatenado con el nombre del servicio (<environment-name><resource-name>). prodapi
project Y (cadena) Ruta de acceso al directorio de código fuente del servicio.
host Y (cadena) Tipo de recurso de Azure que se usa para la implementación del servicio. Si se omite, se asume App Service. appservice, containerapp, function, , aksstaticwebapp(solo para proyectos que se pueden implementar a través kubectl apply -fde ), springapp (cuando está habilitado, más información sobre las características alfa)
language Y (cadena) Lenguaje de implementación del servicio. dotnet, csharp, fsharp, py, python, js, ts, java
module Y (cadena) Ruta de acceso del módulo de infraestructura que se usa para implementar el servicio en relación con la carpeta de infraestructura raíz. Si se omite, la CLI asume que el nombre del módulo es el mismo que el nombre del servicio.
dist Y (cadena) Ruta de acceso relativa a los artefactos de implementación del servicio. La CLI usará archivos en esta ruta de acceso para crear el artefacto de implementación (archivo.zip). Si se omite, se incluirán todos los archivos del directorio del proyecto de servicio. build
docker N Solo es aplicable cuando host es containerapp. No se pueden contener propiedades adicionales. Consulte el ejemplo personalizado de Docker a continuación. path(string): ruta de acceso al Dockerfile. Valor predeterminado: ./Dockerfile; context(string): el contexto de compilación de Docker. Cuando se especifica, invalida el contexto predeterminado. Valor predeterminado: .; platform(string): destino de la plataforma. Opción predeterminada: amd64
k8s N Las opciones de configuración de Azure Kubernetes Service (AKS). Consulte el ejemplo de AKS siguiente. deploymentPath(string): opcional. Ruta de acceso relativa de la ruta de acceso del servicio a los manifiestos de implementación k8s. Cuando se establece, invalidará la ubicación de ruta de acceso de implementación predeterminada para los manifiestos de implementación k8s. Valor predeterminado: manifests; namespace(string): opcional. Espacio de nombres k8s de los recursos implementados. Cuando se especifica, se creará un nuevo espacio de nombres k8s si aún no existe. Valor predeterminado: Project name; deployment(objeto): vea las propiedades de implementación; service(objeto): vea las propiedades del servicio; ingress(object): vea las propiedades de entrada.
hooks N Enlaces de nivel de servicio. Los enlaces deben coincidir service con pre los nombres de evento con el prefijo o post dependiendo de cuándo se debe ejecutar el script. Al especificar rutas de acceso, deben ser relativas a la ruta de acceso del servicio. Consulte Personalización de los flujos de trabajo de la CLI para desarrolladores de Azure mediante enlaces de comandos y eventos para más información.

Ejemplo de opciones de Docker

En el ejemplo siguiente, declaramos las opciones de Docker para una aplicación contenedora.

name: yourApp-aca
metadata:
    template: yourApp-aca@0.0.1-beta
services:
  api:
    project: ./src/api
    language: js
    host: containerapp
    docker:
      path: ./Dockerfile
      context: ../
  web:
    project: ./src/web
    language: js
    host: containerapp

Propiedades de AKS deployment

Nombre del elemento Obligatorio Descripción Ejemplo
name N (cadena) Opcional. Nombre del recurso de implementación k8s que se va a usar durante la implementación. Se usa durante la implementación para asegurarse de que se ha completado la implementación de k8s. Si no se establece, buscará un recurso de implementación en el mismo espacio de nombres que contiene el nombre del servicio. Opción predeterminada: Service name api

Propiedades de AKS service

Nombre del elemento Obligatorio Descripción Ejemplo
name N (cadena) Opcional. Nombre del recurso de servicio k8s que se va a usar como punto de conexión de servicio predeterminado. Se usa al determinar los puntos de conexión para el recurso de servicio predeterminado. Si no se establece, buscará un recurso de implementación en el mismo espacio de nombres que contiene el nombre del servicio. (Valor predeterminado: Nombre del servicio) api

Propiedades de AKS ingress

Nombre del elemento Obligatorio Descripción Ejemplo
name N (cadena) Opcional. Nombre del recurso de entrada k8s que se va a usar como punto de conexión de servicio predeterminado. Se usa al determinar los puntos de conexión para el recurso de entrada predeterminado. Si no se establece, buscará un recurso de implementación en el mismo espacio de nombres que contiene el nombre del servicio. Opción predeterminada: Service name api
relativePath N (cadena) Opcional. Ruta de acceso relativa al servicio desde la raíz del controlador de entrada. Cuando se establezca, se anexará a la raíz de la ruta de acceso del recurso de entrada.

Ejemplo de AKS con enlaces de nivel de servicio

metadata:
  template: todo-nodejs-mongo-aks@0.0.1-beta
services:
  web:
    project: ./src/web
    dist: build
    language: js
    host: aks
    hooks:
      postdeploy:
        shell: sh
        run: azd env set REACT_APP_WEB_BASE_URL ${SERVICE_WEB_ENDPOINT_URL}
  api:
    project: ./src/api
    language: js
    host: aks
    k8s:
      ingress:
        relativePath: api
    hooks:
      postdeploy:
        shell: sh
        run: azd env set REACT_APP_API_BASE_URL ${SERVICE_API_ENDPOINT_URL}

Propiedades de pipeline

Nombre del elemento Obligatorio Descripción Ejemplo
provider N (cadena) Proveedor de canalización que se va a usar para la integración continua. (Valor predeterminado: github). github, azdo

Azure Pipelines (AzDo) como ejemplo de canalización de CI/CD

name: yourApp
services:  
  web:    
    project: src/web
    dist: build
    language: js
    host: appservice
pipeline: 
  provider: azdo

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