استخدام عمليات تحميل التخزين في Azure Container Apps
تطبيق الحاوية لديه حق الوصول إلى أنواع مختلفة من التخزين. يمكن لتطبيق واحد الاستفادة من أكثر من نوع واحد من التخزين إذا لزم الأمر.
إشعار
تجنب استخدام أحرف خاصة في أسماء وحدات التخزين لمنع فشل التوزيع. على سبيل المثال، تحتوي وحدة التخزين المسماة credentials.json
على حرف خاص (.
) ينتج عن ذلك خطأ في النشر.
نوع التخزين | الوصف | استمرار | مثال على الاستخدام |
---|---|---|---|
التخزين على نطاق الحاوية | التخزين المؤقت المتوفر لحاوية قيد التشغيل | تتوفر البيانات حتى يتم إيقاف تشغيل الحاوية | كتابة ذاكرة التخزين المؤقت للتطبيقات المحلية. |
التخزين على نطاق النسخة المتماثلة | التخزين المؤقت لمشاركة الملفات بين الحاويات في نفس النسخة المتماثلة | تتوفر البيانات حتى يتم إيقاف تشغيل النسخة المتماثلة | ملفات سجل كتابة حاوية التطبيق الرئيسية التي تعالجها حاوية sidecar. |
ملفات Azure | التخزين الدائم | البيانات مستمرة في ملفات Azure | كتابة الملفات إلى مشاركة ملف لتسهيل الوصول إلى البيانات بواسطة أنظمة أخرى. |
إشعار
لا تدعم Azure Container Apps تحميل مشاركات الملفات من Azure NetApp Files أو Azure Blob Storage.
التخزين المؤقت
يمكن لتطبيق الحاوية قراءة البيانات المؤقتة وكتابتها في التخزين المؤقت. يمكن تحديد نطاق التخزين المؤقت إلى حاوية أو نسخة متماثلة. يعتمد إجمالي مقدار التخزين على نطاق الحاوية والنسخة المتماثلة المتوفرة لكل نسخة متماثلة على العدد الإجمالي لوحدات المعالجة المركزية الظاهرية المخصصة للنسخة المتماثلة.
وحدات vCPU | إجمالي التخزين المؤقت |
---|---|
0.25 أو أقل | 1 جيجابيت |
0.5 أو أقل | 2 GiB |
1 أو أقل | 4 جيجابيت |
أكثر من 1 | 8 جيجابيت |
التخزين على نطاق الحاوية
يمكن للحاوية الكتابة إلى نظام الملفات الخاص بها.
يحتوي تخزين نظام ملفات الحاوية على الخصائص التالية:
- التخزين مؤقت ويختفي عند إيقاف تشغيل الحاوية أو إعادة تشغيلها.
- الملفات المكتوبة إلى هذا التخزين مرئية فقط للعمليات التي تعمل في الحاوية الحالية.
التخزين على نطاق النسخة المتماثلة
يمكنك تحميل وحدة تخزين مؤقتة سريعة الزوال تعادل EmptyDir (دليل فارغ) في Kubernetes. يتم تحديد نطاق هذا التخزين إلى نسخة متماثلة واحدة. استخدم وحدة EmptyDir
تخزين لمشاركة البيانات بين الحاويات في نفس النسخة المتماثلة.
يحتوي التخزين على نطاق النسخة المتماثلة على الخصائص التالية:
- تستمر الملفات طوال مدة بقاء النسخة المتماثلة.
- إذا تم إعادة تشغيل حاوية في نسخة متماثلة، تبقى الملفات الموجودة في وحدة التخزين.
- يمكن لأي حاويات init أو التطبيق في النسخة المتماثلة تحميل نفس وحدة التخزين.
- يمكن للحاوية تحميل وحدات تخزين متعددة
EmptyDir
.
لتكوين التخزين على نطاق النسخة المتماثلة، حدد أولا وحدة EmptyDir
تخزين في المراجعة. ثم حدد تحميل وحدة تخزين في حاوية واحدة أو أكثر في المراجعة.
المتطلبات الأساسية
المتطلبات | الإرشادات |
---|---|
حساب Azure | إذا لم يكن لديك حساب، فبادر بإنشاء حساب مجانا. |
بيئة Azure Container Apps | إنشاء بيئة تطبيقات الحاوية. |
التكوين
عند تكوين التخزين على نطاق النسخة المتماثلة باستخدام Azure CLI، يجب استخدام تعريف YAML لإنشاء تطبيق الحاوية أو تحديثه.
لتحديث تطبيق حاوية موجود لاستخدام التخزين على نطاق النسخة المتماثلة، قم بتصدير مواصفات التطبيق إلى ملف YAML يسمى app.yaml.
az containerapp show -n <APP_NAME> -g <RESOURCE_GROUP_NAME> -o yaml > app.yaml
قم بإجراء التغييرات التالية على مواصفات تطبيق الحاوية.
- أضف صفيفا
volumes
إلىtemplate
قسم تعريف تطبيق الحاوية الخاص بك وحدد وحدة تخزين. إذا كان لديكvolumes
صفيف بالفعل، أضف وحدة تخزين جديدة إلى الصفيف.-
name
هو معرف وحدة التخزين. - استخدم
EmptyDir
كstorageType
.
-
- لكل حاوية في القالب الذي تريد تحميل وحدة التخزين، حدد تحميل وحدة تخزين في
volumeMounts
صفيف تعريف الحاوية.-
volumeName
هو الاسم المحدد فيvolumes
الصفيف. -
mountPath
هو المسار في الحاوية لتحميل وحدة التخزين.
-
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
- أضف صفيفا
تحديث تطبيق الحاوية باستخدام ملف YAML.
az containerapp update --name <APP_NAME> --resource-group <RESOURCE_GROUP_NAME> \ --yaml app.yaml
راجع مواصفات YAML للحصول على مثال كامل.
لإنشاء وحدة تخزين ذات نطاق نسخة متماثلة وتركيبها في حاوية، قم بإجراء التغييرات التالية على مورد تطبيقات الحاوية في قالب ARM:
- أضف صفيفا
volumes
إلىtemplate
قسم تعريف تطبيق الحاوية الخاص بك وحدد وحدة تخزين. إذا كان لديكvolumes
صفيف بالفعل، أضف وحدة تخزين جديدة إلى الصفيف.-
name
هو معرف وحدة التخزين. - استخدم
EmptyDir
كstorageType
.
-
- لكل حاوية في القالب الذي تريد تحميل وحدة التخزين، حدد تحميل وحدة تخزين في
volumeMounts
صفيف تعريف الحاوية.-
volumeName
هو الاسم المحدد فيvolumes
الصفيف. -
mountPath
هو المسار في الحاوية لتحميل وحدة التخزين.
-
مثال على مقتطف قالب 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"
}
]
}
}
}
راجع مواصفات واجهة برمجة تطبيقات قالب ARM للحصول على مثال كامل.
لإنشاء وحدة تخزين ذات نطاق نسخة متماثلة وتركيبها في حاوية، انشر مراجعة جديدة لتطبيق الحاوية باستخدام مدخل Microsoft Azure.
في مدخل Microsoft Azure، انتقل إلى تطبيق الحاوية.
حدد إدارة المراجعة في القائمة اليمنى.
حدد إنشاء مراجعة جديدة.
حدد الحاوية حيث تريد تحميل وحدة التخزين.
في جزء تحرير سياق حاوية ، حدد علامة التبويب تحميلات وحدة التخزين.
ضمن قسم التخزين المؤقت، أنشئ وحدة تخزين جديدة بالمعلومات التالية.
- اسم وحدة التخزين: اسم وحدة التخزين المؤقتة.
- مسار التحميل: المسار المطلق في الحاوية لتحميل وحدة التخزين.
حدد حفظ لحفظ التغييرات والخروج من جزء السياق.
حدد Create لإنشاء المراجعة الجديدة.
وحدة تخزين ملفات Azure
يمكنك تحميل مشاركة ملف من Azure Files كمستوى تخزين في حاوية.
يحتوي تخزين ملفات Azure على الخصائص التالية:
- يتم الاحتفاظ بالملفات المكتوبة ضمن موقع التحميل إلى مشاركة الملف.
- تتوفر الملفات الموجودة في المشاركة عبر موقع التحميل.
- يمكن للحاويات المتعددة تحميل نفس مشاركة الملف، بما في ذلك تلك الموجودة في نسخة متماثلة أخرى أو مراجعة أو تطبيق حاوية.
- يمكن لجميع الحاويات التي تقوم بتحميل المشاركة الوصول إلى الملفات المكتوبة بواسطة أي حاوية أو أسلوب آخر.
- يمكن تحميل أكثر من وحدة تخزين Azure Files واحدة في حاوية واحدة.
تدعم Azure Files بروتوكولات SMB (Server Message Block) وNFS (نظام ملفات الشبكة). يمكنك تحميل مشاركة ملفات Azure باستخدام أي من البروتوكولين. يجب تكوين مشاركة الملف التي تحددها في البيئة بنفس البروتوكول المستخدم بواسطة مشاركة الملف في حساب التخزين.
إشعار
دعم تحميل مشاركات NFS في Azure Container Apps قيد المعاينة.
لتمكين تخزين ملفات Azure في الحاوية الخاصة بك، تحتاج إلى إعداد البيئة تطبيق الحاوية كما يلي:
- إنشاء تعريف تخزين في بيئة تطبيقات الحاوية.
- إذا كنت تستخدم NFS، يجب تكوين بيئتك باستخدام VNet مخصص ويجب تكوين حساب التخزين للسماح بالوصول من VNet. لمزيد من المعلومات، راجع مشاركات ملفات NFS في ملفات Azure .
- إذا تم تكوين بيئتك باستخدام شبكة ظاهرية مخصصة، يجب السماح بالمنافذ 445 و2049 في مجموعة أمان الشبكة (NSG) المقترنة بالشبكة الفرعية.
- تعريف وحدة تخزين من نوع
AzureFile
(SMB) أوNfsAzureFile
(NFS) في مراجعة. - حدد تحميل وحدة تخزين في حاوية واحدة أو أكثر في المراجعة.
- يجب أن يكون حساب تخزين Azure Files المستخدم متاحا من الشبكة الظاهرية لتطبيق الحاوية. لمزيد من التفاصيل، راجع إنشاء شبكة اتصال ظاهرية.
- إذا كنت تستخدم NFS، يجب عليك أيضا تعطيل النقل الآمن. لمزيد من المعلومات، راجع مشاركات ملفات NFS في ملفات Azure وقسم إنشاء مشاركة ملف NFS Azure في هذا البرنامج التعليمي.
المتطلبات الأساسية
المتطلبات | الإرشادات |
---|---|
حساب Azure | إذا لم يكن لديك حساب، فبادر بإنشاء حساب مجانا. |
حساب Azure Storage | قم بإنشاء حساب تخزين. |
بيئة Azure Container Apps | إنشاء بيئة تطبيقات الحاوية. |
التكوين
عند تكوين تطبيق حاوية لتحميل وحدة تخزين Azure Files باستخدام Azure CLI، يجب استخدام تعريف YAML لإنشاء تطبيق الحاوية أو تحديثه.
للحصول على برنامج تعليمي خطوة بخطوة حول تحميل مشاركة ملف SMB، راجع إنشاء تحميل تخزين ملفات Azure في Azure Container Apps.
أضف تعريف تخزين إلى بيئة Container Apps.
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
استبدل
<STORAGE_ACCOUNT_NAME>
و<STORAGE_ACCOUNT_KEY>
باسم ومفتاح حساب التخزين الخاص بك. استبدل<STORAGE_SHARE_NAME>
باسم مشاركة الملف في حساب التخزين.القيم الصالحة ل
--access-mode
هيReadWrite
وReadOnly
.لتحديث تطبيق حاوية موجود لتحميل مشاركة ملف، قم بتصدير مواصفات التطبيق إلى ملف YAML يسمى app.yaml.
az containerapp show -n <APP_NAME> -g <RESOURCE_GROUP_NAME> -o yaml > app.yaml
قم بإجراء التغييرات التالية على مواصفات تطبيق الحاوية.
- أضف صفيفا
volumes
إلىtemplate
قسم تعريف تطبيق الحاوية الخاص بك وحدد وحدة تخزين. إذا كان لديكvolumes
صفيف بالفعل، أضف وحدة تخزين جديدة إلى الصفيف.-
name
هو معرف وحدة التخزين. - بالنسبة إلى
storageType
، استخدمAzureFile
ل SMB أوNfsAzureFile
ل NFS. يجب أن تتطابق هذه القيمة مع نوع التخزين الذي قمت بتعريفه في البيئة. - بالنسبة إلى
storageName
، استخدم اسم التخزين الذي قمت بتعريفه في البيئة.
-
- لكل حاوية في القالب الذي تريد تحميل تخزين ملفات Azure، حدد تحميل وحدة تخزين في
volumeMounts
صفيف تعريف الحاوية.-
volumeName
هو الاسم المحدد فيvolumes
الصفيف. -
mountPath
هو المسار في الحاوية لتحميل وحدة التخزين.
-
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
- أضف صفيفا
تحديث تطبيق الحاوية باستخدام ملف YAML.
az containerapp update --name <APP_NAME> --resource-group <RESOURCE_GROUP_NAME> \ --yaml app.yaml
راجع مواصفات YAML للحصول على مثال كامل.
توضح قصاصات قالب ARM التالية كيفية إضافة مشاركة Azure Files إلى بيئة Container Apps واستخدامها في تطبيق حاوية.
storages
إضافة مورد تابع إلى بيئة 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" } } } ] }
تحديث مورد تطبيق الحاوية لإضافة وحدة تخزين وتركيب وحدة تخزين.
{ "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" } ] } } }
- أضف صفيفا
volumes
إلىtemplate
قسم تعريف تطبيق الحاوية الخاص بك وحدد وحدة تخزين. إذا كان لديكvolumes
صفيف بالفعل، أضف وحدة تخزين جديدة إلى الصفيف.-
name
هو معرف وحدة التخزين. - بالنسبة إلى
storageType
، استخدمAzureFile
ل SMB أوNfsAzureFile
ل NFS. يجب أن تتطابق هذه القيمة مع نوع التخزين الذي قمت بتعريفه في البيئة. - بالنسبة إلى
storageName
، استخدم اسم التخزين الذي قمت بتعريفه في البيئة.
-
- لكل حاوية في القالب الذي تريد تحميل تخزين ملفات Azure، حدد تحميل وحدة تخزين في
volumeMounts
صفيف تعريف الحاوية.-
volumeName
هو الاسم المحدد فيvolumes
الصفيف. -
mountPath
هو المسار في الحاوية لتحميل وحدة التخزين.
-
- أضف صفيفا
راجع مواصفات واجهة برمجة تطبيقات قالب ARM للحصول على مثال كامل.
لتكوين تحميل وحدة تخزين لتخزين ملفات Azure في مدخل Microsoft Azure، أضف مشاركة ملف إلى بيئة Container Apps ثم أضف تحميل وحدة تخزين إلى تطبيق الحاوية الخاص بك عن طريق إنشاء مراجعة جديدة.
في مدخل Microsoft Azure، انتقل إلى بيئة Container Apps.
في جزء التنقل، ضمن Settings، حدد Azure Files.
حدد إضافة.
حدد Server Message Block (SMB) أو Network File System (NFS)، اعتمادا على البروتوكول المستخدم من قبل مشاركة الملف.
في جزء إضافة سياق مشاركة ملف، أدخل المعلومات التالية:
حدد إضافة للخروج من جزء السياق.
حدد حفظ لتثبيت التغييرات.
انتقل إلى تطبيق الحاوية.
في جزء التنقل، ضمن Application، حدد Revisions and replicas.
حدد إنشاء مراجعة جديدة.
في صفحة إنشاء ونشر مراجعة جديدة، حدد علامة التبويب وحدات التخزين .
حدد إضافة.
في جزء إضافة سياق وحدة تخزين ، قم بتعيين ما يلي.
- نوع وحدة التخزين: وحدة تخزين ملف Azure.
- الاسم: أدخل اسم وحدة تخزين.
- اسم مشاركة الملف: حدد مشاركة الملف التي قمت بإنشائها مسبقا.
حدد إضافة للخروج من جزء السياق.
في صفحة Create and reploy new revision ، حدد علامة التبويب Container .
حدد الحاوية التي تريد تحميل وحدة التخزين فيها.
في جزء تحرير سياق حاوية ، حدد علامة التبويب تحميلات وحدة التخزين.
ضمن اسم وحدة التخزين، حدد وحدة التخزين التي قمت بإنشائها مسبقا.
في مسار التحميل، أدخل المسار المطلق في الحاوية لتحميل وحدة التخزين.
حدد حفظ لحفظ التغييرات والخروج من جزء السياق.
حدد Create لإنشاء المراجعة الجديدة.