Référence YAML : Azure Container Instances

Cet article décrit la syntaxe et les propriétés du fichier YAML pris en charge par Azure Container Instances pour configurer un groupe de conteneurs. Utilisez un fichier YAML pour entrer la configuration du groupe dans la commande az container create dans le Azure CLI.

Un fichier YAML est un moyen pratique de configurer un groupe de conteneurs pour les déploiements reproductibles. Il s'agit d'une alternative concise à l'utilisation d'un modèle Resource Manager ou des sdk Azure Container Instances pour créer ou mettre à jour un groupe de conteneurs.

Note

Cette référence s’applique aux fichiers YAML pour Azure Container Instances version de 2021-10-01l’API REST.

Schema

Le schéma du fichier YAML suit, y compris les commentaires pour mettre en surbrillance les propriétés clés. Pour obtenir une description des propriétés de ce schéma, consultez la section Valeurs de propriété.

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

Valeurs de propriété

Les tableaux suivants décrivent les valeurs que vous devez définir dans le schéma.

Microsoft. Objet ContainerInstance/containerGroups

Nom Catégorie Obligatoire Valeur
nom string Yes Nom du groupe de conteneurs.
apiVersion enum Yes 2021-10-01 (dernière version), 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
location string Non Emplacement de la ressource.
tags object Non Balises de ressource.
identity object Non Identité du groupe de conteneurs, si elle est configurée. - ContainerGroupIdentity (objet)
properties object Yes ContainerGroupProperties (objet)

ContainerGroupIdentity (objet)

Nom Catégorie Obligatoire Valeur
type enum Non Type d’identité utilisé pour le groupe de conteneurs. Le type « SystemAssigned, UserAssigned » inclut à la fois une identité créée implicitement et un ensemble d’identités affectées par l’utilisateur. Le type « None » supprime toutes les identités du groupe de conteneurs. - SystemAssigned, UserAssigned, SystemAssigned, UserAssigned, None
userAssignedIdentities object Non Liste des identités utilisateur associées au groupe de conteneurs. Les références de clé de dictionnaire d'identité utilisateur sont Azure Resource Manager ID de ressource sous la forme : « /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft. ManagedIdentity/userAssignedIdentities/{identityName}'.

ContainerGroupProperties (objet)

Nom Catégorie Obligatoire Valeur
Conteneurs tableau Yes Conteneurs au sein du groupe de conteneurs. - Conteneur (objet)
imageRegistryCredentials tableau Non Informations d’identification du Registre d’images à partir desquelles le groupe de conteneurs est créé. - Objet ImageRegistryCredential
restartPolicy enum Non Redémarrez la stratégie pour tous les conteneurs au sein du groupe de conteneurs. - Always Toujours redémarrer - OnFailure Redémarrer en cas d’échec - Never Ne redémarrez jamais. - Always, OnFailure, Never
ipAddress object Non Type d’adresse IP du groupe de conteneurs. - Objet IpAddress
osType enum Yes Type de système d’exploitation requis par les conteneurs dans le groupe de conteneurs. - Windows ou Linux
volumes tableau Non La liste des volumes que les conteneurs de ce groupe de conteneurs peuvent monter. - Objet Volume
diagnostics object Non Informations de diagnostic pour un groupe de conteneurs. - ContainerGroupDiagnostics (objet)
subnetIds object Non Informations de sous-réseau pour un groupe de conteneurs. - ContainerGroupSubnetIds (objet)
dnsConfig object Non Informations de configuration DNS pour un groupe de conteneurs. - Objet DnsConfiguration
sku enum Non Référence SKU pour un groupe de conteneurs - Standard ou Dédié
cryptagePropriétés object Non Propriétés de chiffrement d’un groupe de conteneurs. - Objet EncryptionProperties
initContainers tableau Non Conteneurs init pour un groupe de conteneurs. - Objet InitContainerDefinition

Container, objet

Nom Catégorie Obligatoire Valeur
nom string Yes Nom fourni par l’utilisateur de l’instance de conteneur.
properties object Yes Propriétés de l’instance de conteneur. - ContainerProperties (objet)

Objet ImageRegistryCredential

Nom Catégorie Obligatoire Valeur
server string Yes Le serveur de Registre d’images Docker sans protocole tel que « http » et « https ».
username string Non Nom d’utilisateur du registre privé.
password string Non Mot de passe du registre privé.
identity string Non ID de ressource de l’identité managée affectée par l’utilisateur utilisée pour s’authentifier. L’identité managée affectée par le système n’est pas prise en charge pour les extractions d’images ACR.
identityUrl string Non URL d’identité du registre privé.

Objet IpAddress

Nom Catégorie Obligatoire Valeur
ports tableau Yes Liste des ports exposés sur le groupe de conteneurs. - Objet Port
type enum Yes Spécifie si l’adresse IP est exposée à l’Internet public ou au réseau virtuel privé. - Public ou privé
Ip string Non Adresse IP exposée à l’Internet public.
dnsNameLabel string Non Étiquette de nom DNS pour l’adresse IP.

Objet Volume

Nom Catégorie Obligatoire Valeur
nom string Yes Nom du volume.
azureFile object Non Volume De fichiers Azure. - Objet AzureFileVolume
emptyDir object Non Volume de répertoire vide.
secret object Non Volume de secrets.
gitRepo object Non Volume du dépôt Git. - Objet GitRepoVolume

ContainerGroupDiagnostics (objet)

Nom Catégorie Obligatoire Valeur
logAnalytics object Non Informations log Analytics du groupe de conteneurs. - Objet LogAnalytics

ContainerGroupSubnetIds (objet)

Nom Catégorie Obligatoire Valeur
id string Yes Identificateur d’un sous-réseau.
nom string Non Nom du sous-réseau.

Objet DnsConfiguration

Nom Catégorie Obligatoire Valeur
nameServers tableau Yes Serveurs DNS pour le groupe de conteneurs. - chaîne
searchDomains string Non Domaines de recherche DNS pour la recherche de nom d’hôte dans le groupe de conteneurs.
options string Non Options DNS pour le groupe de conteneurs.

Objet EncryptionProperties

Nom Catégorie Obligatoire Valeur
vaultBaseUrl string Yes URL de base du coffre de clés.
keyName string Yes Nom de la clé de chiffrement.
keyVersion string Yes Version de la clé de chiffrement.

Objet InitContainerDefinition

Nom Catégorie Obligatoire Valeur
nom string Yes Nom du conteneur init.
properties object Yes Propriétés du conteneur init. - Objet InitContainerPropertiesDefinition

Objet ContainerProperties

Nom Catégorie Obligatoire Valeur
image string Yes Nom de l’image utilisée pour créer l’instance de conteneur.
command tableau Non Commandes à exécuter dans l’instance de conteneur sous forme exec. -String
ports tableau Non Ports exposés sur l’instance de conteneur. - ContainerPort (objet)
environmentVariables tableau Non Variables d’environnement à définir dans l’instance de conteneur. - Objet EnvironmentVariable
resources object Yes Configuration requise pour les ressources de l’instance de conteneur. - ResourceRequirements (objet)
volumeMontures tableau Non Montages de volume disponibles pour l’instance de conteneur. - Objet VolumeMount
vivacitéSonde object Non La sonde liveness. - ContainerProbe (objet)
état de préparationSonde object Non Sonde de préparation. - ContainerProbe (objet)

Objet Port

Nom Catégorie Obligatoire Valeur
protocol enum Non Protocole associé au port. - TCP ou UDP
port integer Yes Numéro de port.

Objet AzureFileVolume

Nom Catégorie Obligatoire Valeur
shareName string Yes Nom du partage de fichiers Azure à monter en tant que volume.
lecture seule booléen Non Indicateur indiquant si le fichier Azure partagé est monté en tant que volume en lecture seule.
storageAccountName string Yes Nom du compte de stockage qui contient le partage de fichiers Azure.
storageAccountKey string Non Clé d’accès au compte de stockage utilisée pour accéder au partage de fichiers Azure.

Objet GitRepoVolume

Nom Catégorie Obligatoire Valeur
directory string Non Nom du répertoire cible. Ne doit pas contenir ou commencer par '..'. Si « . » est fourni, le répertoire de volume est le dépôt git. Sinon, s’il est spécifié, le volume contient le référentiel git dans le sous-répertoire avec le nom donné.
répertoire string Yes URL du dépôt
révision string Non Valider le hachage pour la révision spécifiée.

Objet LogAnalytics

Nom Catégorie Obligatoire Valeur
workspaceId string Yes ID d’espace de travail pour Log Analytics
workspaceKey string Yes Clé d’espace de travail pour Log Analytics
workspaceResourceId string Non ID de ressource de l’espace de travail pour Log Analytics
logType de journal enum Non Type de journal à utiliser. - ContainerInsights ou ContainerInstanceLogs
metadata object Non Métadonnées pour Log Analytics.

Objet InitContainerPropertiesDefinition

Nom Catégorie Obligatoire Valeur
image string Non Image du conteneur init.
command tableau Non Commande à exécuter dans le conteneur init sous forme exec. - chaîne
environmentVariables tableau Non Variables d’environnement à définir dans le conteneur init. - Objet EnvironmentVariable
volumeMontures tableau Non Montages de volume disponibles pour le conteneur init. - Objet VolumeMount

ContainerPort (objet)

Nom Catégorie Obligatoire Valeur
protocol enum Non Protocole associé au port. - TCP ou UDP
port integer Yes Numéro de port exposé dans le groupe de conteneurs.

Objet EnvironmentVariable

Nom Catégorie Obligatoire Valeur
nom string Yes Nom de la variable d’environnement.
Valeur string Non Valeur de la variable d’environnement.
secureValue string Non Valeur de la variable d’environnement sécurisée.

ResourceRequirements (objet)

Nom Catégorie Obligatoire Valeur
requests object Yes Demandes de ressources de cette instance de conteneur. - Objet ResourceRequests
limites object Non Limites de ressources de cette instance de conteneur. - Objet ResourceLimits

Objet VolumeMount

Nom Catégorie Obligatoire Valeur
nom string Yes Nom du montage du volume.
mountPath string Yes Chemin d’accès au sein du conteneur où le volume doit être monté. Ne doit pas contenir de deux-points (:).
lecture seule booléen Non Indicateur indiquant si le montage de volume est en lecture seule.

ContainerProbe (objet)

Nom Catégorie Obligatoire Valeur
exec object Non Commande d’exécution à sonder - Objet ContainerExec
httpGet object Non Paramètres Http Get à sonder - Objet ContainerHttpGet
initialDelaySeconds integer Non Délai initial secondes.
periodSecondes integer Non Secondes de période.
failureThreshold integer Non Seuil d’échec.
successThreshold integer Non Seuil de réussite.
timeoutSeconds integer Non Délai d’expiration des secondes.

Objet ResourceRequests

Nom Catégorie Obligatoire Valeur
memoryInGB number Yes Demande de mémoire en Go de cette instance de conteneur.
CPU number Yes Demande d’UC de cette instance de conteneur.
gpu object Non Requête GPU de cette instance de conteneur. - Objet GpuResource

Objet ResourceLimits

Nom Catégorie Obligatoire Valeur
memoryInGB number Non Limite de mémoire en Go de cette instance de conteneur.
CPU number Non Limite du processeur de cette instance de conteneur.
gpu object Non Limite GPU de cette instance de conteneur. - Objet GpuResource

ContainerExec (objet)

Nom Catégorie Obligatoire Valeur
command tableau Non Commandes à exécuter dans le conteneur. -String

ContainerHttpGet (objet)

Nom Catégorie Obligatoire Valeur
path string Non Chemin d’accès à la sonde.
port integer Yes Numéro de port à sonder.
scheme enum Non Le schéma. - http ou https
httpHeaders (en-tête http) object Non En-têtes HTTP inclus dans la sonde. - Objet HttpHeaders

Objet HttpHeaders

Nom Catégorie Obligatoire Valeur
nom string Non Nom de l’en-tête.
Valeur string Non Valeur de l’en-tête.

Important

Les références SKU GPU K80 et P100 sont mises hors service le 31 août 2023. Cela est dû à la mise hors service des machines virtuelles sous-jacentes utilisées : série NC et série NCv2 Bien que les références SKU V100 soient disponibles, il est réapparaît à utiliser Azure Kubernetes Service à la place. Les ressources GPU ne sont pas entièrement prises en charge et ne doivent pas être utilisées pour les charges de travail de production. Utilisez les ressources suivantes pour migrer vers AKS aujourd’hui : Comment migrer vers AKS.

Objet GpuResource

Nom Catégorie Obligatoire Valeur
count integer Yes Nombre de ressources GPU.
sku enum Yes Référence SKU de la ressource GPU. - V100

Étapes suivantes

Consultez le tutoriel Déployer un groupe à plusieurs conteneurs à l’aide d’un fichier YAML.

Consultez des exemples d’utilisation d’un fichier YAML pour déployer des groupes de conteneurs dans un réseau virtuel ou qui montent un volume externe.