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. Use um ficheiro YAML para introduzir a configuração de grupo no comando create do contentor az na CLI do Azure.

Um ficheiro YAML é uma forma conveniente de configurar um grupo de contentores para implementações reproduzíveis. É uma alternativa concisa a usar um template do Resource Manager ou os SDKs do Azure Container Instances para criar ou atualizar um grupo de contentores.

Note

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

Esquema

Segue-se o esquema do ficheiro YAML, incluindo comentários para destacar propriedades chave. Para uma descrição das propriedades neste esquema, consulte a secção Valores de Propriedades .

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
    autoGeneratedDomainNameLabelScope: 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 precisa de definir no esquema.

Microsoft. Objeto ContainerInstance/containerGroups

Nome Tipo Obrigatório Value
Nome cadeia (de caracteres) Yes O nome do grupo de contêineres.
apiVersion enumeração Yes 2021-10-01 (mais tarde), 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 caracteres) No A localização do recurso.
tags objecto No As tags de recurso.
identidade objecto No A identidade do grupo de contêineres, se configurado. - Objeto ContainerGroupIdentity
propriedades objecto Yes Objeto ContainerGroupProperties

Objeto ContainerGroupIdentity

Nome Tipo Obrigatório Value
tipo enumeração No O tipo de identidade usado para o grupo de contêineres. O tipo 'SystemAssigned, UserAssigned' inclui uma identidade criada implicitamente e um conjunto de identidades atribuídas pelo usuário. O tipo 'Nenhum' remove quaisquer identidades do grupo de contentores. - SystemAssigned, UserAssigned, SystemAssigned, UserAssigned, Nenhum
userAssignedIdentities objecto No A lista de identidades de usuário associadas ao grupo de contêineres. As referências-chave do dicionário de identidade de utilizador são IDs de recursos do Azure Resource Manager na forma: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft. ManagedIdentity/userAssignedIdentities/{identityName}'.

Objeto ContainerGroupProperties

Nome Tipo Obrigatório Value
contentores matriz Yes Os contêineres dentro do grupo de contêineres. - Objeto contentor
imageRegistryCredentials matriz No As credenciais do registro de imagem a partir das quais o grupo de contêineres é criado. - ImageRegistryObjeto Credential
política de reinício enumeração No Política de reinicialização para todos os contêineres dentro do grupo de contêineres. - Always Reiniciar sempre - OnFailure Reiniciar em caso de falha - Never Nunca reiniciar. - Sempre, OnFailure, Nunca
Endereço IP objecto No O tipo de endereço IP do grupo de contêineres. - Objeto IpAddress
osType enumeração Yes O tipo de sistema operacional exigido pelos contêineres no grupo de contêineres. - Windows ou Linux
volumes matriz No A lista de volumes que os contentores deste grupo de contentores podem montar. - Objeto de volume
diagnostics objecto No As informações de diagnóstico para um grupo de contêineres. - Objeto ContainerGroupDiagnostics
subnetIds objecto No A informação da sub-rede para um grupo de contentores. - Objeto ContainerGroupSubnetIds
dnsConfig objecto No As informações de configuração de DNS para um grupo de contêineres. - Objeto DnsConfiguration
sku enumeração No A SKU para um grupo de contentores - Padrão ou Dedicado
encryptionPropriedades objecto No As propriedades de criptografia para um grupo de contêineres. - Objeto EncryptionProperties
initContainers matriz No Os contêineres init para um grupo de contêineres. - Objeto InitContainerDefinition

Objeto de contêiner

Nome Tipo Obrigatório Value
Nome cadeia (de caracteres) Yes O nome fornecido pelo usuário da instância do contêiner.
propriedades objecto Yes As propriedades da instância do contêiner. - Objeto ContainerProperties

ImageRegistryObjeto Credential

Nome Tipo Obrigatório Value
servidor cadeia (de caracteres) Yes O servidor de registro de imagem do Docker sem um protocolo como "http" e "https".
nome de utilizador cadeia (de caracteres) No O nome de usuário para o registro privado.
palavra-passe cadeia (de caracteres) No A senha para o registro privado.
identidade cadeia (de caracteres) No O ID de recurso da identidade gerida atribuída pelo utilizador usada para autenticar. A identidade gerida atribuída pelo sistema não é suportada para pulls de imagens ACR.
identityUrl cadeia (de caracteres) No A URL de identidade para o registro privado.

Objeto IpAddress

Nome Tipo Obrigatório Value
ports matriz Yes A lista de portas expostas no grupo de contêineres. - Objeto da porta
tipo enumeração Yes Especifica se o IP está exposto à internet pública ou à rede virtual privada. - Público ou Privado
IP cadeia (de caracteres) No O IP exposto à internet pública.
dnsNameLabel cadeia (de caracteres) No O rótulo de nome Dns para o IP.

Objeto de volume

Nome Tipo Obrigatório Value
Nome cadeia (de caracteres) Yes O nome do volume.
azureFile objecto No O volume do Arquivo do Azure. - Objeto AzureFileVolume
diretório vazio objecto No O volume do diretório vazio.
segredo objecto No O volume secreto.
gitRepo objecto No O volume git repo. - Objeto GitRepoVolume

Objeto ContainerGroupDiagnostics

Nome Tipo Obrigatório Value
logAnalytics objecto No Informações de análise de log de grupo de contêineres. - Objeto LogAnalytics

Objeto ContainerGroupSubnetIds

Nome Tipo Obrigatório Value
id cadeia (de caracteres) Yes O identificador de uma sub-rede.
Nome cadeia (de caracteres) No O nome da sub-rede.

Objeto DnsConfiguration

Nome Tipo Obrigatório Value
nomeServidores matriz Yes Os servidores DNS para o grupo de contêineres. - corda
pesquisaDomínios cadeia (de caracteres) No Os domínios de pesquisa DNS para pesquisa de nome de host no grupo de contêineres.
options cadeia (de caracteres) No As opções de DNS para o grupo de contêineres.

Objeto EncryptionProperties

Nome Tipo Obrigatório Value
vaultBaseUrl cadeia (de caracteres) Yes A url base do keyvault.
nomeDaChave cadeia (de caracteres) Yes O nome da chave de criptografia.
keyVersion [en] cadeia (de caracteres) Yes A versão da chave de encriptação.

Objeto InitContainerDefinition

Nome Tipo Obrigatório Value
Nome cadeia (de caracteres) Yes O nome do contêiner init.
propriedades objecto Yes As propriedades do contêiner init. - Objeto InitContainerPropertiesDefinition

Objeto ContainerProperties

Nome Tipo Obrigatório Value
imagem cadeia (de caracteres) Yes O nome da imagem usada para criar a instância do contêiner.
command matriz No Os comandos a serem executados dentro da instância do contêiner no formato exec. - corda
ports matriz No As portas expostas na instância do contêiner. - Objeto ContainerPort
environmentVariables matriz No As variáveis de ambiente a serem definidas na instância do contêiner. - Objeto EnvironmentVariable
resources objecto Yes Os requisitos de recursos da instância do contêiner. - Objeto ResourceRequirements
volumeMontagens matriz No O volume é montado disponível para a instância do contêiner. - Objeto VolumeMount
livenessSonda objecto No A sonda de vivacidade. - Objeto ContainerProbe
prontidãoSonda objecto No A sonda de prontidão. - Objeto ContainerProbe

Objeto da porta

Nome Tipo Obrigatório Value
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 Obrigatório Value
shareName cadeia (de caracteres) Yes O nome do compartilhamento de arquivos do Azure a ser montado como um volume.
somente leitura boolean No O sinalizador que indica se o Arquivo do Azure compartilhado montado como um volume é somente leitura.
storageAccountName cadeia (de caracteres) Yes O nome da conta de armazenamento que contém o compartilhamento de arquivos do Azure.
storageAccountKey cadeia (de caracteres) No A chave de acesso da conta de armazenamento usada para acessar o compartilhamento de arquivos do Azure.

Objeto GitRepoVolume

Nome Tipo Obrigatório Value
directório cadeia (de caracteres) No Nome do diretório de destino. Não deve conter nem começar por «..». Se for fornecido '.', o diretório de volumes é o repositório git. Caso contrário, se especificado, o volume contém o repositório git no subdiretório com o nome próprio.
repositório cadeia (de caracteres) Yes URL do repositório
revisão cadeia (de caracteres) No Confirme hash para a revisão especificada.

Objeto LogAnalytics

Nome Tipo Obrigatório Value
workspaceId cadeia (de caracteres) Yes O ID do espaço de trabalho para análise de registos
chave do espaço de trabalho cadeia (de caracteres) Yes A chave do espaço de trabalho para análise de log
ID do Recurso do Espaço de Trabalho cadeia (de caracteres) No O ID do recurso do espaço de trabalho para análise de registos
logType enumeração No O tipo de log a ser usado. - ContainerInsights ou ContainerInstanceLogs
metadados objecto No Metadados para análise de logs.

Objeto InitContainerPropertiesDefinition

Nome Tipo Obrigatório Value
imagem cadeia (de caracteres) No A imagem do contêiner init.
command matriz No O comando a ser executado dentro do contêiner init no formato exec. - corda
environmentVariables matriz No As variáveis de ambiente a serem definidas no contêiner init. - Objeto EnvironmentVariable
volumeMontagens matriz No Os montagens de volume disponíveis para o recipiente de inicialização. - Objeto VolumeMount

Objeto ContainerPort

Nome Tipo Obrigatório Value
protocolo enumeração No O protocolo associado à porta. - TCP ou UDP
porta número inteiro Yes O número da porta exposto dentro do grupo de contêineres.

Objeto EnvironmentVariable

Nome Tipo Obrigatório Value
Nome cadeia (de caracteres) Yes O nome da variável de ambiente.
valor cadeia (de caracteres) No O valor da variável de ambiente.
secureValue cadeia (de caracteres) No O valor da variável de ambiente seguro.

Objeto ResourceRequirements

Nome Tipo Obrigatório Value
requests objecto Yes As solicitações de recursos dessa instância de contêiner. - Objeto ResourceRequests
limites objecto No Os limites de recursos dessa instância de contêiner. - Objeto ResourceLimits

Objeto VolumeMount

Nome Tipo Obrigatório Value
Nome cadeia (de caracteres) Yes O nome da montagem do volume.
mountPath [en] cadeia (de caracteres) Yes O caminho dentro do contêiner onde o volume deve ser montado. Não deve conter dois pontos (:).
somente leitura boolean No O sinalizador que indica se a montagem do volume é somente leitura.

Objeto ContainerProbe

Nome Tipo Obrigatório Value
exec objecto No O comando de execução para sondar - objeto ContainerExec
httpObter objecto No As definições Http Get para sondar - objeto 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 Obrigatório Value
memoryInGB number Yes A solicitação de memória em GB desta instância de contêiner.
cpu number Yes A solicitação de CPU desta instância de contêiner.
gpu objecto No A solicitação de GPU desta instância de contêiner. - Objeto GpuResource

Objeto ResourceLimits

Nome Tipo Obrigatório Value
memoryInGB number No O limite de memória em GB desta instância de contêiner.
cpu number No O limite de CPU desta instância de contêiner.
gpu objecto No O limite da GPU desta instância de contêiner. - Objeto GpuResource

Objeto ContainerExec

Nome Tipo Obrigatório Value
command matriz No Os comandos a serem executados dentro do contêiner. - corda

Objeto ContainerHttpGet

Nome Tipo Obrigatório Value
caminho cadeia (de caracteres) No O caminho para a sonda.
porta número inteiro Yes O número da porta a ser investigada.
scheme enumeração No O esquema. - http ou https
Cabeçalhos HTTP objecto No Os cabeçalhos HTTP incluídos na sonda. - Objeto HttpHeaders

Objeto HttpHeaders

Nome Tipo Obrigatório Value
Nome cadeia (de caracteres) No Nome do cabeçalho.
valor cadeia (de caracteres) No Valor do cabeçalho.

Importante

As SKUs de GPU K80 e P100 vão retirar-se até 31 de agosto de 2023. Isto deve-se à aposentação das VMs subjacentes utilizadas: Série NC e Série NCv2. Embora os SKUs V100 estejam disponíveis, é melhor usar o Azure Kubernetes Service em vez disso. Os recursos da GPU não são totalmente suportados e não devem ser usados para cargas de trabalho de produção. Use os seguintes recursos para migrar para o AKS hoje: Como migrar para o AKS.

Objeto GpuResource

Nome Tipo Obrigatório Value
count número inteiro Yes A contagem do recurso GPU.
sku enumeração Yes A SKU do recurso GPU. - V100

Passos seguintes

Veja o tutorial: Implementar um grupo multi-contentor usando 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.