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.

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.

  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 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) 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. A navigációs panel Beállítások csoportjában válassza az Azure Files 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. A 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 csak olvasási/írási és olvasási értékek.
  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. Lépjen a tárolóalkalmazáshoz.

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

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