Teilen über


YAML-Referenz: Azure Container Instances

Dieser Artikel behandelt die Syntax und Eigenschaften für die von Azure Container Instances zum Konfigurieren einer Containergruppe unterstützte YAML-Datei. Verwenden Sie eine YAML-Datei, um die Gruppenkonfiguration in den Befehl az container create in der Azure CLI einzugeben.

Eine YAML-Datei ist eine bequeme Möglichkeit, um eine Containergruppe für reproduzierbare Bereitstellungen zu konfigurieren. Dies ist eine präzise Alternative zur Verwendung einer Resource Manager-Vorlage oder des Azure Container Instances SDKs zum Erstellen oder Aktualisieren einer Containergruppe.

Hinweis

Diese Referenz gilt für YAML-Dateien für Azure Container Instances-REST-API-Version 2021-10-01.

Schema

Im Folgenden finden Sie das Schema für die YAML-Datei, einschließlich Kommentaren zur Hervorhebung von wichtigen Eigenschaften. Eine Beschreibung der Eigenschaften in diesem Schema finden Sie im Abschnitt Eigenschaftswerte.

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

Eigenschaftswerte

In den folgenden Tabellen sind die Werte beschrieben, die Sie im Schema festlegen müssen.

Microsoft.ContainerInstance/containerGroups-Objekt

Name Type Erforderlich Wert
name Zeichenfolge Ja Der Name der Containergruppe.
apiVersion enum Ja 2021-10-01 (neueste), 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 Zeichenfolge Nein Der Ressourcenspeicherort.
tags Objekt (object) Nein Die Ressourcentags.
identity Objekt (object) Nein Die Identität der Containergruppe, sofern konfiguriert. - -Objekt
properties Objekt (object) Ja ContainerGroupProperties-Objekt

ContainerGroupIdentity-Objekt

Name Type Erforderlich Wert
type enum Nein Der für die Containergruppe verwendete Identitätstyp. Der Typ „SystemAssigned, UserAssigned“ umfasst sowohl eine implizit erstellte Identität als auch einen Satz von Benutzern zugewiesener Identitäten. Der Typ "None" entfernt alle Identitäten aus der Containergruppe. – SystemAssigned, UserAssigned, SystemAssigned, UserAssigned, None
userAssignedIdentities Objekt (object) Nein Die Liste der der Containergruppe zugeordneten Benutzeridentitäten. Die Schlüsselverweise des Benutzerwörterbuchs sind Azure Resource Manager-Ressourcen-IDs im Formular: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}".

ContainerGroupProperties-Objekt

Name Type Erforderlich Wert
containers array Ja Die Container innerhalb der Containergruppe. - Container-Objekt
imageRegistryCredentials array Nein Die Anmeldeinformationen für die Imageregistrierung, mit denen die Containergruppe erstellt wird. - ImageRegistryCredential-Objekt
restartPolicy enum Nein Neustartrichtlinie für alle Container innerhalb der Containergruppe. - Always Immer neu starten- OnFailure Neustart bei Fehler- Never Nie neu starten. – Always, OnFailure, Never
ipAddress Objekt (object) Nein Der IP-Adressentyp der Containergruppe. - IpAddress-Objekt
osType enum Ja Der für die Container in der Containergruppe erforderliche Betriebssystemtyp. – Windows oder Linux
volumes array No Die Liste der Volumes, die Container in dieser Containergruppe bereitstellen können. - Volume-Objekt
Diagnose Objekt (object) Nein Die Diagnoseinformationen für eine Containergruppe. - ContainerGroupDiagnostics-Objekt
subnetIds Objekt (object) Nein Die Subnetzinformationen für eine Containergruppe. - ContainerGroupSubnetIds object
dnsConfig Objekt (object) Nein Die DNS-Konfigurationsinformationen für eine Containergruppe. - DnsConfiguration-Objekt
sku enum Nein SKU für eine Containergruppe: Standard oder Dedicated
encryptionProperties Objekt (object) Nein Die Verschlüsselungseigenschaften für eine Containergruppe. - EncryptionProperties-Objekt
initContainers array Nein Die Init-Container für eine Containergruppe - InitContainerDefinition-Objekt

Container-Objekt

Name Type Erforderlich Wert
name Zeichenfolge Ja Der vom Benutzer bereitgestellte Name der Containerinstanz.
properties Objekt (object) Ja Der Eigenschaften der Containerinstanz. - ContainerProperties-Objekt

ImageRegistryCredential-Objekt

Name Type Erforderlich Wert
server Zeichenfolge Ja Der Docker-Imageregistrierungsserver ohne ein Protokoll wie „HTTP“ oder „HTTPS“.
username Zeichenfolge No Der Benutzername für die private Registrierung.
password Zeichenfolge Nein Das Kennwort für die private Registrierung.
identity Zeichenfolge No Die Ressourcen-ID des Benutzers oder der vom System zugewiesenen verwalteten Identität, die für die Authentifizierung verwendet wird.
identityUrl Zeichenfolge Nein Die Identitäts-URL für die private Registrierung.

IpAddress-Objekt

Name Type Erforderlich Wert
ports array Ja Die Liste der in der Containergruppe verfügbar gemachten Ports. - Port-Objekte
type enum Ja Gibt an, ob die IP für das öffentliche Internet oder das private virtuelle Netzwerk verfügbar gemacht wird. – Public oder Private
ip Zeichenfolge Nein Die dem öffentlichen Internet verfügbar gemachte IP-Adresse.
dnsNameLabel Zeichenfolge Nein Die DNS-Namensbezeichnung für die IP-Adresse.

Volume-Objekt

Name Type Erforderlich Wert
name Zeichenfolge Ja Der Name des Volumes.
azureFile Objekt (object) Nein Das Azure File-Volume. - AzureFileVolume-Objekt
emptyDir Objekt (object) Nein Das leere Verzeichnis-Volume.
secret Objekt (object) Nein Das geheime Volume.
gitRepo Objekt (object) Nein Das Git-Repository-Volume. - GitRepoVolume-Objekt

ContainerGroupDiagnostics-Objekt

Name Type Erforderlich Wert
logAnalytics Objekt (object) Nein Containergruppen-Protokollanalyseinformationen. - LogAnalytics-Objekt

ContainerGroupSubnetIds Objekt

Name Type Erforderlich Wert
id Zeichenfolge Ja Der Bezeichner für ein Subnetz.
name string No Der Name des Teilnetzes.

DnsConfiguration-Objekt

Name Type Erforderlich Wert
nameServers array Ja Die DNS-Server für die Containergruppe. – string
searchDomains Zeichenfolge Nein Die DNS-Suchdomänen für das Nachschlagen von Hostnamen in der Containergruppe.
Optionen Zeichenfolge Nein Die DNS-Optionen für die Containergruppe.

EncryptionProperties-Objekt

Name Type Erforderlich Wert
vaultBaseUrl Zeichenfolge Ja Die Basis-URL für den Schlüsseltresor.
keyName Zeichenfolge Ja Der Name des Verschlüsselungsschlüssels
keyVersion Zeichenfolge Ja Die Version des Verschlüsselungsschlüssels

InitContainerDefinition-Objekt

Name Type Erforderlich Wert
name Zeichenfolge Ja Der Name für den Init-Container
properties Objekt (object) Ja Die Eigenschaften für den Init-Container. - InitContainerPropertiesDefinition-Objekt

ContainerProperties-Objekt

Name Type Erforderlich Wert
image Zeichenfolge Ja Der Name des zum Erstellen der Containerinstanz verwendeten Images.
command array Nein Die innerhalb der Containerinstanz auszuführenden Befehle im EXEC-Format. – string
ports array Nein Die in der Containerinstanz verfügbar gemachten Ports. - ContainerPort-Objekt
environmentVariables array Nein Die in der Containerinstanz festzulegenden Umgebungsvariablen. - EnvironmentVariable-Objekt
ressourcen Objekt (object) Ja Die Ressourcenanforderungen der Containerinstanz. - ResourceRequirements-Objekt
volumeMounts array Nein Die für die Containerinstanz verfügbaren Volumebereitstellungen. - VolumeMount-Objekt
livenessProbe Objekt (object) Nein Der Livetest. - ContainerProbe-Objekt
readinessProbe Objekt (object) Nein Der Bereitschaftstest. - ContainerProbe-Objekt

Port-Objekt

Name Type Erforderlich Wert
Protokoll enum Nein Das dem Port zugeordnete Protokoll. – TCP oder UDP
port integer Ja Die Portnummer.

AzureFileVolume-Objekt

Name Type Erforderlich Wert
shareName Zeichenfolge Ja Der Name der als Volume bereitzustellenden Azure File-Freigabe.
readOnly boolean Nein Das Flag, das anzeigt, ob die als Volume bereitgestellte Azure File-Freigabe schreibgeschützt ist.
storageAccountName Zeichenfolge Ja Der Name des Speicherkontos, das die Azure File-Freigabe enthält.
storageAccountKey Zeichenfolge Nein Der Zugriffsschlüssel des Speicherkontos, der für den Zugriff auf die Azure File-Freigabe verwendet wird.

GitRepoVolume-Objekt

Name Type Erforderlich Wert
directory Zeichenfolge Nein Zielverzeichnisname. Darf „..“ weder enthalten noch damit beginnen. Wenn "." angegeben wird, ist das Volumeverzeichnis das Git-Repository. Andernfalls enthält das Volume das Git-Repository im Unterverzeichnis mit dem angegebenen Namen.
repository Zeichenfolge Ja Repository-URL
revision Zeichenfolge Nein Commit-Hash für die angegebene Revision.

LogAnalytics-Objekt

Name Type Erforderlich Wert
workspaceId Zeichenfolge Ja Die Arbeitsbereichs-ID für Log Analytics
workspaceKey Zeichenfolge Ja Der Arbeitsbereichsschlüssel für Log Analytics.
workspaceResourceId Zeichenfolge No Die Arbeitsbereichsressourcen-ID für Log Analytics
logType enum Nein Der zu verwendende Protokolltyp. – ContainerInsights oder ContainerInstanceLogs
metadata Objekt (object) Nein Metadaten für Log Analytics.

InitContainerPropertiesDefinition-Objekt

Name Type Erforderlich Wert
image Zeichenfolge No Das Image des Init-Containers.
command array Nein Der Befehl, der im Init-Container im Ausführungsformat ausgeführt werden soll. – string
environmentVariables array Nein Die Umgebungsvariablen, die im Init-Container festgelegt werden sollen. - EnvironmentVariable-Objekt
volumeMounts array Nein Die für den Init-Container verfügbaren Volumebereitstellungen. - VolumeMount-Objekt

ContainerPort-Objekt

Name Type Erforderlich Wert
Protokoll enum Nein Das dem Port zugeordnete Protokoll. – TCP oder UDP
port integer Ja Die innerhalb der Containergruppe verfügbar gemachte Portnummer.

EnvironmentVariable-Objekt

Name Type Erforderlich Wert
name Zeichenfolge Ja Der Name der Umgebungsvariablen.
value Zeichenfolge Nein Der Wert der Umgebungsvariablen.
secureValue Zeichenfolge Nein Der Wert der sicheren Umgebungsvariablen.

ResourceRequirements-Objekt

Name Type Erforderlich Wert
requests Objekt (object) Ja Die Ressourcenanforderungen dieser Containerinstanz. - ResourceRequests-Objekt
Grenzwerte Objekt (object) Nein Die Ressourcenlimits dieser Containerinstanz. - ResourceLimits-Objekt

VolumeMount-Objekt

Name Type Erforderlich Wert
name Zeichenfolge Ja Der Name der Volumebereitstellung.
mountPath Zeichenfolge Ja Der Pfad innerhalb des Containers, in dem das Volume bereitgestellt werden soll. Darf keinen Doppelpunkt (:) enthalten.
readOnly boolean Nein Das Flag, das anzeigt, ob die Volumebereitstellung schreibgeschützt ist.

ContainerProbe-Objekt

Name Type Erforderlich Wert
exec Objekt (object) Nein Der zu testende Ausführungsbefehl – ContainerExec-Objekt
httpGet Objekt (object) Nein Die zu testenden HTTP GET-Einstellungen – ContainerHttpGet-Objekt
initialDelaySeconds integer Nein Die anfänglichen Verzögerungssekunden.
periodSeconds integer Nein Die Zeitraumsekunden.
failureThreshold integer Nein Der Fehlerschwellenwert.
successThreshold integer Nein Der Schwellenwert für erfolgreiche Tests.
timeoutSeconds integer Nein Die Timeoutsekunden.

ResourceRequests-Objekt

Name Type Erforderlich Wert
memoryInGB number Ja Die Arbeitsspeicheranforderung dieser Containerinstanz in GB.
cpu number Ja Die CPU-Anforderungen dieser Containerinstanz.
gpu Objekt (object) Nein Die GPU-Anforderungen dieser Containerinstanz. - GpuResource-Objekt

ResourceLimits-Objekt

Name Type Erforderlich Wert
memoryInGB number Nein Das Arbeitsspeicherlimit dieser Containerinstanz in GB.
cpu number Nein Das CPU-Limit dieser Containerinstanz.
gpu Objekt (object) Nein Das GPU-Limit dieser Containerinstanz. - GpuResource-Objekt

ContainerExec-Objekt

Name Type Erforderlich Wert
command array Nein Die innerhalb des Containers auszuführenden Befehle. – string

ContainerHttpGet-Objekt

Name Type Erforderlich Wert
path Zeichenfolge Nein Der zu testende Pfad.
port integer Ja Die zu testende Portnummer.
scheme enum Nein Das Schema. – HTTP oder HTTPS
httpHeaders Objekt (object) Nein Die im Test enthaltenen HTTP-Header. - GpuResource object

HttpHeaders-Objekt

Name Type Erforderlich Wert
name string No Name des Headers.
value Zeichenfolge No Wert des Headers.

Wichtig

K80- und P100-GPU-SKUs werden am 31. August 2023 eingestellt. Dies ist auf die Einstellung der zugrunde liegenden verwendeten VMs zurückzuführen: NC-Serie und NCv2-Serie. Obwohl V100-SKUs verfügbar sein werden, müssen Sie stattdessen Azure Kubernetes Service verwenden. GPU-Ressourcen werden nicht vollständig unterstützt und sollten nicht für Produktionsworkloads verwendet werden. Verwenden Sie die folgenden Ressourcen, um noch heute zu AKS zu migrieren: Migrieren zu AKS.

GpuResource-Objekt

Name Type Erforderlich Wert
count integer Ja Die Anzahl der GPU-Ressourcen.
sku enum Ja Die SKU der GPU-Ressource. – V100

Nächste Schritte

Weitere Informationen finden Sie im Tutorial Bereitstellen einer Gruppe mit mehreren Containern mithilfe einer YAML-Datei.

Beispiele für die Verwendung einer YAML-Datei zum Bereitstellen von Containergruppen in einem virtuellen Netzwerk oder für das Einbinden eines externen Volumes.