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 a seguir um exemplo genérico de um azure.yaml modelo necessário.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
Compare com o azure.yaml de nosso modelo ToDo NodeJs Mongo:
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
Descrições de propriedade
| Nome do elemento |
Necessário |
Descrição |
name |
Y |
(cadeia de caracteres) Nome do aplicativo. |
resourceGroup |
N |
(cadeia de caracteres) Nome do grupo de recursos do Azure. Quando especificado, substitui 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. |
hooks |
N |
Ganchos de nível de comando. Os ganchos devem corresponder azd nomes de comando prefixados com pre ou post dependendo de quando o script deve ser executado. Ao especificar caminhos, eles devem ser relativos ao caminho do projeto. Consulte Personalizar seus fluxos de trabalho da CLI do Desenvolvedor do Azure usando comando e ganchos de evento para obter mais detalhes. |
requiredVersions |
N |
Uma variedade de versões com suporte de azd para este projeto. Se a versão estiver azd fora desse intervalo, o projeto falhará ao carregar. Opcional (permite todas as versões, se ausente). Exemplo: >= 0.6.0-beta.3 |
| 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). |
Veja o exemplo do Terraform.
bicep, terraform |
path |
N |
(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). |
|
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
propriedades de services
| Nome do elemento |
Necessário |
Descrição |
Exemplo |
resourceName |
N |
(cadeia de caracteres) Nome do recurso do Azure que implementa o serviço. Se não for especificado, azd procure um recurso e azd-env-nameazd-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, , tsjava |
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 pressupõe que o nome do módulo seja 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 usa 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. |
Consulte o exemplo personalizado do Docker.
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). |
Consulte o exemplo do AKS.
deploymentPath
(cadeia de caracteres): opcional. O caminho relativo do caminho do serviço para os manifestos de implantação K8s. Quando definido, ele substitui 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. Quando você especificar caminhos, eles devem ser relativos ao caminho do serviço. |
Consulte Personalizar seus fluxos de trabalho da CLI do Desenvolvedor do Azure usando comando e ganchos de evento para obter mais detalhes. |
apiVersion |
N |
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.
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
docker:
remoteBuild: true
Propriedades de deployment do AKS
| Nome do elemento |
Necessário |
Descrição |
Exemplo |
name |
N |
(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 da implantação do 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, acrescenta à 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
name: yourApp
services:
web:
project: src/web
dist: build
language: js
host: appservice
pipeline:
provider: azdo
propriedades de workflows
| Nome do elemento |
Tipo |
Necessário |
Descrição |
| em cima |
objeto |
Não |
Quando especificado, substitui o comportamento padrão para o fluxo de trabalho do azd up. |
propriedades de up
| Nome do elemento |
Tipo |
Necessário |
Descrição |
| Passos |
matriz |
Sim |
As etapas a serem executadas no fluxo de trabalho. |
propriedades de steps
| Nome do elemento |
Tipo |
Necessário |
Descrição |
| azd |
cadeia |
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.
name: todo-nodejs-mongo
metadata:
template: todo-nodejs-mongo@0.0.1-beta
workflows:
up:
steps:
- azd: provision
- azd: deploy --all
Solicitar ajuda
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.
Próximas etapas