Informations de référence YAML : Azure Container Instances

Cet article traite de la syntaxe et des propriétés du fichier YAML pris en charge par Azure Container Instances pour configurer un groupe de conteneurs. Vous pouvez utiliser un fichier YAML pour entrer la configuration du groupe dans la commande az container create dans Azure CLI.

Un fichier YAML est un moyen pratique de configurer un groupe de conteneurs pour des déploiements reproductibles. Plutôt que d’utiliser un modèle Resource Manager ou les kits SDK Azure Container Instances pour créer ou mettre à jour un groupe de conteneurs, il s’agit d’une solution de rechange succincte.

Notes

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

schéma

Le schéma du fichier YAML vous est présenté ci-dessous. Il comporte des commentaires pour mettre en avant les principales propriétés. Pour obtenir une description des propriétés de ce schéma, consultez la section Valeurs de propriétés.

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

Valeurs de propriétés

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

Objet Microsoft.ContainerInstance/containerGroups

Nom Type Obligatoire Valeur
name string Oui Nom du groupe de conteneurs.
apiVersion enum Oui 2021-10-01 (la plus récente), 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 Étiquettes de la ressource.
identité object Non Identité du groupe de conteneurs, si elle est configurée. - Objet ContainerGroupIdentity
properties object Oui Objet ContainerGroupProperties

Objet ContainerGroupIdentity

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

Objet ContainerGroupProperties

Nom Type Obligatoire Valeur
containers tableau Oui Conteneurs présents dans le groupe de conteneurs. - Objet Container
imageRegistryCredentials tableau Non Informations d’identification du registre d’images à partir desquelles le groupe de conteneurs est créé. - Objet ImageRegistryCredential
restartPolicy enum Non Stratégie de redémarrage pour tous les conteneurs présents dans le groupe de conteneurs. - Always Toujours redémarrer – OnFailure Redémarrer en cas d’échec – Never Ne jamais redémarrer. - Always, OnFailure, Never
ipAddress object Non Type d’adresse IP du groupe de conteneurs. - Objet IpAddress
osType enum Oui Type de système d’exploitation exigé par les conteneurs présents dans le groupe de conteneurs. - Windows ou Linux
volumes tableau Non Liste des volumes qui peuvent être montés par les conteneurs présents dans ce groupe de conteneurs. - Objet Volume
diagnostics object Non Informations de diagnostic pour un groupe de conteneurs. - Objet ContainerGroupDiagnostics
subnetIds object Non Informations de sous-réseau pour un groupe de conteneurs. - Objet ContainerGroupSubnetIds
dnsConfig object Non Informations de configuration DNS pour un groupe de conteneurs. - Objet DnsConfiguration
sku enum Non La référence (SKU) pour un groupe de conteneurs : standard ou dédié
encryptionProperties object Non Propriétés de chiffrement pour un groupe de conteneurs. - Objet EncryptionProperties
initContainers tableau Non Conteneurs d'initialisation d'un groupe de conteneurs. - Objet InitContainerDefinition

Objet Container

Nom Type Obligatoire Valeur
name string Oui Nom fourni par l’utilisateur de l’instance de conteneur.
properties object Oui Propriétés de l’instance de conteneur. - Objet ContainerProperties

Objet ImageRegistryCredential

Nom Type Obligatoire Valeur
server string Oui Serveur de registre d’images Docker sans protocole comme « http » ou « https ».
username string Non Nom d’utilisateur du registre privé.
mot de passe string Non Mot de passe du registre privé.
identité string Non ID de ressource de l’utilisateur ou de l’identité managée affectée par le système utilisée pour l’authentification.
identityUrl string Non URL d’identité du registre privé.

Objet IpAddress

Nom Type Obligatoire Valeur
ports tableau Oui Liste des ports exposés dans le groupe de conteneurs. - Objet Port
type enum Oui Indique si l’adresse IP est exposée à l’Internet public ou à un réseau virtuel privé. - Public ou Private
ip string Non Adresse IP exposée à l’Internet public.
dnsNameLabel string Non Étiquette du nom DNS de l’adresse IP.

Objet Volume

Nom Type Obligatoire Valeur
name string Oui Nom du volume.
azureFile object Non Volume de fichier Azure. - Objet AzureFileVolume
emptyDir object Non Volume de répertoire vide.
secret object Non Volume de secret.
gitRepo object Non Volume de dépôt git. - Objet GitRepoVolume

Objet ContainerGroupDiagnostics

Nom Type Obligatoire Valeur
logAnalytics object Non Informations analytiques des journaux du groupe de conteneurs. - Objet logAnalytics

Objet ContainerGroupSubnetIds

Nom Type Obligatoire Valeur
id string Oui Identificateur d’un sous-réseau.
name string Non Nom du sous-réseau.

Objet DnsConfiguration

Nom Type Obligatoire Valeur
nameServers tableau Oui Serveurs DNS du groupe de conteneurs. - string
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 du groupe de conteneurs.

Objet EncryptionProperties

Nom Type Obligatoire Valeur
vaultBaseUrl string Oui URL de base du coffre de clés.
keyName string Oui Nom de la clé de chiffrement.
keyVersion string Oui Version de la clé de chiffrement.

Objet InitContainerDefinition

Nom Type Obligatoire Valeur
name string Oui Nom du conteneur d'initialisation.
properties object Oui Propriétés du conteneur init. - Objet InitContainerPropertiesDefinition

Objet ContainerProperties

Nom Type Obligatoire Valeur
image string Oui Nom de l’image utilisée pour créer l’instance de conteneur.
command tableau Non Commandes à exécuter dans l’instance de conteneur dans l’exec form. - string
ports tableau Non Port exposé dans l’instance de conteneur. - Objet ContainerPort
environmentVariables tableau Non Variable d’environnement à définir dans l’instance de conteneur. - Objet EnvironmentVariable
les ressources object Oui Besoins en ressources de l’instance de conteneur. - Objet ResourceRequirements
volumeMounts tableau Non Montages de volume accessibles à l’instance de conteneur. - Objet VolumeMount
livenessProbe object Non Probe liveness. - Objet ContainerProbe
readinessProbe object Non Probe readiness. - Objet ContainerProbe

Objet Port

Nom Type Obligatoire Valeur
protocol enum Non Protocole associé au port. - TCP ou UDP
port entier Oui Numéro de port.

Objet AzureFileVolume

Nom Type Obligatoire Valeur
shareName string Oui Nom du partage de fichiers Azure à monter en tant que volume.
readOnly boolean Non Indicateur précisant si le partage de fichiers Azure monté en tant que volume est en lecture seule.
storageAccountName string Oui Nom du compte de stockage qui contient le partage de fichiers Azure.
storageAccountKey string Non Clé d’accès du compte de stockage utilisée pour accéder au partage de fichiers Azure.

Objet GitRepoVolume

Nom Type Obligatoire Valeur
directory string Non Nom du répertoire cible. Ne doit pas contenir ou commencer par « .. ». Si « . » est spécifié, le répertoire du volume est le dépôt git. Sinon, s’il est spécifié, le volume contient le dépôt git dans le sous-répertoire avec le nom donné.
repository string Oui URL du dépôt
revision string Non Hachage de validation pour la révision spécifiée.

Objet LogAnalytics

Nom Type Obligatoire Valeur
workspaceId string Oui ID d’espace de travail pour l’analytique des journaux
workspaceKey string Oui Clé d’espace de travail pour l’analytique des journaux.
workspaceResourceId string Non ID de ressource d’espace de travail pour l’analytique des journaux.
logType enum Non Type de journal à utiliser. - ContainerInsights ou ContainerInstanceLogs
metadata object Non Métadonnées pour l’analytique des journaux.

Objet InitContainerPropertiesDefinition

Nom Type Obligatoire Valeur
image string Non Image du conteneur d'initialisation.
command tableau Non Commande à exécuter dans le conteneur d'initialisation dans le formulaire exec. - string
environmentVariables tableau Non Variables d'environnement à définir dans le conteneur d'initialisation. - Objet EnvironmentVariable
volumeMounts tableau Non Montages de volumes disponibles pour le conteneur d'initialisation. - Objet VolumeMount

Objet ContainerPort

Nom Type Obligatoire Valeur
protocol enum Non Protocole associé au port. - TCP ou UDP
port entier Oui Numéro de port exposé dans le groupe de conteneurs.

Objet EnvironmentVariable

Nom Type Obligatoire Valeur
name string Oui Nom de la variable d’environnement.
value string Non Valeur de la variable d’environnement.
secureValue string Non Valeur de la variable d’environnement sécurisée.

Objet ResourceRequirements

Nom Type Obligatoire Valeur
requêtes object Oui Demandes en ressources de cette instance de conteneur. - Objet ResourceRequests
limites object Non Limites en ressources de cette instance de conteneur. - Objet ResourceLimits

Objet VolumeMount

Nom Type Obligatoire Valeur
name string Oui Nom du montage de volume.
mountPath string Oui Chemin de l’emplacement dans le conteneur où le volume doit être monté. Ne doit pas contenir de signe deux-points (:).
readOnly boolean Non Indicateur précisant si le montage du volume est en lecture seule.

Objet ContainerProbe

Nom Type Obligatoire Valeur
exec object Non Commande d’exécution à sonder – Objet ContainerExec
httpGet object Non Paramètres Http Get à sonder – Objet ContainerHttpGet
initialDelaySeconds entier Non Retard initial en secondes.
periodSeconds entier Non Période en secondes.
failureThreshold entier Non Seuil de défaillance.
successThreshold entier Non Seuil de réussite.
timeoutSeconds entier Non Délai d’attente en secondes.

Objet ResourceRequests

Nom Type Obligatoire Valeur
memoryInGB nombre Oui Demande de mémoire en Go de cette instance de conteneur.
cpu nombre Oui Demande de processeur de cette instance de conteneur.
gpu object Non Demande GPU de cette instance de conteneur. - Objet GpuResource

Objet ResourceLimits

Nom Type Obligatoire Valeur
memoryInGB nombre Non Limite de mémoire en Go de cette instance de conteneur.
cpu nombre Non Limite processeur de cette instance de conteneur.
gpu object Non Limite GPU de cette instance de conteneur. - Objet GpuResource

Objet ContainerExec

Nom Type Obligatoire Valeur
command tableau Non Commandes à exécuter dans le conteneur. - string

Objet ContainerHttpGet

Nom Type Obligatoire Valeur
path string Non Chemin de la sonde.
port entier Oui Numéro de port vers la sonde.
scheme enum Non Schéma. - http ou https
httpHeaders object Non En-têtes HTTP inclus dans la sonde. - Objet HttpHeaders

Objet HttpHeaders

Nom Type Obligatoire Valeur
name string Non Nom de l'en-tête.
value string Non Valeur de l'en-tête.

Important

Les références SKU K80 et P100 du GPU seront retirées du marché d'ici 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 recommandé d’utiliser plutôt Azure Kubernetes Service. Les ressources du GPU ne sont pas entièrement prises en charge et ne doivent pas servir pour les charges de travail de production. Utilisez les ressources suivantes pour effectuer une migration vers AKS aujourd’hui : Guide pratique pour migrer vers AKS.

Objet GpuResource

Nom Type Obligatoire Valeur
count entier Oui Nombre de la ressource GPU.
sku enum Oui Référence SKU de la ressource GPU. – V100

Étapes suivantes

Consultez le tutoriel Déployer un groupe multiconteneur à 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 pour monter un volume externe.