إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تطبيق الحاوية لديه حق الوصول إلى أنواع مختلفة من التخزين. يمكن لتطبيق واحد الاستفادة من أكثر من نوع واحد من التخزين إذا لزم الأمر.
إشعار
تجنب استخدام أحرف خاصة في أسماء وحدات التخزين لمنع فشل التوزيع. على سبيل المثال، تحتوي وحدة التخزين المسماة 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 للحصول على مثال كامل.
لإنشاء حجم مقلد بنطاق مقلد وركبه في حاوية، قم بنشر نسخة جديدة من تطبيق الحاوية باستخدام بوابة 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 المستخدم متاحا من الشبكة الظاهرية لتطبيق الحاوية. لمزيد من التفاصيل، راجع إنشاء شبكة اتصال ظاهرية.
المتطلبات الأساسية
| المتطلبات | الإرشادات |
|---|---|
| حساب 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-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- أضف صفيفا
حدث تطبيق الحاوية باستخدام ملف 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-path).
-
- أضف صفيفا
راجع مواصفات واجهة برمجة تطبيقات قالب 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-path).
حدد حفظ لحفظ التغييرات والخروج من جزء السياق.
حدد Create لإنشاء المراجعة الجديدة.
المسار الفرعي
عند تركيب مشاركة ملفات من Azure Files، يمكنك تحديد مسار تركيب ومسار فرعي معا.
- مسار التحميل: المسار في الحاوية حيث تريد تحميل وحدة التخزين.
- المسار الفرعي: المسار في وحدة التخزين التي تريد تحميلها.
المسار الفرعي اختياري. إذا لم تحدد مسارا فرعيا، يتم تثبيت جذر الصوت (volume root).
المسار الفرعي هو مسار نسبي من جذر وحدة التخزين. لا تبدأ المسار الفرعي ب /. إذا حددت مسارا فرعيا يبدأ ب /، فقد لا يبدأ تطبيق الحاوية الخاص بك. على سبيل المثال، 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بعد.
النظام يتجاهل أي مسار فرعي يتبع القطع.