Ereignisse
17. März, 21 Uhr - 21. März, 10 Uhr
Nehmen Sie an der Meetup-Serie teil, um skalierbare KI-Lösungen basierend auf realen Anwendungsfällen mit Mitentwicklern und Experten zu erstellen.
Jetzt registrierenDieser Browser wird nicht mehr unterstützt.
Führen Sie ein Upgrade auf Microsoft Edge durch, um die neuesten Features, Sicherheitsupdates und den technischen Support zu nutzen.
Eine Container-App hat Zugriff auf verschiedene Typen von Speicher. Eine einzelne App kann bei Bedarf mehr als einen Typ von Speicher nutzen.
Hinweis
Vermeiden Sie die Verwendung von Sonderzeichen in Volumenamen, um Bereitstellungsfehler zu vermeiden. Ein Volume mit dem Namen credentials.json
enthält z. B. ein Sonderzeichen (.
), das zu einem Bereitstellungsfehler führt.
Speichertyp | Beschreibung | Persistenz | Verwendungsbeispiel |
---|---|---|---|
Containerbezogener Speicher | Flüchtiger Speicher, der für einen ausgeführten Container verfügbar ist | Daten sind verfügbar, bis der Container heruntergefahren wird. | Schreiben in einen lokalen App-Cache. |
Replikatbezogener Speicher | Flüchtiger Speicher für die Freigabe von Dateien zwischen Containern im selben Replikat | Daten sind verfügbar, bis das Replikat heruntergefahren wird. | App-Hauptcontainer, der Protokolldateien schreibt, die von einem Sidecarcontainer verarbeitet werden. |
Azure Files | Permanenter Speicher | Daten werden in Azure Files gespeichert. | Schreiben von Dateien in eine Dateifreigabe, um Daten für andere Systeme zugänglich zu machen. |
Hinweis
Azure Container Apps unterstützen das Einbinden von Dateifreigaben aus Azure NetApp Files oder Azure Blob Storage nicht.
Eine Container-App kann temporäre Daten im flüchtigen Speicher lesen und schreiben. Flüchtiger Speicher kann auf einen Container oder ein Replikat festgelegt werden. Die Gesamtmenge des für jedes Replikat verfügbaren containerbezogenen und replikatbezogenen Speichers hängt von der Gesamtanzahl der dem Replikat zugeordneten virtuellen CPUs ab.
vCPUs | Gesamter flüchtiger Speicher |
---|---|
0,25 oder weniger | 1 GiB |
0,5 oder weniger | 2 GiB |
1 oder weniger | 4 GiB |
Mehr als 1 | 8 GiB |
Ein Container kann in sein eigenes Dateisystem schreiben.
Der Containerdateisystem-Speicher weist die folgenden Merkmale auf:
Sie können ein kurzlebiges, temporäres Volume einbinden, das EmptyDir (leeres Verzeichnis) in Kubernetes entspricht. Dieser Speicher ist auf ein einzelnes Replikat begrenzt. Verwenden Sie ein EmptyDir
-Volume, um Daten zwischen Containern im selben Replikat freizugeben.
Replikatbezogener Speicher weist die folgenden Merkmale auf:
EmptyDir
-Volumes einbinden.Um replikatbezogenen Speicher zu konfigurieren, definieren Sie zunächst ein EmptyDir
-Volume in der Revision. Definieren Sie dann eine Volumeeinbindung in einem oder mehreren Containern in der Revision.
Anforderung | Anweisungen |
---|---|
Azure-Konto | Erstellen Sie ein kostenloses Konto, falls Sie keines besitzen. |
Azure Container Apps-Umgebung | Erstellen einer Container Apps-Umgebung. |
Wenn Sie replikatbezogenen Speicher mithilfe der Azure CLI konfigurieren, müssen Sie eine YAML-Definition verwenden, um Ihre Container-App zu erstellen oder zu aktualisieren.
Wenn Sie eine vorhandene Container-App aktualisieren möchten, um replikatbezogenen Speicher zu verwenden, exportieren Sie die Spezifikation Ihrer App in eine YAML-Datei namens app.yaml.
az containerapp show -n <APP_NAME> -g <RESOURCE_GROUP_NAME> -o yaml > app.yaml
Nehmen Sie die folgenden Änderungen an der Spezifikation Ihrer Container-App vor.
template
Ihrer Container-App-Definition ein volumes
-Array hinzu, und definieren Sie ein Volume. Wenn Sie bereits über ein volumes
-Array verfügen, fügen Sie dem Array ein neues Volume hinzu.
name
ist ein Bezeichner für das Volume.EmptyDir
als storageType
.volumeMounts
-Array der Containerdefinition.
volumeName
ist der Name, der im volumes
-Array definiert ist.mountPath
ist der Pfad im Container zum Einbinden des Volumes.properties:
managedEnvironmentId: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.App/managedEnvironments/<ENVIRONMENT_NAME>
configuration:
activeRevisionsMode: Single
template:
containers:
- image: <IMAGE_NAME1>
name: my-container-1
volumeMounts:
- mountPath: /myempty
volumeName: myempty
- image: <IMAGE_NAME_2>
name: my-container-2
volumeMounts:
- mountPath: /myempty
volumeName: myempty
volumes:
- name: myempty
storageType: EmptyDir
Aktualisieren Sie Ihre Container-App mithilfe der YAML-Datei.
az containerapp update --name <APP_NAME> --resource-group <RESOURCE_GROUP_NAME> \
--yaml app.yaml
Ein vollständiges Beispiel finden Sie in der YAML-Spezifikation.
Wenn Sie ein replikatbezogenes Volume erstellen und in einen Container einbinden möchten, nehmen Sie die folgenden Änderungen an der Container-App-Ressource in einer ARM-Vorlage vor:
template
Ihrer Container-App-Definition ein volumes
-Array hinzu, und definieren Sie ein Volume. Wenn Sie bereits über ein volumes
-Array verfügen, fügen Sie dem Array ein neues Volume hinzu.
name
ist ein Bezeichner für das Volume.EmptyDir
als storageType
.volumeMounts
-Array der Containerdefinition.
volumeName
ist der Name, der im volumes
-Array definiert ist.mountPath
ist der Pfad im Container zum Einbinden des Volumes.ARM-Beispielvorlagenausschnitt:
{
"apiVersion": "2022-03-01",
"type": "Microsoft.App/containerApps",
"name": "[parameters('containerappName')]",
"location": "[parameters('location')]",
"properties": {
...
"template": {
"revisionSuffix": "myrevision",
"containers": [
{
"name": "main",
"image": "[parameters('container_image')]",
"resources": {
"cpu": 0.5,
"memory": "1Gi"
},
"volumeMounts": [
{
"mountPath": "/myempty",
"volumeName": "myempty"
}
]
},
{
"name": "sidecar",
"image": "[parameters('sidecar_image')]",
"resources": {
"cpu": 0.5,
"memory": "1Gi"
},
"volumeMounts": [
{
"mountPath": "/myempty",
"volumeName": "myempty"
}
]
}
],
"scale": {
"minReplicas": 1,
"maxReplicas": 3
},
"volumes": [
{
"name": "myempty",
"storageType": "EmptyDir"
}
]
}
}
}
Ein vollständiges Beispiel finden Sie in der ARM-Vorlagen-API-Spezifikation.
Um ein replikatbezogenes Volume zu erstellen und in einem Container bereitzustellen, stellen Sie eine neue Revision Ihrer Container-App mithilfe des Azure-Portals bereit.
Navigieren Sie im Azure-Portal zu Ihrer Container-App.
Wählen Sie im linken Menü Revisionsverwaltung aus.
Wählen Sie Create new revision (Neue Revision erstellen) aus.
Wählen Sie den Container aus, in den Sie das Volume einbinden möchten.
Wählen Sie im Kontextbereich Container bearbeiten die Registerkarte Volumeeinbindungen aus.
Erstellen Sie im Abschnitt Flüchtiger Speicher ein neues Volume mit den folgenden Informationen:
Wählen Sie Speichern aus, um Änderungen zu speichern und den Kontextbereich zu beenden.
Wählen Sie Erstellen aus, um die neue Revision zu erstellen.
Sie können eine Dateifreigabe aus Azure Files als Volume in einen Container einbinden.
Azure Files-Speicher weist die folgenden Merkmale auf:
Azure Files unterstützt die Protokolle SMB (Server Message Block) und NFS (Network File System). Sie können eine Azure Files-Freigabe mit einem der beiden Protokolle bereitstellen. Die Dateifreigabe, die Sie in der Umgebung definieren, muss mit demselben Protokoll konfiguriert werden, das von der Dateifreigabe im Speicherkonto verwendet wird.
Hinweis
Unterstützung für die Einbidung von NFS-Freigaben in Azure Container Apps befindet sich in der Vorschau.
Um Azure Files-Speicher in Ihrem Container zu aktivieren, müssen Sie Ihre Umgebung und Container-App wie folgt einrichten:
AzureFile
(SMB) oder NfsAzureFile
(NFS) in einer Revision.Anforderung | Anweisungen |
---|---|
Azure-Konto | Erstellen Sie ein kostenloses Konto, falls Sie keines besitzen. |
Azure-Speicherkonto | Informationen zu Azure-Speicherkonten |
Azure Container Apps-Umgebung | Erstellen einer Container Apps-Umgebung. |
Wenn Sie eine Container-App zum Einbinden eines Azure Files-Volumes mithilfe der Azure CLI konfigurieren, müssen Sie eine YAML-Definition verwenden, um Ihre Container-App zu erstellen oder zu aktualisieren.
Eine Schritt-für-Schritt-Anleitung zum Einbinden einer SMB-Dateifreigabe finden Sie unter Tutorial: Erstellen einer Azure Files-Volumeeinbindung in Azure Container Apps.
Fügen Sie eine Speicherdefinition zu Ihrer Container Apps-Umgebung hinzu.
az containerapp env storage set --name my-env --resource-group my-group \
--storage-name mystorage \
--storage-type AzureFile \
--azure-file-account-name <STORAGE_ACCOUNT_NAME> \
--azure-file-account-key <STORAGE_ACCOUNT_KEY> \
--azure-file-share-name <STORAGE_SHARE_NAME> \
--access-mode ReadWrite
Ersetzen Sie <STORAGE_ACCOUNT_NAME>
und <STORAGE_ACCOUNT_KEY>
durch den Namen und Schlüssel Ihres Speicherkontos. Ersetzen Sie <STORAGE_SHARE_NAME>
durch den Namen der Dateifreigabe im Speicherkonto.
Gültige Werte für --access-mode
sind ReadWrite
und ReadOnly
.
Wenn Sie eine vorhandene Container-App aktualisieren möchten, um eine Dateifreigabe einzubinden, exportieren Sie die Spezifikation Ihrer App in eine YAML-Datei namens app.yaml.
az containerapp show -n <APP_NAME> -g <RESOURCE_GROUP_NAME> -o yaml > app.yaml
Nehmen Sie die folgenden Änderungen an der Spezifikation Ihrer Container-App vor.
template
Ihrer Container-App-Definition ein volumes
-Array hinzu, und definieren Sie ein Volume. Wenn Sie bereits über ein volumes
-Array verfügen, fügen Sie dem Array ein neues Volume hinzu.
name
ist ein Bezeichner für das Volume.AzureFile
(SMB) oder NfsAzureFile
(NFS) für storageType
. Dieser Wert muss mit dem Speichertyp übereinstimmen, den Sie in der Umgebung definiert haben.storageName
den Namen des Speichers, den Sie in der Umgebung definiert haben.volumeMounts
-Array der Containerdefinition.
volumeName
ist der Name, der im volumes
-Array definiert ist.mountPath
ist der Pfad im Container zum Einbinden des Volumes.properties:
managedEnvironmentId: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>/providers/Microsoft.App/managedEnvironments/<ENVIRONMENT_NAME>
configuration:
template:
containers:
- image: <IMAGE_NAME>
name: my-container
volumeMounts:
- volumeName: azure-files-volume
mountPath: /my-files
volumes:
- name: azure-files-volume
storageType: AzureFile
storageName: mystorage
Aktualisieren Sie Ihre Container-App mithilfe der YAML-Datei.
az containerapp update --name <APP_NAME> --resource-group <RESOURCE_GROUP_NAME> \
--yaml app.yaml
Ein vollständiges Beispiel finden Sie in der YAML-Spezifikation.
Die folgenden ARM-Vorlagenausschnitte veranschaulichen, wie Sie einer Container Apps-Umgebung eine Azure Files-Freigabe hinzufügen und sie in einer Container-App verwenden.
Fügen Sie der Container Apps-Umgebung eine untergeordnete storages
-Ressource hinzu.
{
"type": "Microsoft.App/managedEnvironments",
"apiVersion": "2022-03-01",
"name": "[parameters('environment_name')]",
"location": "[parameters('location')]",
"properties": {
"daprAIInstrumentationKey": "[parameters('dapr_ai_instrumentation_key')]",
"appLogsConfiguration": {
"destination": "log-analytics",
"logAnalyticsConfiguration": {
"customerId": "[parameters('log_analytics_customer_id')]",
"sharedKey": "[parameters('log_analytics_shared_key')]"
}
}
},
"resources": [
{
"type": "storages",
"name": "myazurefiles",
"apiVersion": "2022-03-01",
"dependsOn": [
"[resourceId('Microsoft.App/managedEnvironments', parameters('environment_name'))]"
],
"properties": {
"azureFile": {
"accountName": "[parameters('storage_account_name')]",
"accountKey": "[parameters('storage_account_key')]",
"shareName": "[parameters('storage_share_name')]",
"accessMode": "ReadWrite"
}
}
}
]
}
Aktualisieren Sie die Container-App-Ressource, um ein Volume und eine Volumeeinbindung hinzuzufügen.
{
"apiVersion": "2023-05-01",
"type": "Microsoft.App/containerApps",
"name": "[parameters('containerappName')]",
"location": "[parameters('location')]",
"properties": {
...
"template": {
"revisionSuffix": "myrevision",
"containers": [
{
"name": "main",
"image": "[parameters('container_image')]",
"resources": {
"cpu": 0.5,
"memory": "1Gi"
},
"volumeMounts": [
{
"mountPath": "/myfiles",
"volumeName": "azure-files-volume"
}
]
}
],
"scale": {
"minReplicas": 1,
"maxReplicas": 3
},
"volumes": [
{
"name": "azure-files-volume",
"storageType": "AzureFile",
"storageName": "myazurefiles"
}
]
}
}
}
template
Ihrer Container-App-Definition ein volumes
-Array hinzu, und definieren Sie ein Volume. Wenn Sie bereits über ein volumes
-Array verfügen, fügen Sie dem Array ein neues Volume hinzu.
name
ist ein Bezeichner für das Volume.AzureFile
(SMB) oder NfsAzureFile
(NFS) für storageType
. Dieser Wert muss mit dem Speichertyp übereinstimmen, den Sie in der Umgebung definiert haben.storageName
den Namen des Speichers, den Sie in der Umgebung definiert haben.volumeMounts
-Array der Containerdefinition.
volumeName
ist der Name, der im volumes
-Array definiert ist.mountPath
ist der Pfad im Container zum Einbinden des Volumes.Ein vollständiges Beispiel finden Sie in der ARM-Vorlagen-API-Spezifikation.
Um eine Volumeeinbindung für den Azure Files-Speicher im Azure-Portal zu konfigurieren, fügen Sie Ihrer Container Apps-Umgebung eine Dateifreigabe hinzu. Fügen Sie dann ihrer Container-App eine Volumeeinbindung hinzu, indem Sie eine neue Revision erstellen.
Navigieren Sie im Azure-Portal zu Ihrer Container Apps-Umgebung.
Wählen Sie im Navigationsbereich unter Einstellungen die Option Azure Files aus.
Wählen Sie Hinzufügen.
Wählen Sie Server Message Block (SMB) oder Network File System (NFS) aus, je nach dem von Ihrer Dateifreigabe verwendeten Protokoll.
Geben Sie im Kontextbereich Dateifreigabe hinzufügen folgende Informationen ein:
Wählen Sie Hinzufügen aus, um den Kontextbereich zu beenden.
Wählen Sie Speichern aus, um die Änderungen zu übernehmen.
Navigieren Sie zu Ihrer Container-App.
Wählen Sie im Navigationsbereich unter Anwendung die Option Revisionen und Replikate aus.
Wählen Sie Create new revision (Neue Revision erstellen) aus.
Wählen Sie auf der Seite Erstellen und Bereitstellen einer neuen Revision die Registerkarte Volumes aus.
Wählen Sie Hinzufügen.
Legen Sie im Kontextbereich Volume hinzufügen Folgendes fest.
Wählen Sie Hinzufügen aus, um den Kontextbereich zu beenden.
Wählen Sie auf der Seite Erstellen und Bereitstellen einer neuen Revision die Registerkarte Container aus.
Wählen Sie den Container aus, in den Sie das Volume einbinden möchten.
Wählen Sie im Kontextbereich Container bearbeiten die Registerkarte Volumeeinbindungen aus.
Wählen Sie unter Volumenamen das zuvor erstellte Volume aus.
Geben Sie unter Bereitstellungspfad den absoluten Pfad im Container zum Einbinden des Volumes ein.
Wählen Sie Speichern aus, um Änderungen zu speichern und den Kontextbereich zu beenden.
Wählen Sie Erstellen aus, um die neue Revision zu erstellen.
Ereignisse
17. März, 21 Uhr - 21. März, 10 Uhr
Nehmen Sie an der Meetup-Serie teil, um skalierbare KI-Lösungen basierend auf realen Anwendungsfällen mit Mitentwicklern und Experten zu erstellen.
Jetzt registrierenTraining
Modul
Konfigurieren einer Containerapp in Azure Container Apps - Training
Dieses Modul führt Benutzer durch das Erstellen, Konfigurieren und Verwalten von Container Apps und deren Umgebungen. Außerdem werden Eingangsoptionen, Skalierung, Instanzenverwaltung und Sicherheitsüberlegungen mit bewährten Methoden zum Konfigurieren von Azure Container Apps erkundet.