Megosztás a következőn keresztül:


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.

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 egy oldalkocsis tároló által feldolgozott naplófájlokat ír.
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.

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árterület teljes mennyisége a replikához lefoglalt virtuális processzorok teljes mennyiségé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.

  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 tömbbel volumes , 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.
      • Ez volumeName a tömbben definiált volumes név.
      • A mountPath kötet csatlakoztatásának elérési útja a tárolóban.
    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 tömbbel volumes , 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.
    • Ez volumeName a tömbben definiált volumes név.
    • A mountPath kötet csatlakoztatásának elérési útja a tárolóban.

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.

  1. Az Azure Portalon keresse 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ú 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.
  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 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 SMB és NFS protokollokat is támogat. 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 virtuális hálózatról való hozzáférést. 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) 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.
    • 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.

  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 é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 és ReadOnly.--access-mode

  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 tömbbel volumes , adjon hozzá egy új kötetet a tömbhöz.
      • Ez name a kötet azonosítója.
      • AzureFile SMB-hez storageTypevagy NfsAzureFile NFS-hez. Ennek az értéknek meg kell egyeznie a környezetben definiált tárolási típussal.
      • Ehhez storageNamehasználja a környezetben definiált tároló nevét.
    • 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ált volumes név.
      • A mountPath kötet csatlakoztatásának elérési útja a tárolóban.
    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
    
  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"
                }
              ]
            }
          ],
          "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 tömbbel volumes , adjon hozzá egy új kötetet a tömbhöz.
      • Ez name a kötet azonosítója.
      • AzureFile SMB-hez storageTypevagy NfsAzureFile NFS-hez. Ennek az értéknek meg kell egyeznie a környezetben definiált tárolási típussal.
      • Ehhez storageNamehasználja a környezetben definiált tároló nevét.
    • 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ált volumes név.
      • A mountPath kötet csatlakoztatásának elérési útja a tárolóban.

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.

  1. Az Azure Portalon navigáljon a Container Apps-környezethez.

  2. Válassza ki az Azure Filest a bal oldali menüből.

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

  4. A Fájlmegosztás hozzáadása helyi menüben adja meg a következő információkat:

    • 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 az "Olvasás/Írás" és a "Csak olvasás".
  5. Válassza a Hozzáadás lehetőséget a környezeti panelről való kilépéshez.

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

  7. Lépjen a tárolóalkalmazáshoz.

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

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

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

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

  12. A Fájlmegosztások szakaszban hozzon létre egy új kötetet az alábbi információkkal.

    • Fájlmegosztás neve: A hozzáadott fájlmegosztás.
    • Csatlakoztatási útvonal: A tároló abszolút elérési útja a kötet csatlakoztatásához.
  13. 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.

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