Referência YAML: Azure Container Instances

Este artigo aborda a sintaxe e as propriedades do ficheiro YAML suportado pelo Azure Container Instances para configurar um grupo de contentores. Utilize um ficheiro YAML para introduzir a configuração do grupo no comando az container create na CLI do Azure.

Um ficheiro YAML é uma forma conveniente de configurar um grupo de contentores para implementações reproduzíveis. É uma alternativa concisa à utilização de um modelo de Resource Manager ou do Azure Container Instances SDKs para criar ou atualizar um grupo de contentores.

Nota

Esta referência aplica-se a ficheiros YAML para Azure Container Instances versão 2021-10-01da API REST.

Esquema

Segue-se o esquema do ficheiro YAML, incluindo comentários para realçar as propriedades da chave. Para obter uma descrição das propriedades neste esquema, veja a secção Valores de propriedade .

name: string  # Name of the container group
apiVersion: '2021-10-01'
location: string
tags: {}
identity: 
  type: string
  userAssignedIdentities: {}
properties: # Properties of container group
  containers: # Array of container instances in the group
  - name: string # Name of an instance
    properties: # Properties of an instance
      image: string # Container image used to create the instance
      command:
      - string
      ports: # External-facing ports exposed on the instance, must also be set in group ipAddress property 
      - protocol: string
        port: integer
      environmentVariables:
      - name: string
        value: string
        secureValue: string
      resources: # Resource requirements of the instance
        requests:
          memoryInGB: number
          cpu: number
          gpu:
            count: integer
            sku: string
        limits:
          memoryInGB: number
          cpu: number
          gpu:
            count: integer
            sku: string
      volumeMounts: # Array of volume mounts for the instance
      - name: string
        mountPath: string
        readOnly: boolean
      livenessProbe:
        exec:
          command:
          - string
        httpGet:
          httpHeaders:
          - name: string
            value: string
          path: string
          port: integer
          scheme: string
        initialDelaySeconds: integer
        periodSeconds: integer
        failureThreshold: integer
        successThreshold: integer
        timeoutSeconds: integer
      readinessProbe:
        exec:
          command:
          - string
        httpGet:
          httpHeaders:
          - name: string
            value: string
          path: string
          port: integer
          scheme: string
        initialDelaySeconds: integer
        periodSeconds: integer
        failureThreshold: integer
        successThreshold: integer
        timeoutSeconds: integer
  imageRegistryCredentials: # Credentials to pull a private image
  - server: string
    username: string
    password: string
    identity: string
    identityUrl: string
  restartPolicy: string
  ipAddress: # IP address configuration of container group
    ports:
    - protocol: string
      port: integer
    type: string
    ip: string
    dnsNameLabel: string
    dnsNameLabelReusePolicy: string
  osType: string
  volumes: # Array of volumes available to the instances
  - name: string
    azureFile:
      shareName: string
      readOnly: boolean
      storageAccountName: string
      storageAccountKey: string
    emptyDir: {}
    secret: {}
    gitRepo:
      directory: string
      repository: string
      revision: string
  diagnostics:
    logAnalytics:
      workspaceId: string
      workspaceKey: string
      workspaceResourceId: string
      logType: string
      metadata: {}
  subnetIds: # Subnet to deploy the container group into
    - id: string
      name: string
  dnsConfig: # DNS configuration for container group
    nameServers:
    - string
    searchDomains: string
    options: string
  sku: string # SKU for the container group
  encryptionProperties:
    vaultBaseUrl: string
    keyName: string
    keyVersion: string
  initContainers: # Array of init containers in the group
  - name: string
    properties:
      image: string
      command:
      - string
      environmentVariables:
      - name: string
        value: string
        secureValue: string
      volumeMounts:
      - name: string
        mountPath: string
        readOnly: boolean

Valores de propriedade

As tabelas seguintes descrevem os valores que tem de definir no esquema.

Objeto Microsoft.ContainerInstance/containerGroups

Nome Tipo Necessário Valor
name string Yes O nome do grupo de contentores.
apiVersion enumeração Yes 2021-10-01 (mais recente), 2021-09-01, 2021-07-01, 2021-03-01, 2020-11-01, 2019-12-01, 2018-10-01, 2018-09-01, 2018-07-01, 2018-06-01, 2018-04-01
localização cadeia (de carateres) No A localização do recurso.
etiquetas objeto No As etiquetas de recursos.
identidade objeto No A identidade do grupo de contentores, se configurada. - Objeto ContainerGroupIdentity
propriedades objeto Yes Objeto ContainerGroupProperties

Objeto ContainerGroupIdentity

Nome Tipo Necessário Valor
tipo enumeração No O tipo de identidade utilizado para o grupo de contentores. O tipo "SystemAssigned, UserAssigned" inclui uma identidade criada implicitamente e um conjunto de identidades atribuídas pelo utilizador. O tipo "Nenhum" removerá quaisquer identidades do grupo de contentores. - SystemAssigned, UserAssigned, SystemAssigned, UserAssigned, None
userAssignedIdentities objeto No A lista de identidades de utilizador associadas ao grupo de contentores. As referências da chave do dicionário de identidade do utilizador serão IDs de recursos do Azure Resource Manager no formulário: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}".

Objeto ContainerGroupProperties

Nome Tipo Necessário Valor
containers matriz Yes Os contentores no grupo de contentores. - Objeto de contentor
imageRegistryCredentials matriz No As credenciais do registo de imagens a partir das quais o grupo de contentores é criado. - ImageRegistryCredential object (Objeto ImageRegistryCredential)
restartPolicy enumeração No Reinicie a política para todos os contentores no grupo de contentores. - Always Reiniciar sempre – OnFailure Reiniciar após a falha – Never Nunca reiniciar. - Always, OnFailure, Never
endereço ip objeto No O tipo de endereço IP do grupo de contentores. - Objeto IpAddress
osType enumeração Yes O tipo de sistema operativo exigido pelos contentores no grupo de contentores. - Windows ou Linux
volumes matriz No A lista de volumes que podem ser montados por contentores neste grupo de contentores. - Objeto de volume
diagnósticos objeto No As informações de diagnóstico de um grupo de contentores. - Objeto ContainerGroupDiagnostics
subnetIds objeto No As informações da sub-rede de um grupo de contentores. - Objeto ContainerGroupSubnetIds
dnsConfig objeto No As informações de configuração do DNS para um grupo de contentores. - Objeto DnsConfiguration
sku enumeração No O SKU de um grupo de contentores – Standard ou Dedicado
encryptionProperties objeto No As propriedades de encriptação de um grupo de contentores. - Objeto EncryptionProperties
initContainers matriz No Os contentores init para um grupo de contentores. - Objeto InitContainerDefinition

Objeto de contentor

Nome Tipo Necessário Valor
name string Yes O nome fornecido pelo utilizador da instância de contentor.
propriedades objeto Yes As propriedades da instância de contentor. - Objeto ContainerProperties

ImageRegistryCredential object (Objeto ImageRegistryCredential)

Nome Tipo Necessário Valor
servidor string Yes O servidor de registo de imagens do Docker sem um protocolo, como "http" e "https".
nome de utilizador string No O nome de utilizador do registo privado.
palavra-passe cadeia (de carateres) No A palavra-passe do registo privado.
identidade cadeia (de carateres) No O ID de recurso da identidade gerida atribuída pelo utilizador ou pelo sistema utilizado para autenticar.
identityUrl cadeia (de carateres) No O URL de identidade do registo privado.

Objeto IpAddress

Nome Tipo Necessário Valor
ports matriz Yes A lista de portas expostas no grupo de contentores. - Objeto de porta
tipo enumeração Yes Especifica se o IP está exposto à Internet pública ou à VNET privada. - Público ou Privado
ip cadeia (de carateres) No O IP exposto à Internet pública.
dnsNameLabel cadeia (de carateres) No A etiqueta de nome Dns para o IP.

Objeto de volume

Nome Tipo Necessário Valor
name string Yes O nome do volume.
azureFile objeto No O volume ficheiro do Azure. - Objeto AzureFileVolume
emptyDir objeto No O volume de diretório vazio.
segredo objeto No O volume secreto.
gitRepo objeto No O volume de repositório git. - Objeto GitRepoVolume

Objeto ContainerGroupDiagnostics

Nome Tipo Necessário Valor
logAnalytics objeto No Informações de análise de registos do grupo de contentores. - Objeto LogAnalytics

Objeto ContainerGroupSubnetIds

Nome Tipo Necessário Valor
ID string Yes O identificador de uma sub-rede.
name string No O nome da sub-rede.

Objeto DnsConfiguration

Nome Tipo Necessário Valor
nameServers matriz Yes Os servidores DNS para o grupo de contentores. - cadeia
searchDomains cadeia (de carateres) No Os domínios de pesquisa de DNS para pesquisa de nome de anfitrião no grupo de contentores.
opções cadeia (de carateres) No As opções de DNS para o grupo de contentores.

Objeto EncryptionProperties

Nome Tipo Necessário Valor
vaultBaseUrl string Yes O url base do keyvault.
keyName string Yes O nome da chave de encriptação.
keyVersion string Yes A versão da chave de encriptação.

Objeto InitContainerDefinition

Nome Tipo Necessário Valor
name string Yes O nome do contentor init.
propriedades objeto Yes As propriedades do contentor init. - Objeto InitContainerPropertiesDefinition

Objeto ContainerProperties

Nome Tipo Necessário Valor
image string Yes O nome da imagem utilizada para criar a instância de contentor.
command matriz No Os comandos a executar na instância de contentor no formulário exec. - cadeia
ports matriz No As portas expostas na instância de contentor. - Objeto ContainerPort
environmentVariables matriz No As variáveis de ambiente a definir na instância de contentor. - Objeto EnvironmentVariable
resources objeto Yes Os requisitos de recursos da instância de contentor. - Objeto ResourceRequirements
volumeMounts matriz No O volume é montado disponível para a instância de contentor. - Objeto VolumeMount
livenessProbe objeto No A sonda liveness. - Objeto ContainerProbe
readinessProbe objeto No A sonda de preparação. - Objeto ContainerProbe

Objeto de porta

Nome Tipo Necessário Valor
protocolo enumeração No O protocolo associado à porta. - TCP ou UDP
porta número inteiro Yes O número da porta.

Objeto AzureFileVolume

Nome Tipo Necessário Valor
shareName string Yes O nome da partilha de Ficheiros do Azure a montar como um volume.
readOnly boolean No O sinalizador que indica se o Ficheiro do Azure partilhado montado como um volume é só de leitura.
storageAccountName string Yes O nome da conta de armazenamento que contém a partilha de Ficheiros do Azure.
storageAccountKey cadeia (de carateres) No A chave de acesso da conta de armazenamento utilizada para aceder à partilha de Ficheiros do Azure.

Objeto GitRepoVolume

Nome Tipo Necessário Valor
diretório cadeia (de carateres) No Nome do diretório de destino. Não pode conter ou começar com '.'. Se '.' for fornecido, o diretório de volume será o repositório git. Caso contrário, se for especificado, o volume irá conter o repositório git no subdiretório com o nome especificado.
repository string Yes URL do repositório
revision cadeia (de carateres) No Consolide o hash da revisão especificada.

Objeto LogAnalytics

Nome Tipo Necessário Valor
workspaceId string Yes O ID da área de trabalho do Log Analytics
workspaceKey string Yes A chave da área de trabalho para a análise de registos
workspaceResourceId cadeia (de carateres) No O ID do recurso da área de trabalho para a análise de registos
logType enumeração No O tipo de registo a utilizar. - ContainerInsights ou ContainerInstanceLogs
do IdP objeto No Metadados da análise de registos.

Objeto InitContainerPropertiesDefinition

Nome Tipo Necessário Valor
image cadeia (de carateres) No A imagem do contentor init.
command matriz No O comando a executar no contentor init no formulário exec. - cadeia
environmentVariables matriz No As variáveis de ambiente a definir no contentor init. - Objeto EnvironmentVariable
volumeMounts matriz No O volume é montado disponível para o contentor init. - Objeto VolumeMount

Objeto ContainerPort

Nome Tipo Necessário Valor
protocolo enumeração No O protocolo associado à porta. - TCP ou UDP
porta número inteiro Yes O número de porta exposto no grupo de contentores.

Objeto EnvironmentVariable

Nome Tipo Necessário Valor
name string Yes O nome da variável de ambiente.
valor cadeia (de carateres) No O valor da variável de ambiente.
secureValue cadeia (de carateres) No O valor da variável de ambiente seguro.

Objeto ResourceRequirements

Nome Tipo Necessário Valor
pedidos objeto Yes Os pedidos de recursos desta instância de contentor. - Objeto ResourceRequests
limites objeto No Os limites de recursos desta instância de contentor. - Objeto ResourceLimits

Objeto VolumeMount

Nome Tipo Necessário Valor
name string Yes O nome da montagem do volume.
mountPath string Yes O caminho no contentor onde o volume deve ser montado. Não pode conter dois pontos (:).
readOnly boolean No O sinalizador que indica se a montagem do volume é só de leitura.

Objeto ContainerProbe

Nome Tipo Necessário Valor
executivo objeto No O comando de execução para sondar – objeto ContainerExec
httpGet objeto No O objeto Http Get settings to probe - ContainerHttpGet
initialDelaySeconds número inteiro No Os segundos de atraso inicial.
periodSeconds número inteiro No Os segundos do período.
failureThreshold número inteiro No O limiar de falha.
successThreshold número inteiro No O limiar de sucesso.
timeoutSeconds número inteiro No Os segundos de tempo limite.

Objeto ResourceRequests

Nome Tipo Necessário Valor
memoryInGB número Yes O pedido de memória em GB desta instância de contentor.
cpu número Yes O pedido da CPU desta instância de contentor.
gpu objeto No O pedido gpu desta instância de contentor. - Objeto GpuResource

Objeto ResourceLimits

Nome Tipo Necessário Valor
memoryInGB número No O limite de memória em GB desta instância de contentor.
cpu número No O limite de CPU desta instância de contentor.
gpu objeto No O limite de GPU desta instância de contentor. - Objeto GpuResource

Objeto ContainerExec

Nome Tipo Necessário Valor
command matriz No Os comandos a executar no contentor. - cadeia

Objeto ContainerHttpGet

Nome Tipo Necessário Valor
caminho cadeia (de carateres) No O caminho para a pesquisa.
porta número inteiro Yes O número de porta a sondar.
esquema enum No O esquema. - http ou https
httpHeaders objeto No Os cabeçalhos HTTP incluídos na sonda. - Objeto HttpHeaders

Objeto HttpHeaders

Nome Tipo Necessário Valor
name string No Nome do cabeçalho.
valor cadeia (de carateres) No Valor do cabeçalho.

Importante

As SKUs de GPU K80 e P100 serão descontinuadas até 31 de agosto de 2023. Tal deve-se à descontinuação das VMs subjacentes utilizadas: Série NC e Série NCv2 Embora os SKUs V100 estejam disponíveis, é reativado para utilizar Azure Kubernetes Service em vez disso. Os recursos de GPU não são totalmente suportados e não devem ser utilizados para cargas de trabalho de produção. Utilize os seguintes recursos para migrar para o AKS atualmente: Como Migrar para o AKS.

Objeto GpuResource

Nome Tipo Necessário Valor
count número inteiro Yes A contagem do recurso de GPU.
sku enumeração Yes O SKU do recurso de GPU. - V100

Passos seguintes

Veja o tutorial Implementar um grupo de vários contentores com um ficheiro YAML.

Veja exemplos de utilização de um ficheiro YAML para implementar grupos de contentores numa rede virtual ou que montam um volume externo.