Informazioni di riferimento su YAML: Azure Container Instances

Questo articolo illustra la sintassi e le proprietà per il file YAML supportato da Azure Container Instances per configurare un gruppo di contenitori. Usare un file YAML per immettere la configurazione del gruppo nel comando az container create nell'interfaccia della riga di comando di Azure.

Un file YAML è un modo pratico per configurare un gruppo di contenitori per le distribuzioni riproducibili. Si tratta di un'alternativa concisa all'uso di un modello di Resource Manager o agli SDK Azure Container Instances per creare o aggiornare un gruppo di contenitori.

Nota

Questo riferimento si applica ai file YAML per Azure Container Instances versione 2021-10-01dell'API REST .

SCHEMA

Di seguito è riportato lo schema per il file YAML, inclusi i commenti per evidenziare le proprietà chiave. Per una descrizione delle proprietà in questo schema, vedere la sezione Valori delle proprietà.

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

Valori delle proprietà

Nelle tabelle seguenti vengono descritti i valori che è necessario impostare nello schema.

Oggetto Microsoft.ContainerInstance/containerGroups

Nome Tipo Obbligatoria valore
name string Nome del gruppo di contenitori.
apiVersion enum 2021-10-01 (ultima), 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
posizione string No Percorso della risorsa.
tags object No Tag di risorsa.
identity object No Identità del gruppo di contenitori, se configurata. - Oggetto ContainerGroupIdentity
properties object Oggetto ContainerGroupProperties

Oggetto ContainerGroupIdentity

Nome Tipo Obbligatoria valore
tipo enum No Tipo di identità usato per il gruppo di contenitori. Il tipo "SystemAssigned, UserAssigned" include sia un'identità creata in modo implicito che un set di identità assegnate dall'utente. Il tipo "Nessuno" rimuoverà le identità dal gruppo di contenitori. - SystemAssigned, UserAssigned, SystemAssigned, UserAssigned, None
userAssignedIdentities object No Elenco di identità utente associate al gruppo di contenitori. I riferimenti alla chiave del dizionario identità utente saranno ID risorsa di Azure Resource Manager nel formato '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'.

Oggetto ContainerGroupProperties

Nome Tipo Obbligatoria valore
containers array Contenitori all'interno del gruppo di contenitori. - Oggetto Contenitore
imageRegistryCredentials array No Credenziali del registro immagini da cui viene creato il gruppo di contenitori. - Oggetto ImageRegistryCredential
restartPolicy enum No Riavviare i criteri per tutti i contenitori all'interno del gruppo di contenitori. - Always Riavvia sempre- OnFailure Riavvia in caso di errore- Never Non riavviare mai. - Sempre, OnFailure, Mai
IpAddress object No Tipo di indirizzo IP del gruppo di contenitori. - Oggetto IpAddress
osType enum Tipo di sistema operativo richiesto dai contenitori nel gruppo di contenitori. - Windows o Linux
volumes array No Elenco di volumi che possono essere montati da contenitori in questo gruppo di contenitori. - Oggetto Volume
diagnostica object No Informazioni di diagnostica per un gruppo di contenitori. - Oggetto ContainerGroupDiagnostics
subnetId object No Informazioni sulla subnet per un gruppo di contenitori. - Oggetto ContainerGroupSubnetIds
dnsConfig object No Informazioni di configurazione DNS per un gruppo di contenitori. - Oggetto DnsConfiguration
sku enum No SKU per un gruppo di contenitori - Standard o Dedicato
EncryptionProperties object No Proprietà di crittografia per un gruppo di contenitori. - Oggetto EncryptionProperties
initContainers array No Contenitori init per un gruppo di contenitori. - Oggetto InitContainerDefinition

Oggetto Container

Nome Tipo Obbligatoria valore
name string Nome specificato dall'utente dell'istanza del contenitore.
properties object Proprietà dell'istanza del contenitore. - Oggetto ContainerProperties

Oggetto ImageRegistryCredential

Nome Tipo Obbligatoria valore
server string Il server del Registro di sistema immagini Docker senza protocollo, ad esempio "http" e "https".
username string No Nome utente per il Registro di sistema privato.
password string No Password per il Registro di sistema privato.
identity string No ID risorsa dell'identità gestita assegnata dall'utente o dal sistema usata per l'autenticazione.
identityUrl string No URL di identità per il Registro di sistema privato.

Oggetto IpAddress

Nome Tipo Obbligatoria valore
ports array Elenco delle porte esposte nel gruppo di contenitori. - Oggetto Porta
tipo enum Specifica se l'IP è esposto a Internet pubblico o alla rete virtuale privata. - Pubblico o privato
Ip string No L'IP esposto a Internet pubblico.
dnsNameLabel string No Etichetta del nome DNS per l'INDIRIZZO IP.

Oggetto Volume

Nome Tipo Obbligatoria valore
name string Il nome del volume.
azureFile object No Volume file di Azure. - Oggetto AzureFileVolume
emptyDir object No Volume di directory vuoto.
secret object No Volume segreto.
gitRepo object No Volume del repository Git. - Oggetto GitRepoVolume

Oggetto ContainerGroupDiagnostics

Nome Tipo Obbligatoria valore
logAnalytics object No Informazioni di Log Analytics del gruppo di contenitori. - Oggetto LogAnalytics

Oggetto ContainerGroupSubnetIds

Nome Tipo Obbligatoria valore
id string Identificatore di una subnet.
name string No Nome della subnet.

Oggetto DnsConfiguration

Nome Tipo Obbligatoria valore
Nameserver array Server DNS per il gruppo di contenitori. -Stringa
searchDomains string No I domini di ricerca DNS per la ricerca del nome host nel gruppo di contenitori.
opzioni string No Opzioni DNS per il gruppo di contenitori.

Oggetto EncryptionProperties

Nome Tipo Obbligatoria valore
vaultBaseUrl string URL di base dell'insieme di credenziali delle chiavi.
keyName string Nome della chiave di crittografia.
keyVersion string Versione della chiave di crittografia.

Oggetto InitContainerDefinition

Nome Tipo Obbligatoria valore
name string Nome del contenitore init.
properties object Proprietà per il contenitore init. - Oggetto InitContainerPropertiesDefinition

Oggetto ContainerProperties

Nome Tipo Obbligatoria valore
image string Nome dell'immagine usata per creare l'istanza del contenitore.
. array No Comandi da eseguire all'interno dell'istanza del contenitore in formato exec. -Stringa
ports array No Porte esposte nell'istanza del contenitore. - Oggetto ContainerPort
environmentVariables array No Variabili di ambiente da impostare nell'istanza del contenitore. - Oggetto EnvironmentVariable
resources object Requisiti delle risorse dell'istanza del contenitore. - Oggetto ResourceRequirements
volumeMounts array No Il montaggio del volume è disponibile per l'istanza del contenitore. - Oggetto VolumeMount
livenessProbe object No Probe di livezza. - Oggetto ContainerProbe
readinessProbe object No Probe di idoneità. - Oggetto ContainerProbe

Oggetto Porta

Nome Tipo Obbligatoria valore
protocol enum No Protocollo associato alla porta. - TCP o UDP
port numero intero Il numero della porta.

Oggetto AzureFileVolume

Nome Tipo Obbligatoria valore
Nomecondivisione string Nome della condivisione file di Azure da montare come volume.
readOnly boolean No Flag che indica se il file condiviso di Azure è montato come volume è di sola lettura.
storageAccountName string Nome dell'account di archiviazione che contiene la condivisione file di Azure.
storageAccountKey string No Chiave di accesso dell'account di archiviazione usata per accedere alla condivisione file di Azure.

Oggetto GitRepoVolume

Nome Tipo Obbligatoria valore
directory string No Nome della directory di destinazione. Non deve contenere o iniziare con '.'. Se viene fornito '.', la directory del volume sarà il repository Git. In caso contrario, se specificato, il volume conterrà il repository Git nella sottodirectory con il nome specificato.
repository string Repository URL
revision string No Eseguire il commit dell'hash per la revisione specificata.

Oggetto LogAnalytics

Nome Tipo Obbligatoria valore
workspaceId string ID dell'area di lavoro per Log Analytics
workspaceKey string Chiave dell'area di lavoro per l'analisi dei log
workspaceResourceId string No ID risorsa dell'area di lavoro per Log Analytics
logType enum No Tipo di log da usare. - ContainerInsights o ContainerInstanceLogs
metadata object No Metadati per l'analisi dei log.

Oggetto InitContainerPropertiesDefinition

Nome Tipo Obbligatoria valore
image string No Immagine del contenitore init.
. array No Comando da eseguire all'interno del contenitore init nel modulo exec. -Stringa
environmentVariables array No Variabili di ambiente da impostare nel contenitore init. - Oggetto EnvironmentVariable
volumeMounts array No Il montaggio del volume è disponibile per il contenitore init. - Oggetto VolumeMount

Oggetto ContainerPort

Nome Tipo Obbligatoria valore
protocol enum No Protocollo associato alla porta. - TCP o UDP
port numero intero Numero di porta esposto all'interno del gruppo di contenitori.

Oggetto EnvironmentVariable

Nome Tipo Obbligatoria valore
name string Nome della variabile di ambiente.
Valore string No Valore della variabile di ambiente.
secureValue string No Valore della variabile di ambiente sicura.

Oggetto ResourceRequirements

Nome Tipo Obbligatoria valore
requests object Richieste di risorse di questa istanza del contenitore. - Oggetto ResourceRequests
limiti object No Limiti delle risorse di questa istanza del contenitore. - Oggetto ResourceLimits

Oggetto VolumeMount

Nome Tipo Obbligatoria valore
name string Nome del montaggio del volume.
mountPath string Percorso all'interno del contenitore in cui deve essere montato il volume. Non deve contenere punti (:).
readOnly boolean No Flag che indica se il montaggio del volume è di sola lettura.

Oggetto ContainerProbe

Nome Tipo Obbligatoria valore
exec object No Comando di esecuzione da probe - Oggetto ContainerExec
httpGet object No Impostazioni Http Get per il probe - Oggetto ContainerHttpGet
initialDelaySeconds numero intero No Secondi di ritardo iniziale.
periodSeconds numero intero No Secondi di periodo.
failureThreshold numero intero No Soglia di errore.
successThreshold numero intero No Soglia di esito positivo.
timeoutSeconds numero intero No Secondi di timeout.

Oggetto ResourceRequests

Nome Tipo Obbligatoria valore
memoryInGB d'acquisto Richiesta di memoria in GB di questa istanza del contenitore.
cpu d'acquisto Richiesta CPU di questa istanza del contenitore.
Gpu object No Richiesta GPU di questa istanza del contenitore. - Oggetto GpuResource

Oggetto ResourceLimits

Nome Tipo Obbligatoria valore
memoryInGB d'acquisto No Limite di memoria in GB di questa istanza del contenitore.
cpu d'acquisto No Limite della CPU di questa istanza del contenitore.
Gpu object No Limite GPU di questa istanza del contenitore. - Oggetto GpuResource

Oggetto ContainerExec

Nome Tipo Obbligatoria valore
. array No Comandi da eseguire all'interno del contenitore. -Stringa

Oggetto ContainerHttpGet

Nome Tipo Obbligatoria valore
path string No Percorso del probe.
port numero intero Numero di porta da sondare.
scheme enum No Schema. - http o https
httpHeaders object No Le intestazioni HTTP incluse nel probe. - Oggetto HttpHeaders

Oggetto HttpHeaders

Nome Tipo Obbligatoria valore
name string No Nome dell'intestazione.
Valore string No Valore dell'intestazione.

Importante

Gli SKU DELLA GPU K80 e P100 vengono ritirati entro il 31 agosto 2023. Ciò è dovuto al ritiro delle macchine virtuali sottostanti usate: serie NC e serie NCv2 anche se gli SKU V100 saranno disponibili, è consigliabile usare Azure Kubernetes Service. Le risorse GPU non sono completamente supportate e non devono essere usate per i carichi di lavoro di produzione. Usare le risorse seguenti per eseguire la migrazione al servizio Azure Kubernetes oggi: Come eseguire la migrazione al servizio Azure Kubernetes.

Oggetto GpuResource

Nome Tipo Obbligatoria valore
conteggio numero intero Conteggio della risorsa GPU.
sku enum SKU della risorsa GPU. - V100

Passaggi successivi

Vedere l'esercitazione Distribuire un gruppo multi-contenitore usando un file YAML.

Vedere esempi di uso di un file YAML per distribuire i gruppi di contenitori in una rete virtuale o che montano un volume esterno.