Esquema azure.yaml da CLI do Desenvolvedor do Azure
Artigo
azd modelos são repositórios de blueprint que incluem código de aplicativo de prova de conceito, configurações de editor/IDE e código de infraestrutura escrito em Bicep ou Terraform. Esses modelos devem ser modificados e adaptados para seus requisitos de aplicativo específicos e, em seguida, usados para obter seu aplicativo no Azure usando a CLI do Desenvolvedor do Azure (azd). O esquema azure.yaml define e descreve os aplicativos e tipos de recursos do Azure incluídos nesses modelos.
Amostra
Veja abaixo um exemplo genérico de um azure.yaml necessário para seu modelo 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
(cadeia de caracteres) Nome do grupo de recursos do Azure. Quando especificado, substituirá o nome do grupo de recursos usado para provisionamento de infraestrutura.
metadata
N
(objeto) Consulte as propriedades de metadados para obter mais detalhes.
infra
N
(objeto) Fornece configuração extra para provisionamento de infraestrutura do Azure. Consulte propriedades infra para obter mais detalhes.
services
Y
(objeto) Definição de serviços que compõem o aplicativo. Consulte propriedades de serviços para obter mais detalhes.
pipeline
N
(objeto) Definição de pipeline de integração contínua. Consulte propriedades de pipeline para obter mais detalhes.
Uma variedade de versões com suporte de azd para este projeto. Se a versão do azd estiver fora desse intervalo, o projeto falhará ao carregar. Opcional (permite todas as versões, se ausente). Exemplo: >= 0.6.0-beta.3
propriedades de metadata
Nome do elemento
Necessário
Descrição
Exemplo
template
N
(cadeia de caracteres) Identificador do modelo do qual o aplicativo foi criado.
todo-nodejs-mongo@0.0.1-beta
propriedades de infra
Nome do elemento
Necessário
Descrição
Exemplo
provider
N
(cadeia de caracteres) o provedor de infraestrutura para os recursos do Azure do aplicativo. (Padrão: bicep).
(cadeia de caracteres) o caminho da pasta relativa para o local que contém modelos de provisionamento do Azure para o provedor especificado. (Padrão: infra).
module
N
(cadeia de caracteres) O nome do módulo padrão com os modelos de provisionamento do Azure. (Padrão: principal).
(cadeia de caracteres) Nome do recurso do Azure que implementa o serviço. Se não for especificado, azd procurará um recurso azd-env-name e azd-service-name marcas. Se não for encontrado, ele procurará um nome de recurso construído a partir do nome do ambiente atual, concatenado com o nome do serviço (<environment-name><resource-name>).
prodapi
project
Y
(cadeia de caracteres) Caminho para o diretório do código-fonte do serviço.
host
Y
(cadeia de caracteres) tipo de recurso do Azure usado para implementação de serviço. Se omitido, o Serviço de Aplicativo será assumido.
appservice, containerapp, function, staticwebapp, aks (somente para projetos implantáveis por meio de kubectl apply -f), springapp (quando habilitado – saiba mais sobre recursos alfa)
language
Y
(cadeia de caracteres) linguagem de implementação do serviço.
dotnet, csharp, fsharp, py, python, js, ts, java
module
Y
(cadeia de caracteres) Caminho do módulo de infraestrutura usado para implantar o serviço em relação à pasta infra raiz. Se omitida, a CLI assumirá que o nome do módulo é o mesmo que o nome do serviço.
dist
Y
(cadeia de caracteres) caminho relativo para os artefatos de implantação de serviço. A CLI usará arquivos nesse caminho para criar o artefato de implantação (.zip arquivo). Se omitido, todos os arquivos no diretório do projeto de serviço serão incluídos.
build
docker
N
Aplicável somente quando host é containerapp. Não é possível conter propriedades extras.
Veja o de exemplo personalizado do Docker abaixo.
path(cadeia de caracteres): caminho para o Dockerfile. Padrão: ./Dockerfile; context(cadeia de caracteres): o contexto de build do Docker. Quando especificado, substitui o contexto padrão. Padrão: .; platform(cadeia de caracteres): o destino da plataforma. Padrão: amd64; remoteBuild(booliano): habilita builds remotos do ACR. Padrão: false
k8s
N
As opções de configuração do AKS (Serviço de Kubernetes do Azure).
Veja o de exemplo do AKS abaixo.
deploymentPath(cadeia de caracteres): opcional. O caminho relativo do caminho do serviço para os manifestos de implantação k8s. Quando definido, ele substituirá o local de caminho de implantação padrão para manifestos de implantação k8s. Padrão: manifests; namespace(cadeia de caracteres): opcional. O namespace k8s dos recursos implantados. Quando especificado, um novo namespace k8s será criado se ele ainda não existir. Padrão: Project name; deployment(objeto): consulte as propriedades de implantação ; service(objeto): consulte as propriedades do serviço ; ingress(objeto): consulte propriedades de entrada.
hooks
N
Ganchos de nível de serviço. Os ganchos devem corresponder service nomes de evento prefixados com pre ou post dependendo de quando o script deve ser executado. Ao especificar caminhos, eles devem ser relativos ao caminho do serviço.
Especifique um api-version explícito ao implantar serviços hospedados pelos Aplicativos de Contêiner do Azure (ACA). Esse recurso ajuda você a evitar o uso de uma versão incompatível da API e torna a implantação mais flexível para evitar perder dados de configuração personalizados durante o marshaling JSON para uma versão de biblioteca do SDK do Azure codificada.
apiVersion: 2024-02-02-preview
Exemplo de opções do Docker
No exemplo a seguir, declaramos as opções do Docker para um aplicativo de contêiner.
(cadeia de caracteres) Opcional. O nome do recurso de implantação k8s a ser usado durante a implantação. Usado durante a implantação para garantir se a distribuição de implantação k8s foi concluída. Se não estiver definido, procurará um recurso de implantação no mesmo namespace que contém o nome do serviço. Padrão: Service name
api
Propriedades de service do AKS
Nome do elemento
Necessário
Descrição
Exemplo
name
N
(cadeia de caracteres) Opcional. O nome do recurso de serviço k8s a ser usado como o ponto de extremidade de serviço padrão. Usado ao determinar pontos de extremidade para o recurso de serviço padrão. Se não estiver definido, procurará um recurso de implantação no mesmo namespace que contém o nome do serviço. (Padrão: nome do serviço)
api
Propriedades de ingress do AKS
Nome do elemento
Necessário
Descrição
Exemplo
name
N
(cadeia de caracteres) Opcional. O nome do recurso de entrada k8s a ser usado como o ponto de extremidade de serviço padrão. Usado ao determinar pontos de extremidade para o recurso de entrada padrão. Se não estiver definido, procurará um recurso de implantação no mesmo namespace que contém o nome do serviço. Padrão: Service name
api
relativePath
N
(cadeia de caracteres) Opcional. O caminho relativo para o serviço da raiz do controlador de entrada. Quando definido, será acrescentado à raiz do caminho do recurso de entrada.
Exemplo do AKS com ganchos de nível de serviço
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}
propriedades de pipeline
Nome do elemento
Necessário
Descrição
Exemplo
provider
N
(cadeia de caracteres) o provedor de pipeline a ser usado para integração contínua. (Padrão: github).
github, azdo
Azure Pipelines (AzDo) como um exemplo de pipeline de CI/CD
Quando especificado, substituirá o comportamento padrão para o fluxo de trabalho do azd up.
propriedades de up
Nome do elemento
Tipo
Necessário
Descrição
Passos
array
Sim
As etapas a serem executadas no fluxo de trabalho.
propriedades de steps
Nome do elemento
Tipo
Necessário
Descrição
azd
corda
Sim
O nome e o args do comando azd a ser executado.
Fluxo de trabalho de exemplo
O arquivo azure.yaml a seguir altera o comportamento padrão de azd up para mover a etapa azd package após a etapa azd provision usando um fluxo de trabalho. Este exemplo pode ser usado em cenários em que você precisa saber as URLs dos recursos durante o processo de build ou empacotamento.
Para obter informações sobre como arquivar um bug, solicitar ajuda ou propor um novo recurso para a CLI do Desenvolvedor do Azure, visite a página solução de problemas e suporte.