إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تطبيق الحاوية لديه حق الوصول إلى أنواع مختلفة من التخزين. يمكن لتطبيق واحد الاستفادة من أكثر من نوع واحد من التخزين إذا لزم الأمر.
إشعار
تجنب استخدام أحرف خاصة في أسماء وحدات التخزين لمنع فشل التوزيع. على سبيل المثال، تحتوي وحدة التخزين المسماة credentials.json على حرف خاص (.) ينتج عن ذلك خطأ في النشر.
| نوع التخزين | الوصف | استمرار | مثال على الاستخدام |
|---|---|---|---|
| التخزين على نطاق الحاوية | التخزين المؤقت المتوفر لحاوية قيد التشغيل | تتوفر البيانات حتى يتم إيقاف تشغيل الحاوية | كتابة ذاكرة التخزين المؤقت للتطبيقات المحلية. |
| التخزين على نطاق النسخة المتماثلة | التخزين المؤقت لمشاركة الملفات بين الحاويات في نفس النسخة المتماثلة | تتوفر البيانات حتى يتم إيقاف تشغيل النسخة المتماثلة | ملفات سجل كتابة حاوية التطبيق الرئيسية التي تعالجها حاوية sidecar. |
| ملفات Azure | التخزين الدائم | البيانات مستمرة في ملفات Azure | كتابة الملفات إلى مشاركة ملف لتسهيل الوصول إلى البيانات بواسطة أنظمة أخرى. |
إشعار
لا تدعم Azure Container Apps تحميل مشاركات الملفات من Azure NetApp Files أو Azure Blob Storage.
التخزين المؤقت
يمكن لتطبيق الحاوية قراءة البيانات المؤقتة وكتابتها في التخزين المؤقت. يمكن تحديد نطاق التخزين المؤقت إلى حاوية أو نسخة متماثلة. يعتمد إجمالي مقدار التخزين على نطاق الحاوية والنسخة المتماثلة المتوفرة لكل نسخة متماثلة على العدد الإجمالي لوحدات المعالجة المركزية الظاهرية المخصصة للنسخة المتماثلة.
| وحدات vCPU | إجمالي التخزين المؤقت |
|---|---|
| 0.25 أو أقل | 1 جيجابيت |
| 0.5 أو أقل | 2 جيبي بايت |
| 1 أو أقل | 4 جيجابيت |
| أكثر من 1 | 8 جيجابيت |
التخزين على نطاق الحاوية
يمكن للحاوية الكتابة إلى نظام الملفات الخاص بها.
يحتوي تخزين نظام ملفات الحاوية على الخصائص التالية:
- التخزين مؤقت ويختفي عند إيقاف تشغيل الحاوية أو إعادة تشغيلها.
- الملفات المكتوبة إلى هذا التخزين مرئية فقط للعمليات التي تعمل في الحاوية الحالية.
التخزين على نطاق النسخة المتماثلة
يمكنك تحميل وحدة تخزين مؤقتة سريعة الزوال تعادل EmptyDir (دليل فارغ) في Kubernetes. يتم تحديد نطاق هذا التخزين إلى نسخة متماثلة واحدة. استخدم وحدة EmptyDir تخزين لمشاركة البيانات بين الحاويات في نفس النسخة المتماثلة.
يحتوي التخزين على نطاق النسخة المتماثلة على الخصائص التالية:
- تستمر الملفات طوال مدة بقاء النسخة المتماثلة.
- إذا تم إعادة تشغيل حاوية في نسخة متماثلة، تبقى الملفات الموجودة في وحدة التخزين.
- يمكن لأي حاويات init أو التطبيق في النسخة المتماثلة تحميل نفس وحدة التخزين.
- يمكن للحاوية تحميل وحدات تخزين متعددة
EmptyDir.
لتكوين التخزين على نطاق النسخة المتماثلة، حدد أولا وحدة EmptyDir تخزين في المراجعة. ثم حدد تحميل وحدة تخزين في حاوية واحدة أو أكثر في المراجعة.
المتطلبات الأساسية
| المتطلبات | الإرشادات |
|---|---|
| حساب Azure | إذا لم يكن لديك حساب، فبادر بإنشاء حساب مجانا. |
| بيئة Azure Container Apps | إنشاء بيئة تطبيقات الحاوية. |
| تكوين الهوية المدارة | تأكد من أن الهوية المدارة المرتبطة ببيئة تطبيقات الحاويات الخاصة بك تم تعيينها للأدوار المناسبة للوصول إلى ملفات Azure. |
التكوين
عند تكوين التخزين على نطاق النسخة المتماثلة باستخدام 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 باستخدام أي من البروتوكولين. يجب تكوين مشاركة الملف التي تحددها في البيئة بنفس البروتوكول المستخدم بواسطة مشاركة الملف في حساب التخزين.
لتمكين تخزين ملفات Azure في الحاوية الخاصة بك، تحتاج إلى إعداد البيئة تطبيق الحاوية كما يلي:
- إنشاء تعريف تخزين في بيئة تطبيقات الحاوية.
- إذا كنت تستخدم NFS، يجب تكوين بيئتك باستخدام VNet مخصص ويجب تكوين حساب التخزين للسماح بالوصول من VNet. لمزيد من المعلومات، راجع مشاركات ملفات NFS في ملفات Azure .
- إذا تم تكوين بيئتك باستخدام شبكة ظاهرية مخصصة، يجب السماح بالمنافذ 445 و2049 في مجموعة أمان الشبكة (NSG) المقترنة بالشبكة الفرعية.
- تعريف وحدة تخزين من نوع
AzureFile(SMB) أوNfsAzureFile(NFS) في مراجعة. - حدد تحميل وحدة تخزين في حاوية واحدة أو أكثر في المراجعة.
- يجب أن يكون حساب تخزين Azure Files المستخدم متاحا من الشبكة الظاهرية لتطبيق الحاوية. لمزيد من التفاصيل، راجع إنشاء شبكة اتصال ظاهرية.
- إذا كنت تستخدم NFS، يجب عليك أيضا تعطيل النقل الآمن. لمزيد من المعلومات، راجع مشاركات ملفات 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، استخدم اسم التخزين الذي قمت بتعريفه في البيئة. -
mountOptionsهو سلسلة مفصولة بفواصل من خيارات التحميل. لمزيد من المعلومات، راجع استخدام إعدادات mountOptions في Azure Files. -
secretsالقائمة هي قائمة من الأسرار لتحميلها في وحدة التخزين. لمزيد من المعلومات، راجع إدخال البيانات السرية في وحدة تخزين.
-
- لكل حاوية في القالب الذي تريد تحميل تخزين ملفات Azure، حدد تحميل وحدة تخزين في
volumeMountsصفيف تعريف الحاوية.-
volumeNameهو الاسم المحدد فيvolumesالصفيف. -
mountPathهو المسار في الحاوية لتحميل وحدة التخزين. -
subPathهو المسار في وحدة التخزين لتحميل. إذا لم يتم تحديده، يتم تحميل جذر وحدة التخزين. لمزيد من المعلومات، راجع (مسار #sub).
-
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- أضف صفيفا
تحديث تطبيق الحاوية باستخدام ملف 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", "subPath": "my-sub-path" } ] } ], "scale": { "minReplicas": 1, "maxReplicas": 3 }, "volumes": [ { "name": "azure-files-volume", "storageType": "AzureFile", "storageName": "myazurefiles" } ] } } }- أضف صفيفا
volumesإلىtemplateقسم تعريف تطبيق الحاوية الخاص بك وحدد وحدة تخزين. إذا كان لديكvolumesصفيف بالفعل، أضف وحدة تخزين جديدة إلى الصفيف.-
nameهو معرف وحدة التخزين. - بالنسبة إلى
storageType، استخدمAzureFileل SMB أوNfsAzureFileل NFS. يجب أن تتطابق هذه القيمة مع نوع التخزين الذي قمت بتعريفه في البيئة. - بالنسبة إلى
storageName، استخدم اسم التخزين الذي قمت بتعريفه في البيئة. -
mountOptionsهو سلسلة مفصولة بفواصل من خيارات التحميل. لمزيد من المعلومات، راجع استخدام إعدادات mountOptions في Azure Files. -
secretsالقائمة هي قائمة من الأسرار لتحميلها في وحدة التخزين. لمزيد من المعلومات، راجع إدخال البيانات السرية في وحدة تخزين.
-
- لكل حاوية في القالب الذي تريد تحميل تخزين ملفات Azure، حدد تحميل وحدة تخزين في
volumeMountsصفيف تعريف الحاوية.-
volumeNameهو الاسم المحدد فيvolumesالصفيف. -
mountPathهو المسار في الحاوية لتحميل وحدة التخزين. - (
subPathاختياري) هو المسار في وحدة التخزين لتحميل. إذا لم يتم تحديده، يتم تحميل جذر وحدة التخزين. لمزيد من المعلومات، راجع (مسار #sub).
-
- أضف صفيفا
راجع مواصفات واجهة برمجة تطبيقات قالب 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.
- الاسم: أدخل اسم وحدة تخزين.
- اسم مشاركة الملف: حدد مشاركة الملف التي قمت بإنشائها مسبقا.
- خيارات التحميل: اختياريا، أدخل سلسلة مفصولة بفواصل من خيارات التحميل. لمزيد من المعلومات، راجع استخدام إعدادات mountOptions في Azure Files.
حدد إضافة للخروج من جزء السياق.
في صفحة Create and reploy new revision ، حدد علامة التبويب Container .
حدد الحاوية التي تريد تحميل وحدة التخزين فيها.
في جزء تحرير سياق حاوية ، حدد علامة التبويب تحميلات وحدة التخزين.
ضمن اسم وحدة التخزين، حدد وحدة التخزين التي قمت بإنشائها مسبقا.
في مسار التحميل، أدخل المسار المطلق في الحاوية لتحميل وحدة التخزين.
في المسار الفرعي (اختياري) ، أدخل المسار في وحدة التخزين المراد تحميلها. إذا لم يتم تحديده، يتم تحميل جذر وحدة التخزين. لمزيد من المعلومات، راجع (مسار #sub).
حدد حفظ لحفظ التغييرات والخروج من جزء السياق.
حدد Create لإنشاء المراجعة الجديدة.
المسار الفرعي
عند تحميل مشاركة ملف من Azure Files، بالإضافة إلى مسار التحميل، يمكنك أيضا تحديد مسار فرعي.
- مسار التحميل: المسار في الحاوية حيث تريد تحميل وحدة التخزين.
- المسار الفرعي: المسار في وحدة التخزين التي تريد تحميلها.
المسار الفرعي اختياري. إذا لم يتم تحديده، يتم تحميل جذر وحدة التخزين.
المسار الفرعي هو مسار نسبي من جذر وحدة التخزين. يجب ألا يبدأ المسار الفرعي ب /. قد يؤدي تحديد مسار فرعي يبدأ ب / إلى منع بدء تشغيل تطبيق الحاوية. على سبيل المثال، my-volume-folder هو مسار فرعي صالح، حيث /my-volume-folder لا يكون.
يمكن أن يشير المسار الفرعي إما إلى مجلد أو ملف في وحدة التخزين.
إذا كان المسار الفرعي يشير إلى مجلد، يجب أن يشير مسار التحميل إلى مجلد فارغ في الحاوية.
إذا كان المسار الفرعي يشير إلى ملف، يجب أن يشير مسار التحميل إلى ملف غير موجود بالفعل في الحاوية.
على سبيل المثال، افترض أن المسار الفرعي هو
my-volume-folder/my-volume-file.txt، ومسار التحميل هو/my-container-folder/my-container-file. يجب أن يكون المجلد/my-container-folderموجودا بالفعل في الحاوية ولكن يجب ألا يحتوي بعد على الملفmy-container-file.txt.
يتم تجاهل أي شرطة مائلة لاحقة للمسار الفرعي.