Tárolócsatlakozók használata az Azure Container Apps-ben

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.

Megjegyzé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óhoz tartozó tárolás Futó konténer 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 mentésre kerülnek az Azure Files rendszerben. Fájlok írása fájlmegosztásba, hogy az adatokat más rendszerek is elérhetővé tegyék.

Megjegyzés:

Azure Container Apps nem támogatja a fájlmegosztások csatolását Azure NetApp Files-ból vagy 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. Az átmeneti tárolás korlátozódhat egy tárolóra vagy replikára. Az egyes replikák számára elérhető konténer-hatókörű és replika-hatókörű tárolás teljes mennyisége a replikának kiosztott virtuális processzorok teljes számától függ.

vCPUs (virtuális processzor egységek) Teljes ideiglenes 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 konténer fájlrendszer tárolásának a következő jellemzői vannak:

  • A tároló ideiglenes, és eltűnik, amikor a tároló leáll vagy újraindul.
  • Csak az aktuális tárolóban futó folyamatok láthatják a tárolóba írt fájlokat.

Replika hatókörű tárhely

A Kubernetesben az EmptyDir -nek (üres könyvtárnak) megfelelő ideiglenes kötetet csatlakoztathatja. 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 alapú tárolás a következő jellemzőkkel rendelkezik:

  • 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 volument.
  • 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 a változatban egy EmptyDir kötetet. Ezt követően definiáljon egy kötetrögzítést egy vagy több tárolóban a verzióban.

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.
Felügyelt identitás konfigurálása Győződjön meg arról, hogy a Container Apps-környezethez társított felügyelt identitás hozzá van rendelve a megfelelő szerepkörökhöz az Azure Files eléréséhez.

Konfiguráció

Ha a replika hatókörű tárolót a Azure CLI használatával konfigurálja, a tárolóalkalmazás létrehozásához vagy frissítéséhez YAML-definíciót kell használnia.

  1. 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
    
  2. 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 a template tárolóalkalmazás definíciójának szakaszához, és definiáljon egy kötetet. Ha már rendelkezik a volumes tömbbel, adjon hozzá egy új kötetet a tömbhöz.
      • Ez name a kötet azonosítója.
      • Használja EmptyDir a storageType.
    • 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.
      • A volumeName a volumes tömbben definiált név.
      • A mountPath az elérési út a tárolóban a kötet csatlakoztatásához.
    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
    
  3. 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 a template tárolóalkalmazás definíciójának szakaszához, és definiáljon egy kötetet. Ha már rendelkezik a volumes tömbbel, adjon hozzá egy új kötetet a tömbhöz.
    • Ez name a kötet azonosítója.
    • Használja EmptyDir a storageType.
  • 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.
    • A volumeName a volumes tömbben definiált név.
    • A mountPath az elérési út a tárolóban a kötet csatlakoztatásához.

Példa ARM sablonrészlet:

{
  "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 a Azure portál használatával.

  1. A Azure portálon nyissa meg a tárolóalkalmazást.

  2. A bal oldali menüben válassza a Korrektúrakezelés lehetőséget.

  3. Válassza az Új változat létrehozása lehetőséget.

  4. Válassza ki azt a tárolót, amelyhez csatlakoztatni szeretné a kötetet.

  5. A Tárolókörnyezet szerkesztése panelen válassza a Kötet csatlakoztatása lapot.

  6. A Rövid élettartam szakasz alatt hozzon létre egy új kötetet a következő információkkal:

    • Kötet neve: A rövid élettartamú kötet neve.
    • Csatlakoztatási útvonal: A konténerben a kötet csatlakoztatásának abszolút útvonala.
  7. 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.

  8. 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 Files szolgáltatásból kötetként csatlakoztathat egy konténerhez.

Azure Files tárolás 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óba.

Azure Files támogatja az SMB (kiszolgálói üzenetblokk) és az NFS (hálózati fájlrendszer) protokollokat is. A 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.

Az Azure Files tárolás engedélyezéséhez a tárolóban állítsa be a környezetét és a konténeralkalmazást az alábbiak szerint:

A Azure portálon nyissa meg a Container alkalmazást.
A bal oldali navigációs panel Beállítások csoportjában válassza a Storage-csatlakoztatások lehetőséget.

Innen hozzáadhat egy új csatlakoztatást:

  1. Válassza ki a tárolási típust (Azure Fájlmegosztás vagy Azure Blob).
  2. Adja meg a szükséges konfigurációt (tárfiók, megosztás neve, hozzáférési mód).
  3. Mentse a csatlakoztatást.
  4. Hozzon létre és helyezzen üzembe egy új változatot a tárolóalkalmazásban a módosítások alkalmazásához.
  • 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 Azure Files .
  • 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) vagy NfsAzureFile (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.

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 csatlakoztatásához Azure CLI használatával, yaML-definícióval kell létrehoznia vagy frissítenie a tárolóalkalmazást.

Az SMB-fájlmegosztások csatlakoztatásával kapcsolatos részletes oktatóanyagért lásd: Azure Files-tároló csatlakoztatásának létrehozása Azure Container Apps.

  1. 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 a <STORAGE_ACCOUNT_NAME> és a <STORAGE_ACCOUNT_KEY> helyére írja be 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 --access-mode számára ReadWrite és ReadOnly.

  2. 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
    
  3. 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 a template tárolóalkalmazás definíciójának szakaszához, és definiáljon egy kötetet. Ha már rendelkezik a volumes tömbbel, adjon hozzá egy új kötetet a tömbhöz.
      • Ez name a kötet azonosítója.
      • Az SMB-hez használja a storageType-t, az NFS-hez pedig a AzureFile-t. Ennek az értéknek meg kell egyeznie a környezetben definiált tárolási típussal.
      • A storageName esetében használja a környezetben definiált tároló nevét.
      • A mountOptions csatlakoztatási opciók vesszővel elválasztott sztringje. További információért lásd: Az Azure Files-ben a mountOptions beállítások használata.
      • A secrets lista a kötetbe csatlakoztatni kívánt titkos kulcsok listája. További információ: Titkos adatok csatolása egy kötethez.
    • A Azure Files tárolót csatlakoztatni kívánt sablon minden tárolója esetében definiáljon egy kötetcsatlakoztatást a tárolódefiníció volumeMounts tömbjében.
      • A volumeName a volumes tömbben definiált név.
      • A mountPath az elérési út a tárolóban a kötet csatlakoztatásához.
      • Ez subPath a csatlakoztatni kívánt kötet elérési útja. Ha nem adja meg ezt az értéket, a kötetgyökér csatlakoztatva van. További információkért, lásd: (#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
    
  4. 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.

  1. 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"
            }
          }
        }
      ]
    }
    
  2. 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",
                  "subPath": "my-sub-path"
                }
              ]
            }
          ],
          "scale": {
            "minReplicas": 1,
            "maxReplicas": 3
          },
          "volumes": [
            {
              "name": "azure-files-volume",
              "storageType": "AzureFile",
              "storageName": "myazurefiles"
            }
          ]
        }
      }
    }
    
    • Adjon hozzá egy volumes tömböt a template tárolóalkalmazás definíciójának szakaszához, és definiáljon egy kötetet. Ha már rendelkezik a volumes tömbbel, adjon hozzá egy új kötetet a tömbhöz.
      • Ez name a kötet azonosítója.
      • Az SMB-hez használja a storageType-t, az NFS-hez pedig a AzureFile-t. Ennek az értéknek meg kell egyeznie a környezetben definiált tárolási típussal.
      • A storageName esetében használja a környezetben definiált tároló nevét.
      • A mountOptions csatlakoztatási opciók vesszővel elválasztott sztringje. További információért lásd: Az Azure Files-ben a mountOptions beállítások használata.
      • A secrets lista a kötetbe csatlakoztatni kívánt titkos kulcsok listája. További információ: Titkos adatok csatolása egy kötethez.
    • A Azure Files tárolót csatlakoztatni kívánt sablon minden tárolója esetében definiáljon egy kötetcsatlakoztatást a tárolódefiníció volumeMounts tömbjében.
      • A volumeName a volumes tömbben definiált név.
      • A mountPath az elérési út a tárolóban a kötet csatlakoztatásához.
      • A subPath (nem kötelező) a csatlakoztatni kívánt kötet elérési útja. Ha nem adja meg, a kötetgyökér kerül csatlakoztatásra. További információkért, lásd: (#sub-path).

A teljes példáért tekintse meg az ARM-sablon API-specifikációját .

Ha a Azure portálon konfigurál egy kötetcsatlakoztatást Azure Files tárolóhoz, vegyen fel egy fájlmegosztást a Container Apps-környezetbe, majd adjon hozzá egy kötetcsatlakoztatást a tárolóalkalmazáshoz egy új változat létrehozásával.

  1. A Azure portálon lépjen a Container Apps-környezethez.

  2. A navigációs panel Beállítások csoportjában válassza a Kötet csatolásai lehetőséget.

  3. Válassza a Hozzáadás lehetőséget.

  4. 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.

  5. Fájlmegosztás hozzáadása környezeti panelen adja meg a következő adatokat:

    • Név: A fájlmegosztás neve.
    • Tárfiók neve: A fájlmegosztást tartalmazó tárfiók neve.
    • Tárfiók kulcsa: A tárfiók hozzáférési kulcsa.
    • Fájlmegosztás: A fájlmegosztás neve.
    • Hozzáférési mód: A fájlmegosztás hozzáférési módja. Az érvényes értékek: olvasás/írás és csak olvasás.
  6. Válassza a Hozzáadás lehetőséget a környezeti panelről való kilépéshez.

  7. A módosítások véglegesítéséhez válassza a Mentés lehetőséget.

  8. Nyissa meg a tárolóalkalmazást.

  9. A navigációs panel Alkalmazás területén válassza a Változatok és replikák lehetőséget.

  10. Válassza az Új változat létrehozása lehetőséget.

  11. Az Új változat létrehozása és üzembe helyezése lapon válassza a Kötetek lapot.

  12. Válassza a Hozzáadás lehetőséget.

  13. A Kötet hozzáadása panelen állítsa be a következő értékeket.

    • Volume típus: 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.
    • Csatlakoztatási beállítások: Igény szerint adjon meg egy vesszővel tagolt csatlakoztatási sztringet. További információért lásd: Az Azure Files-ben a mountOptions beállítások használata.
  14. Válassza a Hozzáadás lehetőséget a környezeti panelről való kilépéshez.

  15. Az új változat létrehozása és ismételt üzembe helyezése lapon válassza a Tároló lapot.

  16. Válassza ki azt a tárolót, amelyhez csatlakoztatni szeretné a kötetet.

  17. A Tárolókörnyezet szerkesztése panelen válassza a Kötet csatlakoztatása lapot.

  18. A Kötet neve területen válassza ki a korábban létrehozott kötetet.

  19. A csatlakoztatási útvonalban adja meg a tároló abszolút elérési útját a kötet csatlakoztatásához.

  20. Az Részútvonal (nem kötelező) mezőbe írja be a csatolni kívánt kötet elérési útvonalát. Ha nem adja meg ezt az értéket, a kötetgyökér csatlakoztatva van. További információkért, lásd: (#sub-path).

  21. 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.

  22. Válassza a Létrehozás lehetőséget az új változat létrehozásához.

Alútvonal

Ha Azure Files fájlmegosztást csatol, megadhatja a csatolási útvonalat és az almappát is.

  • Csatolási útvonal: Az elérési útvonal a konténerben, ahol a kötetet szeretné csatolni.
  • Rész elérési út: A csatlakoztatni kívánt kötet elérési útja.

Az alútvonal megadása nem kötelező. Ha nem ad meg alelérési útvonalat, a kötetgyökér csatlakoztatva van.

A részelérési útvonal a kötetgyökértől kiinduló relatív útvonal. Ne kezdje az alelérési útvonalat a / taggal. Ha olyan alelérési útvonalat ad meg, amely a következővel /kezdődik, előfordulhat, hogy a tárolóalkalmazás nem indul el. Például my-volume-folder érvényes alútvonal, de /my-volume-folder nem.

Az al elérési út egy mappára vagy egy fájlra hivatkozhat a kötetben.

  • Ha az al elérési út egy mappára hivatkozik, a csatlakoztatási útvonalnak egy üres mappára kell hivatkoznia a tárolóban.

  • Ha az al elérési út egy fájlra hivatkozik, a csatlakoztatási útvonalnak olyan fájlra kell hivatkoznia, amely még nem létezik a tárolóban.

    Tegyük fel például, hogy az alútvonal my-volume-folder/my-volume-file.txt, a csatlakoztatási útvonal pedig az /my-container-folder/my-container-file.txt. A mappának /my-container-folder már léteznie kell a tárolóban, de még nem kell tartalmaznia a fájlt my-container-file.txt.

A rendszer figyelmen kívül hagyja az alútvonalat záró perjeleket.