Propriedades e parâmetros em environment.yaml

As definições de ambiente dos Ambientes de Implantação do Azure são modelos de iac (infraestrutura como código) escritos em ARM, Bicep, Terraform ou outras estruturas com suporte por meio do modelo de extensibilidade do ADE e armazenados em repositórios. Você pode modificar e adaptar definições de ambiente para seus requisitos e usá-las para criar um ambiente de implantação no Azure. O esquema environment.yaml define e descreve os tipos de recursos do Azure incluídos nas definições de ambiente.

O que é environment.yaml?

O arquivo environment.yaml atua como um manifesto, descrevendo os recursos usados e o local do modelo para a definição de ambiente.

Exemplo de environment.yaml

O script a seguir é um exemplo do environment.yaml necessário para sua definição de ambiente.

name: WebApp
version: 1.0.0
summary: Azure Web App Environment
description: Deploys a web app in Azure without a datastore
runner: ARM
templatePath: azuredeploy.json

Definitions

A tabela a seguir descreve as propriedades que você pode usar em environment.yaml.

Propriedade Tipo Description Obrigatório? Example
name cadeia O nome de exibição do item de catálogo. Yes Webapp
version cadeia A versão do item de catálogo. No 1.0.0
summary cadeia Uma cadeia de caracteres curta que resume o item de catálogo. No Ambiente do Aplicativo Web do Azure
description cadeia Uma descrição do item de catálogo. No Implanta um aplicativo Web no Azure sem um armazenamento de dados
runner cadeia A imagem de contêiner a ser usada ao executar ações. No Modelo ARM
Terraform
templatePath cadeia O caminho relativo do arquivo de modelo de entrada. Yes main.tf
main.bicep
azuredeploy.json
parameters matriz Parâmetros de entrada a serem usados ao criar o ambiente e executar ações. No #/definitions/Parameter

Parâmetros em environment.yaml

Os parâmetros permitem reutilizar uma definição de ambiente em cenários diferentes. Por exemplo, talvez você queira que desenvolvedores em regiões diferentes implantem o mesmo ambiente. Você pode definir um parâmetro de localização para solicitar que os desenvolvedores insiram o local desejado à medida que criam seus ambientes.

Exemplo de environment.yaml com parâmetros

O script a seguir é um exemplo de um arquivo environment.yaml que inclui dois parâmetros: location e name.

name: WebApp
summary: Azure Web App Environment
description: Deploys a web app in Azure without a datastore
runner: ARM
templatePath: azuredeploy.json
parameters:
- id: "location"
  name: "location"
  description: "Location to deploy the environment resources"
  default: "[resourceGroup().location]"
  type: "string"
  required: false
- id: "name"
  name: "name"
  description: "Name of the Web App "
  default: ""
  type: "string"
  required: false

Definições de parâmetros

A tabela a seguir descreve os tipos de dados que você pode usar em environment.yaml. Os nomes de tipo de dados usados no arquivo de manifesto environment.yaml diferem dos usados nos modelos do ARM.

Cada parâmetro pode usar qualquer uma das seguintes propriedades:

Parâmetro Tipo Description Configurações adicionais
id cadeia Uma ID exclusiva do parâmetro.
name cadeia Um nome de exibição para o parâmetro.
description cadeia Uma descrição do parâmetro.
default matriz
booleano
inteiro
número
objeto
cadeia de caracteres
O valor padrão do parâmetro.
type matriz
booleano
inteiro
número
objeto
cadeia de caracteres
O tipo de dados do parâmetro. Esse tipo de dados deve corresponder ao tipo de dados de parâmetro que tem o nome do parâmetro correspondente no modelo do ARM, arquivo Bicep ou arquivo Terraform. Tipo padrão: cadeia de caracteres
readOnly boolean Se o parâmetro é somente leitura.
required boolean Se o parâmetro é necessário.
allowed matriz Uma matriz de valores permitidos. "items": {
"type": "string"
},
"minItems": 1,
"uniqueItems": true,

Esquema do YAML

Há um esquema definido para arquivos environment.yaml dos Ambientes de Implantação do Azure. Isso pode tornar a edição desses arquivos um pouco mais fácil. Você pode adicionar a definição de esquema ao início do arquivo environment.yaml:

# yaml-language-server: $schema=https://github.com/Azure/deployment-environments/releases/download/2022-11-11-preview/manifest.schema.json

Aqui está um exemplo de definição de ambiente que usa o esquema:

# yaml-language-server: $schema=https://github.com/Azure/deployment-environments/releases/download/2022-11-11-preview/manifest.schema.json
name: FunctionApp
version: 1.0.0
summary: Azure Function App Environment
description: Deploys an Azure Function App, Storage Account, and Application Insights
runner: ARM
templatePath: azuredeploy.json

parameters:
  - id: name
    name: Name
    description: 'Name of the Function App.'
    type: string
    required: true

  - id: supportsHttpsTrafficOnly
    name: 'Supports HTTPS Traffic Only'
    description: 'Allows https traffic only to Storage Account and Functions App if set to true.'
    type: boolean

  - id: runtime
    name: Runtime
    description: 'The language worker runtime to load in the function app.'
    type: string
    allowed:
      - 'dotnet'
      - 'dotnet-isolated'
      - 'java'
      - 'node'
      - 'powershell'
      - 'python'
    default: 'dotnet-isolated'