Esquema azure.yaml de la CLI para desarrolladores de Azure
Artículo
azd 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.
Muestra
A continuación se muestra un ejemplo genérico de un azure.yaml necesario para la plantilla de azd.
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
(cadena) Nombre del grupo de recursos de Azure. Cuando se especifique, invalidará el nombre del grupo de recursos usado para el aprovisionamiento de infraestructura.
(objeto) Proporciona configuración adicional para el aprovisionamiento de la infraestructura de Azure. Consulte propiedades de infraestructura para obtener más información.
services
Y
(objeto) Definición de servicios que componen la aplicación. Consulte propiedades de servicios para obtener más información.
pipeline
N
(objeto) Definición de la canalización de integración continua. Consulte propiedades de canalización para obtener más información.
Intervalo de versiones admitidas de azd para este proyecto. Si la versión de azd está fuera de 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) El proveedor de infraestructura para los recursos de Azure de la aplicación. (Valor predeterminado: bicep).
Consulte la de ejemplo de Terraform a continuación.
bicep, terraform
path
N
(cadena) La 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) El nombre del módulo predeterminado con las plantillas de aprovisionamiento de Azure. (Valor predeterminado: main).
(cadena) Nombre del recurso de Azure que implementa el servicio. Si no se especifica, azd buscará un recurso mediante etiquetas azd-env-name y azd-service-name. Si no se encuentra, buscará un nombre de recurso construido a partir del nombre de 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, staticwebapp, aks (solo para proyectos que se pueden implementar mediante kubectl apply -f), springapp (cuando habilitado, obtenga más información sobre 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 (.zip archivo). 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 la de ejemplo de Docker personalizada a continuación.
path(cadena): ruta de acceso al Dockerfile. Valor predeterminado: ./Dockerfile; context(cadena): el contexto de compilación de Docker. Cuando se especifica, invalida el contexto predeterminado. Valor predeterminado: .; platform(cadena): destino de la plataforma. Valor predeterminado: amd64; remoteBuild(booleano): habilita las compilaciones remotas de ACR. Valor predeterminado: false
k8s
N
Las opciones de configuración de Azure Kubernetes Service (AKS).
Consulte la de ejemplo de AKS de a continuación.
deploymentPath(cadena): 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(cadena): 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): consulte propiedades de implementación; service(objeto): vea propiedades del servicio; ingress(objeto): vea propiedades de entrada.
hooks
N
Enlaces de nivel de servicio. Los enlaces deben coincidir con service nombres de eventos prefijos con pre o post en función de cuándo se debe ejecutar el script. Al especificar rutas de acceso, deben ser relativas a la ruta de acceso del servicio.
Especifique un api-version explícito al implementar servicios hospedados por Azure Container Apps (ACA). Esta característica le ayuda a evitar el uso de una versión de API incompatible y hace que la implementación esté más acoplada para evitar perder datos de configuración personalizados durante la serialización de JSON a una versión de biblioteca de Azure SDK codificada de forma rígida.
apiVersion: 2024-02-02-preview
Ejemplo de opciones de Docker
En el ejemplo siguiente, declaramos las opciones de Docker para una aplicación contenedora.
(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. Valor predeterminado: Service name
api
Propiedades de service de AKS
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 ingress de AKS
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. Valor predeterminado: 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) El proveedor de canalización que se usará para la integración continua. (Valor predeterminado: github).
github, azdo
Azure Pipelines (AzDo) como ejemplo de canalización de CI/CD
Cuando se especifica invalidará el comportamiento predeterminado para el flujo de trabajo azd up.
propiedades de up
Nombre del elemento
Tipo
Obligatorio
Descripción
Pasos
arreglo
Sí
Pasos para ejecutar en el flujo de trabajo.
propiedades de steps
Nombre del elemento
Tipo
Obligatorio
Descripción
azd
cuerda
Sí
Nombre y argumentos del comando azd que se va a ejecutar.
Flujo de trabajo de ejemplo
El siguiente archivo azure.yaml cambia el comportamiento predeterminado de azd up para mover el paso de azd package después del paso de azd provision mediante un flujo de trabajo. Este ejemplo podría usarse en escenarios en los que necesita conocer las direcciones URL de los recursos durante el proceso de compilación o empaquetado.
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 solución de problemas y soporte técnico.