Tárolócsatlakozások használata az Azure Container Appsben
A tárolóalkalmazások különböző típusú tárolókhoz férhetnek hozzá. Ha szükséges, egyetlen alkalmazás több tárolási típust is kihasználhat.
Feljegyzés
Ne használjon speciális karaktereket a kötetnevekben az üzembehelyezési hibák elkerülése érdekében. Egy elnevezett credentials.json
kötet például egy speciális karaktert (.
) tartalmaz, amely üzembe helyezési hibát eredményez.
Tárolási típus | Leírás | Kitartás | Használati példa |
---|---|---|---|
Tároló hatókörű tároló | Futó tároló számára elérhető rövid élettartamú tároló | Az adatok mindaddig elérhetők, amíg a tároló le nem áll | Helyi alkalmazásgyorsítótár írása. |
Replika hatókörű tároló | Rövid élettartamú tárolás a fájlok azonos replikában lévő tárolók közötti megosztásához | Az adatok addig érhetők el, amíg a replika le nem áll | A fő alkalmazástároló, amely naplófájlokat ír, amelyeket a sidecar tároló feldolgoz. |
Azure Files | Állandó tárolás | Az adatok megmaradnak az Azure Filesban | Fájlok írása fájlmegosztásba, hogy az adatokat más rendszerek is elérhetővé tegyék. |
Feljegyzés
Az Azure Container Apps nem támogatja a fájlmegosztások Csatlakoztatását az Azure NetApp Filesból vagy az Azure Blob Storage-ból.
Rövid élettartamú tárolás
A tárolóalkalmazások ideiglenes adatokat olvashatnak és írhatnak a rövid élettartamú tárolóba. A rövid élettartamú tárolás tárolóra vagy replikára terjedhet ki. Az egyes replikák számára elérhető tároló hatókörű és replika hatókörű tároló teljes mennyisége a replikához lefoglalt virtuális processzorok teljes számától függ.
vCPU-k | Teljes rövid élettartamú tárterület |
---|---|
0,25 vagy alacsonyabb | 1 GB |
0,5 vagy alacsonyabb | 2 GiB |
1 vagy alacsonyabb | 4 GiB |
Több mint 1 | 8 GiB |
Tároló hatókörű tároló
A tárolók saját fájlrendszerbe írhatnak.
A tároló fájlrendszerének tárolása a következő jellemzőkkel rendelkezik:
- A tároló ideiglenes, és eltűnik, amikor a tároló leáll vagy újraindul.
- A tárolóba írt fájlok csak az aktuális tárolóban futó folyamatok számára láthatók.
Replika hatókörű tároló
A Kubernetesben az EmptyDir (üres könyvtár) értékének megfelelő rövid idejű, ideiglenes kötetet csatlakoztathat. Ez a tárterület egyetlen replikára van korlátozva.
EmptyDir
Egy kötet használatával adatokat oszthat meg a tárolók között ugyanabban a replikában.
A replika hatókörű tároló jellemzői a következők:
- A fájlok a replika teljes élettartama alatt megmaradnak.
- Ha egy replikában lévő tároló újraindul, a kötet fájljai megmaradnak.
- A replika bármely init- vagy alkalmazástárolója csatlakoztathatja ugyanazt a kötetet.
- A tárolók több
EmptyDir
kötetet is csatlakoztathatnak.
A replika hatókörű tároló konfigurálásához először definiáljon egy kötetet EmptyDir
a változatban. Ezután definiáljon egy kötetcsatlakoztatást egy vagy több tárolóban a változatban.
Előfeltételek
Követelmény | Utasítások |
---|---|
Azure-fiók | Ha nem rendelkezik ilyen fiókkal, hozzon létre ingyenes fiókot. |
Azure Container Apps-környezet | Hozzon létre egy tárolóalkalmazás-környezetet. |
Konfiguráció
Amikor replika hatókörű tárolót konfigurál az Azure CLI használatával, yaML-definíciót kell használnia a tárolóalkalmazás létrehozásához vagy frissítéséhez.
Ha egy meglévő tárolóalkalmazást a replika hatókörű tároló használatára szeretne frissíteni, exportálja az alkalmazás specifikációját egy app.yaml nevű YAML-fájlba.
az containerapp show -n <APP_NAME> -g <RESOURCE_GROUP_NAME> -o yaml > app.yaml
Végezze el az alábbi módosításokat a tárolóalkalmazás specifikációjához.
- Adjon hozzá egy
volumes
tömböt atemplate
tárolóalkalmazás definíciójának szakaszához, és definiáljon egy kötetet. Ha már rendelkezik tömbbelvolumes
, adjon hozzá egy új kötetet a tömbhöz.- Ez
name
a kötet azonosítója. - Használja
EmptyDir
astorageType
.
- Ez
- A kötetet csatlakoztatni kívánt sablon minden tárolójában definiáljon egy kötetcsatlakoztatást a
volumeMounts
tárolódefiníció tömbjében.- Ez
volumeName
a tömbben definiáltvolumes
név. - A
mountPath
kötet csatlakoztatásának elérési útja a tárolóban.
- Ez
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
- Adjon hozzá egy
Frissítse a tárolóalkalmazást a YAML-fájl használatával.
az containerapp update --name <APP_NAME> --resource-group <RESOURCE_GROUP_NAME> \ --yaml app.yaml
A teljes példáért tekintse meg a YAML specifikációját .
Replika hatókörű kötet létrehozásához és tárolóba való csatlakoztatásához hajtsa végre a következő módosításokat a tárolóalkalmazások erőforrásán egy ARM-sablonban:
- Adjon hozzá egy
volumes
tömböt atemplate
tárolóalkalmazás definíciójának szakaszához, és definiáljon egy kötetet. Ha már rendelkezik tömbbelvolumes
, adjon hozzá egy új kötetet a tömbhöz.- Ez
name
a kötet azonosítója. - Használja
EmptyDir
astorageType
.
- Ez
- A kötetet csatlakoztatni kívánt sablon minden tárolójában definiáljon egy kötetcsatlakoztatást a
volumeMounts
tárolódefiníció tömbjében.- Ez
volumeName
a tömbben definiáltvolumes
név. - A
mountPath
kötet csatlakoztatásának elérési útja a tárolóban.
- Ez
Példa ARM-sablonrészletre:
{
"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"
}
]
}
}
}
A teljes példáért tekintse meg az ARM-sablon API-specifikációját .
Replika hatókörű kötet létrehozásához és tárolóba való csatlakoztatásához helyezze üzembe a tárolóalkalmazás új változatát az Azure Portalon.
Az Azure Portalon keresse meg a tárolóalkalmazást.
A bal oldali menüben válassza a Korrektúrakezelés lehetőséget.
Válassza az Új változat létrehozása lehetőséget.
Válassza ki azt a tárolót, amelyhez csatlakoztatni szeretné a kötetet.
A Tárolókörnyezet szerkesztése panelen válassza a Kötet csatlakoztatása lapot.
A Rövid élettartamú tárolás szakaszban hozzon létre egy új kötetet az alábbi információkkal.
- Kötet neve: A rövid élettartamú kötet neve.
- Csatlakoztatási útvonal: A tároló abszolút elérési útja a kötet csatlakoztatásához.
A módosítások mentéséhez és a környezeti panelről való kilépéshez válassza a Mentés lehetőséget.
Válassza a Létrehozás lehetőséget az új változat létrehozásához.
Azure Files-kötet
Egy fájlmegosztást az Azure Filesból kötetként csatlakoztathat egy tárolóhoz.
Az Azure Files Storage a következő jellemzőkkel rendelkezik:
- A csatlakoztatási hely alatt írt fájlok megmaradnak a fájlmegosztásban.
- A megosztásban lévő fájlok a csatlakoztatási helyen keresztül érhetők el.
- Több tároló is csatlakoztathatja ugyanazt a fájlmegosztást, beleértve azokat is, amelyek egy másik replikában, változatban vagy tárolóalkalmazásban találhatók.
- A megosztást csatlakoztató tárolók bármely más tároló vagy metódus által írt fájlokat érhetnek el.
- Egynél több Azure Files-kötet csatlakoztatható egyetlen tárolóban.
Az Azure Files támogatja az SMB (kiszolgálói üzenetblokk) és az NFS (hálózati fájlrendszer) protokollokat is. Az Azure Files-megosztásokat bármelyik protokoll használatával csatlakoztathatja. A környezetben definiált fájlmegosztást a tárfiók fájlmegosztása által használt protokollal kell konfigurálni.
Feljegyzés
Az NFS-megosztások Azure Container Appsben való csatlakoztatásának támogatása előzetes verzióban érhető el.
Ha engedélyezni szeretné az Azure Files-tárolót a tárolóban, az alábbiak szerint kell beállítania a környezetet és a tárolóalkalmazást:
- Hozzon létre egy tárolódefiníciót a Container Apps-környezetben.
- Ha NFS-t használ, a környezetet egyéni virtuális hálózattal kell konfigurálni, a tárfiókot pedig úgy kell konfigurálni, hogy engedélyezze a hozzáférést a virtuális hálózatról. További információ: NFS-fájlmegosztások az Azure Filesban .
- Ha a környezet egyéni virtuális hálózattal van konfigurálva, engedélyeznie kell a 445-ös és a 2049-as portot az alhálózathoz társított hálózati biztonsági csoportban (NSG).
- Típuskötet
AzureFile
(SMB) vagyNfsAzureFile
(NFS) meghatározása egy változatban. - Mennyiségi csatlakoztatás definiálása egy vagy több tárolóban a változatban.
- A használt Azure Files-tárfióknak elérhetőnek kell lennie a tárolóalkalmazás virtuális hálózatáról. További információ: Hozzáférés biztosítása virtuális hálózatról.
- Ha NFS-t használ, a biztonságos átvitelt is le kell tiltania. További információ: NFS-fájlmegosztások az Azure Filesban és az NFS Azure-fájlmegosztás létrehozása szakasz ebben az oktatóanyagban.
Előfeltételek
Követelmény | Utasítások |
---|---|
Azure-fiók | Ha nem rendelkezik ilyen fiókkal, hozzon létre ingyenes fiókot. |
Azure Storage-fiók | Tárfiók létrehozása. |
Azure Container Apps-környezet | Hozzon létre egy tárolóalkalmazás-környezetet. |
Konfiguráció
Amikor konfigurál egy tárolóalkalmazást egy Azure Files-kötet Azure CLI-vel való csatlakoztatásához, yaML-definíciót kell használnia a tárolóalkalmazás létrehozásához vagy frissítéséhez.
Az SMB-fájlmegosztások csatlakoztatásával kapcsolatos részletes oktatóanyagért tekintse meg az Azure Files storage-csatlakoztatásának létrehozását az Azure Container Appsben.
Adjon hozzá egy tárolódefiníciót a Container Apps-környezethez.
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
Cserélje le és
<STORAGE_ACCOUNT_KEY>
írja be<STORAGE_ACCOUNT_NAME>
a tárfiók nevét és kulcsát. Cserélje le<STORAGE_SHARE_NAME>
a tárfiókban lévő fájlmegosztás nevére.Érvényes értékek a következőkre
ReadWrite
ésReadOnly
.--access-mode
Ha frissíteni szeretne egy meglévő tárolóalkalmazást egy fájlmegosztás csatlakoztatásához, exportálja az alkalmazás specifikációját egy app.yaml nevű YAML-fájlba.
az containerapp show -n <APP_NAME> -g <RESOURCE_GROUP_NAME> -o yaml > app.yaml
Végezze el az alábbi módosításokat a tárolóalkalmazás specifikációjához.
- Adjon hozzá egy
volumes
tömböt atemplate
tárolóalkalmazás definíciójának szakaszához, és definiáljon egy kötetet. Ha már rendelkezik tömbbelvolumes
, adjon hozzá egy új kötetet a tömbhöz.- Ez
name
a kötet azonosítója. -
AzureFile
SMB-hezstorageType
vagyNfsAzureFile
NFS-hez. Ennek az értéknek meg kell egyeznie a környezetben definiált tárolási típussal. - Ehhez
storageName
használja a környezetben definiált tároló nevét.
- Ez
- Az Azure Files Storage-hoz csatlakoztatni kívánt sablon minden tárolója esetében adjon meg egy kötetcsatlakoztatást a
volumeMounts
tárolódefiníció tömbjében.- Ez
volumeName
a tömbben definiáltvolumes
név. - A
mountPath
kötet csatlakoztatásának elérési útja a tárolóban.
- Ez
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
- Adjon hozzá egy
Frissítse a tárolóalkalmazást a YAML-fájl használatával.
az containerapp update --name <APP_NAME> --resource-group <RESOURCE_GROUP_NAME> \ --yaml app.yaml
A teljes példáért tekintse meg a YAML specifikációját .
Az alábbi ARM-sablonrészletek bemutatják, hogyan adhat hozzá Azure Files-megosztást egy Container Apps-környezethez, és hogyan használhatja azt egy tárolóalkalmazásban.
storages
Gyermekerőforrás hozzáadása a Container Apps-környezethez.{ "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" } } } ] }
Frissítse a tárolóalkalmazás erőforrását kötet- és kötetcsatlakoztatás hozzáadásához.
{ "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" } ] } } }
- Adjon hozzá egy
volumes
tömböt atemplate
tárolóalkalmazás definíciójának szakaszához, és definiáljon egy kötetet. Ha már rendelkezik tömbbelvolumes
, adjon hozzá egy új kötetet a tömbhöz.- Ez
name
a kötet azonosítója. -
AzureFile
SMB-hezstorageType
vagyNfsAzureFile
NFS-hez. Ennek az értéknek meg kell egyeznie a környezetben definiált tárolási típussal. - Ehhez
storageName
használja a környezetben definiált tároló nevét.
- Ez
- Az Azure Files Storage-hoz csatlakoztatni kívánt sablon minden tárolója esetében adjon meg egy kötetcsatlakoztatást a
volumeMounts
tárolódefiníció tömbjében.- Ez
volumeName
a tömbben definiáltvolumes
név. - A
mountPath
kötet csatlakoztatásának elérési útja a tárolóban.
- Ez
- Adjon hozzá egy
A teljes példáért tekintse meg az ARM-sablon API-specifikációját .
Az Azure Files Storage mennyiségi csatlakoztatásának konfigurálásához az Azure Portalon adjon hozzá egy fájlmegosztást a Container Apps-környezethez, majd adjon hozzá egy kötetcsatlakoztatást a tárolóalkalmazáshoz egy új változat létrehozásával.
Az Azure Portalon navigáljon a Container Apps-környezethez.
A navigációs panel Beállítások csoportjában válassza az Azure Files lehetőséget.
Válassza a Hozzáadás lehetőséget.
A fájlmegosztás által használt protokolltól függően válassza a Kiszolgálói üzenetblokk (SMB) vagy a hálózati fájlrendszer (NFS) lehetőséget.
A Fájlmegosztás hozzáadása környezeti panelen adja meg a következő adatokat:
Válassza a Hozzáadás lehetőséget a környezeti panelről való kilépéshez.
A módosítások véglegesítéséhez válassza a Mentés lehetőséget.
Lépjen a tárolóalkalmazáshoz.
A navigációs panel Alkalmazás területén válassza a Változatok és replikák lehetőséget.
Válassza az Új változat létrehozása lehetőséget.
Az Új változat létrehozása és üzembe helyezése lapon válassza a Kötetek lapot.
Válassza a Hozzáadás lehetőséget.
A Kötet hozzáadása környezeti panelen állítsa be a következőket.
- Kötet típusa: Azure-fájlkötet.
- Név: Adjon meg egy kötetnevet.
- Fájlmegosztás neve: Válassza ki a korábban létrehozott fájlmegosztást.
Válassza a Hozzáadás lehetőséget a környezeti panelről való kilépéshez.
Az új változat létrehozása és ismételt üzembe helyezése lapon válassza a Tároló lapot.
Válassza ki azt a tárolót, amelyhez csatlakoztatni szeretné a kötetet.
A Tárolókörnyezet szerkesztése panelen válassza a Kötet csatlakoztatása lapot.
A Kötet neve területen válassza ki a korábban létrehozott kötetet.
A csatlakoztatási útvonalban adja meg a tároló abszolút elérési útját a kötet csatlakoztatásához.
A módosítások mentéséhez és a környezeti panelről való kilépéshez válassza a Mentés lehetőséget.
Válassza a Létrehozás lehetőséget az új változat létrehozásához.