Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Aplikace typu kontejner má přístup k různým typům úložiště. Jedna aplikace může v případě potřeby využívat více než jeden typ úložiště.
Poznámka:
Nepoužívejte speciální znaky v názvech svazků, abyste zabránili selháním nasazení. Například svazek s názvem credentials.json obsahuje speciální znak (.), což vede k chybě nasazení.
| Typ úložiště | Popis | Uchování | Příklad využití |
|---|---|---|---|
| Úložiště s kontejnerovým rozsahem | Dočasné úložiště dostupné pro spuštěný kontejner | Data je k dispozici, dokud se kontejner nevypne. | Zápis místní mezipaměti aplikací |
| Úložiště omezené na repliku | Dočasné úložiště pro sdílení souborů mezi kontejnery ve stejné replice | Data jsou k dispozici, dokud se replika nevypnou. | Hlavní kontejner aplikace zapisuje soubory protokolu, které zpracovává sidecar kontejner. |
| Soubory Azure | Trvalé úložiště | Data se uchovávají ve službě Azure Files. | Zápis souborů do sdílené složky, aby byla data přístupná jinými systémy. |
Poznámka:
Azure Container Apps nepodporuje připojení sdílených složek z Azure NetApp Files nebo Azure Blob Storage.
Dočasné úložiště
Aplikace kontejneru může číst a zapisovat dočasná data do dočasného úložiště. Dočasné úložiště může být vymezeno na kontejner nebo repliku. Celkové množství úložiště spravovaného na úrovni kontejneru a repliky, které je dostupné pro každou repliku, závisí na celkovém počtu virtuálních procesorů přidělených replikě.
| vCPU | Celkové dočasné úložiště |
|---|---|
| 0,25 nebo nižší | 1 GiB |
| 0,5 nebo nižší | 2 GiB |
| 1 nebo nižší | 4 GiB |
| Více než 1 | 8 GiB |
Úložiště s omezením na kontejner
Kontejner může zapisovat do vlastního systému souborů.
Úložiště systému souborů kontejneru má následující charakteristiky:
- Úložiště je dočasné a zmizí, když se kontejner vypne nebo restartuje.
- Soubory zapsané do tohoto úložiště uvidí jenom procesy spuštěné v aktuálním kontejneru.
Úložiště v rozsahu replik
Můžete připojit efemérní, dočasný svazek, který je ekvivalentní k EmptyDir (prázdnému adresáři) v Kubernetes. Toto úložiště je omezené na jednu repliku. Ke sdílení dat mezi kontejnery ve stejné replice použijte EmptyDir svazek.
Úložiště omezené na repliku má následující charakteristiky:
- Soubory se uchovávají po celou dobu životnosti repliky.
- Pokud se kontejner v replice restartuje, zůstanou soubory ve svazku.
- Všechny inicializační kontejnery nebo kontejnery aplikací v replice můžou připojit stejný svazek.
- Kontejner může připojit více
EmptyDirsvazků.
Pokud chcete nakonfigurovat úložiště s oborem repliky, nejprve definujte EmptyDir svazek v revizi. Pak definujte připojení svazku v revizi do jednoho nebo více kontejnerů.
Požadavky
| Požadavek | Pokyny |
|---|---|
| Účet Azure | Pokud ho nemáte, vytvořte si účet zdarma. |
| Prostředí Azure Container Apps | Vytvořte prostředí kontejnerových aplikací. |
| Konfigurace spravované identity | Ujistěte se, že spravovaná identita přidružená k vašemu prostředí Container Apps má přiřazenou odpovídající role pro přístup ke službě Azure Files. |
Konfigurace
Když nakonfigurujete úložiště s rozsahem replik pomocí Azure CLI, musíte k vytvoření nebo aktualizaci aplikace kontejneru použít definici YAML.
Pokud chcete aktualizovat existující aplikaci kontejneru tak, aby používala úložiště s oborem repliky, exportujte specifikaci aplikace do souboru YAML s názvem app.yaml.
az containerapp show -n <APP_NAME> -g <RESOURCE_GROUP_NAME> -o yaml > app.yamlProveďte následující změny specifikace vaší aplikace kontejneru.
-
volumesPřidejte pole dotemplatečásti definice aplikace kontejneru a definujte svazek. Pokud už máte polevolumes, přidejte do pole nový svazek.- Jedná se
nameo identifikátor svazku. - Použijte
EmptyDirjakostorageType.
- Jedná se
- Pro každý kontejner v šabloně, ve kterém chcete připojit svazek, definujte připojení svazku v poli
volumeMountsdefinice kontejneru.-
volumeNameje název definovaný v polivolumes. - Je to
mountPathcesta v kontejneru pro připojení svazku.
-
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-
Aktualizujte aplikaci kontejneru pomocí souboru YAML.
az containerapp update --name <APP_NAME> --resource-group <RESOURCE_GROUP_NAME> \ --yaml app.yaml
Úplný příklad najdete ve specifikaci YAML.
Pokud chcete vytvořit svazek s vymezeným replikou a připojit ho do kontejneru, proveďte následující změny prostředku aplikací kontejnerů v šabloně ARM:
-
volumesPřidejte pole dotemplatečásti definice aplikace kontejneru a definujte svazek. Pokud už máte polevolumes, přidejte do pole nový svazek.- Jedná se
nameo identifikátor svazku. - Použijte
EmptyDirjakostorageType.
- Jedná se
- Pro každý kontejner v šabloně, ve kterém chcete připojit svazek, definujte připojení svazku v poli
volumeMountsdefinice kontejneru.-
volumeNameje název definovaný v polivolumes. - Je to
mountPathcesta v kontejneru pro připojení svazku.
-
Příklad fragmentu šablony ARM:
{
"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"
}
]
}
}
}
Úplný příklad najdete ve specifikaci rozhraní API šablony ARM.
Pokud chcete vytvořit svazek s replikovým vymezením a připojit ho do kontejneru, nasadíte novou verzi kontejnerové aplikace pomocí prostředí Azure Portal.
Na webu Azure Portal přejděte do aplikace kontejneru.
V nabídce vlevo vyberte Správa revizí.
Vyberte Vytvořit novou revizi.
Vyberte kontejner, do kterého chcete svazek připojit.
V podokně Upravit kontejner vyberte záložku Přípojné body svazku.
V části Dočasné úložiště vytvořte nový svazek s následujícími informacemi:
- Název svazku: Název pro přechodný svazek.
- Cesta k připojení: Absolutní cesta v kontejneru pro připojení svazku.
Výběrem možnosti Uložit uložte změny a ukončete kontextové podokno.
Výběrem možnosti Vytvořit vytvořte novou revizi.
Svazek Azure Files
Sdílenou složku můžete připojit ze služby Azure Files jako svazek v kontejneru.
Azure Files Storage má následující charakteristiky:
- Soubory zapsané pod umístěním připojení se zachovají do sdílené složky.
- Soubory ve sdílené složce jsou dostupné prostřednictvím umístění připojení.
- Několik kontejnerů může připojit stejnou sdílenou složku, včetně těch, které jsou v jiné replice, revizi nebo aplikaci kontejneru.
- Všechny kontejnery, které připojují sdílenou složku, mají přístup k souborům napsaným jakýmkoli jiným kontejnerem nebo metodou.
- Do jednoho kontejneru je možné připojit více svazků Azure Files.
Azure Files podporuje protokoly SMB (Server Message Block) i NFS (Network File System). Sdílenou složku Azure Files můžete připojit pomocí některého protokolu. Sdílená složka, kterou definujete v prostředí, musí být nakonfigurovaná se stejným protokolem používaným sdílenou složkou v účtu úložiště.
Pokud chcete ve svém kontejneru povolit službu Azure Files Storage, musíte nastavit prostředí a aplikaci kontejneru následujícím způsobem:
- Vytvořte definici úložiště v prostředí Container Apps.
- Pokud používáte systém souborů NFS, musí být vaše prostředí nakonfigurované s vlastní virtuální sítí a účet úložiště musí být nakonfigurovaný tak, aby povoloval přístup z virtuální sítě. Další informace najdete v tématu Sdílené složky NFS ve službě Soubory Azure .
- Pokud je vaše prostředí nakonfigurované s vlastní virtuální sítí, musíte povolit porty 445 a 2049 ve skupině zabezpečení sítě (NSG) přidružené k podsíti.
- Definujte svazek typu
AzureFile(SMB) neboNfsAzureFileNFS v revizi. - Definujte připojení svazku v jednom nebo více kontejnerech v revizi.
- Použitý účet úložiště Azure Files musí být přístupný z virtuální sítě vaší aplikace kontejneru. Další informace naleznete v tématu Udělení přístupu z virtuální sítě.
Požadavky
| Požadavek | Pokyny |
|---|---|
| Účet Azure | Pokud ho nemáte, vytvořte si účet zdarma. |
| Účet služby Azure Storage | Vytvoření účtu úložiště |
| Prostředí Azure Container Apps | Vytvořte prostředí kontejnerových aplikací. |
Konfigurace
Když nakonfigurujete aplikaci kontejneru pro připojení svazku Azure Files pomocí Azure CLI, musíte k vytvoření nebo aktualizaci aplikace kontejneru použít definici YAML.
Pro podrobný návod k připojení sdílené složky SMB viz Vytvoření připojení úložiště Azure Files v Azure Container Apps.
Přidejte do prostředí Container Apps definici úložiště.
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 ReadWriteNahraďte
<STORAGE_ACCOUNT_NAME>názvem a<STORAGE_ACCOUNT_KEY>klíčem vašeho účtu úložiště. Nahraďte<STORAGE_SHARE_NAME>názvem sdílené složky v účtu úložiště.Platné hodnoty jsou
--access-modeReadWriteaReadOnly.Pokud chcete aktualizovat existující aplikaci kontejneru tak, aby připojila sdílenou složku, exportujte specifikaci aplikace do souboru YAML s názvem app.yaml.
az containerapp show -n <APP_NAME> -g <RESOURCE_GROUP_NAME> -o yaml > app.yamlProveďte následující změny specifikace vaší aplikace kontejneru.
-
volumesPřidejte pole dotemplatečásti definice aplikace kontejneru a definujte svazek. Pokud už máte polevolumes, přidejte do pole nový svazek.- Jedná se
nameo identifikátor svazku. - Pro
storageTypepoužijteAzureFilepro SMB neboNfsAzureFilepro NFS. Tato hodnota musí odpovídat typu úložiště, který jste definovali v prostředí. - Použijte
storageNamenázev úložiště, které jste definovali v prostředí. - Jedná se
mountOptionso řetězec oddělený čárkami obsahující možnosti připojení. Další informace najdete v tématu Použití nastavení mountOptions ve službě Azure Files. - Seznam
secretsje seznam tajných kódů pro připojení ke svazku. Další informace naleznete v tématu Montování tajemství ve svazku.
- Jedná se
- Pro každý kontejner v šabloně, u které chcete připojit úložiště Azure Files, definujte připojení svazku v poli
volumeMountsdefinice kontejneru.-
volumeNameje název definovaný v polivolumes. - Je to
mountPathcesta v kontejneru pro připojení svazku. - Je to cesta ke svazku
subPath, který má být připojen. Pokud tuto hodnotu nezadáte, připojí se kořenový svazek. Další informace najdete v odkazu (#sub-path).
-
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 subPath: my-sub-path volumes: - name: azure-files-volume storageType: AzureFile storageName: mystorage-
Aktualizujte aplikaci kontejneru pomocí souboru YAML.
az containerapp update --name <APP_NAME> --resource-group <RESOURCE_GROUP_NAME> \ --yaml app.yaml
Úplný příklad najdete ve specifikaci YAML.
Následující fragmenty šablon ARM ukazují, jak přidat sdílenou složku Azure Files do prostředí Container Apps a jak ji používat v aplikaci kontejneru.
Přidejte podřízený prostředek
storagesdo prostředí Container Apps.{ "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" } } } ] }Aktualizujte prostředek kontejnerové aplikace, abyste přidali svazek a jeho připojení.
{ "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", "subPath": "my-sub-path" } ] } ], "scale": { "minReplicas": 1, "maxReplicas": 3 }, "volumes": [ { "name": "azure-files-volume", "storageType": "AzureFile", "storageName": "myazurefiles" } ] } } }-
volumesPřidejte pole dotemplatečásti definice aplikace kontejneru a definujte svazek. Pokud už máte polevolumes, přidejte do pole nový svazek.- Jedná se
nameo identifikátor svazku. - Pro
storageTypepoužijteAzureFilepro SMB neboNfsAzureFilepro NFS. Tato hodnota musí odpovídat typu úložiště, který jste definovali v prostředí. - Použijte
storageNamenázev úložiště, které jste definovali v prostředí. - Jedná se
mountOptionso řetězec oddělený čárkami obsahující možnosti připojení. Další informace najdete v tématu Použití nastavení mountOptions ve službě Azure Files. - Seznam
secretsje seznam tajných kódů pro připojení ke svazku. Další informace naleznete v tématu Připojení tajných údajů ve svazku.
- Jedná se
- Pro každý kontejner v šabloně, u které chcete připojit úložiště Azure Files, definujte připojení svazku v poli
volumeMountsdefinice kontejneru.-
volumeNameje název definovaný v polivolumes. - Je to
mountPathcesta v kontejneru pro připojení svazku. - (
subPathvolitelné) je cesta ve svazku, který se má připojit. Pokud ho nezadáte, připojí se kořenový svazek. Další informace viz (#sub-path).
-
-
Úplný příklad najdete ve specifikaci rozhraní API šablony ARM.
Pokud chcete nakonfigurovat připojení svazku pro službu Azure Files Storage na webu Azure Portal, přidejte sdílenou složku do prostředí Container Apps a pak přidejte ke své aplikaci kontejneru připojení svazku vytvořením nové revize.
Na webu Azure Portal přejděte do prostředí Container Apps.
V navigačním podokně v části Nastavení vyberte Soubory Azure.
Vyberte Přidat.
V závislosti na protokolu používaném vaší sdílenou složkou vyberte protokol SMB (Server Message Block) nebo systém souborů NFS (Network File System).
V kontextovém podokně Přidat sdílenou složku zadejte následující informace:
- Název: Název sdílené složky.
- Název účtu úložiště: Název účtu úložiště, který obsahuje sdílenou složku.
- Klíč účtu úložiště: Přístupový klíč pro účet úložiště.
- Sdílená složka: Název sdílené složky.
- Režim přístupu: Režim přístupu pro sdílenou složku. Platné hodnoty jsou jen pro čtení a zápis a jen pro čtení.
Výběrem možnosti Přidat ukončíte kontextové podokno.
Výběrem možnosti Uložit potvrďte změny.
Přejděte do aplikace kontejneru.
V navigačním podokně v části Aplikace vyberte Revize a repliky.
Vyberte Vytvořit novou revizi.
Na stránce Vytvořit a nasadit novou revizi vyberte záložku Svazky.
Vyberte Přidat.
V podokně Přidat svazek nastavte následující hodnoty.
- Typ svazku: Souborový svazek Azure.
- Název: Zadejte název svazku.
- Název sdílené složky: Vyberte sdílenou složku, kterou jste vytvořili dříve.
- Možnosti připojení: Volitelně zadejte řetězec s oddělovačem možností připojení. Další informace najdete v tématu Použití nastavení mountOptions ve službě Azure Files.
Výběrem možnosti Přidat ukončíte kontextové podokno.
Na stránce Vytvořit a znovu publikovat novou revizi vyberte kartu Kontejner.
Vyberte kontejner, do kterého chcete svazek připojit.
V podokně Upravit kontejner vyberte záložku Přípojné body svazku.
V části Název svazku vyberte svazek, který jste vytvořili dříve.
V cestu připojení zadejte absolutní cestu v kontejneru pro připojení objemu.
Do dílčí cesty (volitelné) zadejte cestu ve svazku, který chcete připojit. Pokud tuto hodnotu nezadáte, připojí se kořenový svazek. Další informace naleznete v (#sub-path).
Výběrem možnosti Uložit uložte změny a ukončete kontextové podokno.
Výběrem možnosti Vytvořit vytvořte novou revizi.
Podcesta
Když připojíte sdílený soubor ze služby Azure Files, můžete zadat cestu připojení i podcestu.
- Cesta k připojení: Cesta v kontejneru, kam chcete připojit svazek.
- Dílčí cesta: Cesta ve svazku, který chcete připojit.
Částečná cesta je volitelná. Pokud nezadáte podcestu, je připojen kořen svazku.
Dílčí cesta je relativní cesta z kořene svazku. Nezačínejte podcestu s /. Pokud zadáte podcestu, která začíná na /, nemusí se vaše aplikace kontejneru spustit. Jedná se například my-volume-folder o platnou dílčí cestu, ale /my-volume-folder není.
Dílčí cesta může odkazovat na složku nebo soubor ve svazku.
Pokud dílčí cesta odkazuje na složku, měla by cesta připojení odkazovat na prázdnou složku v kontejneru.
Pokud dílčí cesta odkazuje na soubor, měla by cesta připojení odkazovat na soubor, který v kontejneru ještě neexistuje.
Předpokládejme například, že dílčí cesta je
my-volume-folder/my-volume-file.txta přípojná cesta je/my-container-folder/my-container-file. Složka/my-container-folderby již měla existovat v kontejneru, ale zatím by neměla obsahovat soubormy-container-file.txt.
Systém ignoruje koncová lomítka dílčích cest.