إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تدير Azure Container Apps تفاصيل Kubernetes وتنسيق الحاوية نيابة عنك. يمكن للحاويات في Azure Container Apps استخدام أي وقت تشغيل أو لغة برمجة أو مكدس تطوير من اختيارك.
تدعم Azure Container Apps:
- أي صورة حاوية x86-64 (
linux/amd64) مستندة إلى Linux - حاويات من أي سجل حاويات عام أو خاص
- Optional sidecar and init containers
تتضمن الميزات أيضا:
- تستخدم
templateالتطبيقات قسم التكوين لتعريف صورة الحاوية والإعدادات الأخرى. تؤدي التغييرات فيtemplateقسم التكوين إلى مراجعة تطبيق حاوية جديدة. - إذا تعطل الحاوية، يتم إعادة تشغيلها تلقائياً.
تتضمن ميزات الوظائف ما يلي:
- تستخدم
templateعمليات تنفيذ المهام قسم التكوين لتعريف صورة الحاوية والإعدادات الأخرى عند بدء كل تنفيذ. - إذا خرجت حاوية برمز خروج غير صفري، يتم وضع علامة على تنفيذ المهمة على أنه فاشل. يمكنك تكوين مهمة لإعادة محاولة عمليات التنفيذ الفاشلة.
Configuration
تحتوي معظم تطبيقات الحاويات على حاوية واحدة. في السيناريوهات المتقدمة، يمكن أن يحتوي التطبيق أيضا على حاويات sidecar و init. في تعريف تطبيق الحاوية، يتم سرد التطبيق الرئيسي وحاويات sidecar الخاصة به في containers الصفيف في properties.template القسم ، ويتم سرد حاويات init في initContainers الصفيف. يعرض المقتطف التالي خيارات التكوين المتوفرة عند إعداد حاويات التطبيق.
{
"properties": {
"template": {
"containers": [
{
"name": "main",
"image": "[parameters('container_image')]",
"env": [
{
"name": "HTTP_PORT",
"value": "80"
},
{
"name": "SECRET_VAL",
"secretRef": "mysecret"
}
],
"resources": {
"cpu": 0.5,
"memory": "1Gi"
},
"volumeMounts": [
{
"mountPath": "/appsettings",
"volumeName": "appsettings-volume"
}
],
"probes": [
{
"type": "liveness",
"httpGet": {
"path": "/health",
"port": 8080,
"httpHeaders": [
{
"name": "Custom-Header",
"value": "liveness probe"
}
]
},
"initialDelaySeconds": 7,
"periodSeconds": 3
},
{
"type": "readiness",
"tcpSocket": {
"port": 8081
},
"initialDelaySeconds": 10,
"periodSeconds": 3
},
{
"type": "startup",
"httpGet": {
"path": "/startup",
"port": 8080,
"httpHeaders": [
{
"name": "Custom-Header",
"value": "startup probe"
}
]
},
"initialDelaySeconds": 3,
"periodSeconds": 3
}
]
}
]
},
"initContainers": [
{
"name": "init",
"image": "[parameters('init_container_image')]",
"resources": {
"cpu": 0.25,
"memory": "0.5Gi"
},
"volumeMounts": [
{
"mountPath": "/appsettings",
"volumeName": "appsettings-volume"
}
]
}
]
...
}
...
}
| Setting | Description | Remarks |
|---|---|---|
image |
اسم صورة الحاوية لتطبيق الحاوية. | تأخذ هذه القيمة شكل repository/<IMAGE_NAME>:<TAG>. تجنب استخدام علامات ثابتة مثل latest لصور الحاوية. يمكن أن يؤدي استخدام العلامات الثابتة إلى مشاكل في التخزين المؤقت ويمكن أن يجعل من الصعب استكشاف أخطاء التطبيق وإصلاحها. بدلا من ذلك، استخدم علامات فريدة لكل عملية نشر، مثل تجزئة Git أو التاريخ والوقت لضمان تعقب التحديثات ونشرها بشكل صحيح. |
name |
اسم مألوف للحاوية. | يستخدم في إعداد التقارير وتحديد الهوية. |
command |
أمر بدء تشغيل الحاوية. | Equivalent to Docker's entrypoint field. |
args |
بدء تشغيل وسيطات الأمر. | يتم ربط الإدخالات في الصفيف معاً لإنشاء قائمة معلمات لتمريرها إلى أمر بدء التشغيل. |
env |
صفيف من أزواج الاسم/القيمة التي تحدد متغيرات البيئة. | استخدم secretRef بدلا من value الحقل عند الإشارة إلى سر. |
resources.cpu |
عدد وحدات المعالجة المركزية المخصصة للحاوية. | راجع متطلبات تخصيص وحدة المعالجة المركزية الظاهرية والذاكرة |
resources.memory |
مقدار ذاكرة الوصول العشوائي المخصصة للحاوية. | راجع متطلبات تخصيص وحدة المعالجة المركزية الظاهرية والذاكرة |
volumeMounts |
صفيف من تعريفات تحميل وحدة التخزين. | يمكنك تعريف وحدات تخزين مؤقتة أو دائمة للحاوية الخاصة بك. لمزيد من المعلومات حول وحدات التخزين، راجع استخدام عمليات تحميل التخزين في Azure Container Apps. |
probes |
صفيف من تحقيقات السلامة الممكنة في الحاوية. | لمزيد من المعلومات حول إعدادات المجسات، راجع تحقيقات الصحة في Azure Container Apps. |
متطلبات تخصيص وحدة المعالجة المركزية الظاهرية والذاكرة
عند استخدام خطة الاستهلاك، يجب أن يضيف إجمالي وحدة المعالجة المركزية والذاكرة المخصصة لجميع الحاويات في تطبيق الحاوية ما يصل إلى إحدى المجموعات التالية.
| vCPUs (cores) | Memory |
|---|---|
0.25 |
0.5Gi |
0.5 |
1.0Gi |
0.75 |
1.5Gi |
1.0 |
2.0Gi |
1.25 |
2.5Gi |
1.5 |
3.0Gi |
1.75 |
3.5Gi |
2.0 |
4.0Gi |
2.25 |
4.5Gi |
2.5 |
5.0Gi |
2.75 |
5.5Gi |
3.0 |
6.0Gi |
3.25 |
6.5Gi |
3.5 |
7.0Gi |
3.75 |
7.5Gi |
4.0 |
8.0Gi |
Note
Apps using the Consumption plan in a Consumption only environment are limited to a maximum of 2 cores and 4Gi of memory.
Multiple containers
في السيناريوهات المتقدمة، يمكنك تشغيل حاويات متعددة في تطبيق حاوية واحد. استخدم هذا النمط فقط في حالات محددة حيث تقترن حاوياتك بإحكام.
بالنسبة لمعظم سيناريوهات الخدمات المصغرة، فإن أفضل الممارسات هي نشر كل خدمة كتطبيق حاوية منفصل.
Multiple containers in the same container app share hard disk and network resources and experience the same application lifecycle.
There are two ways to run additional containers in a container app: sidecar containers and init containers.
Sidecar containers
You can define multiple containers in a single container app to implement the sidecar pattern.
تتضمن أمثلة حاويات sidecar ما يلي:
An agent that reads logs from the primary app container on a shared volume and forwards them to a logging service.
عملية خلفية تقوم بتحديث ذاكرة التخزين المؤقت المستخدمة بواسطة حاوية التطبيق الأساسية في وحدة تخزين مشتركة.
هذه السيناريوهات هي أمثلة، ولا تمثل الطرق الوحيدة التي يمكنك من خلالها تنفيذ sidecar.
لتشغيل حاويات متعددة في تطبيق حاوية، أضف أكثر من حاوية واحدة في containers صفيف قالب تطبيق الحاوية.
Init containers
You can define one or more init containers in a container app. يتم تشغيل حاويات Init قبل حاوية التطبيق الأساسية وتستخدم لتنفيذ مهام التهيئة مثل تنزيل البيانات أو إعداد البيئة.
يتم تعريف حاويات Init في initContainers صفيف قالب تطبيق الحاوية. يتم تشغيل الحاويات بالترتيب الذي تم تعريفها به في الصفيف ويجب إكمالها بنجاح قبل بدء تشغيل حاوية التطبيق الأساسي.
Note
Init containers in apps using the Dedicated plan or running in a Consumption only environment can't access managed identity at run time.
Container registries
يمكنك نشر الصور المستضافة على السجلات الخاصة عن طريق توفير بيانات الاعتماد في تكوين Container Apps.
لاستخدام سجل حاوية، يمكنك تعريف السجل في registries الصفيف في properties.configuration قسم من قالب مورد تطبيق الحاوية.
passwordSecretRef يعرف الحقل اسم السر في اسم الصفيفsecrets حيث قمت بتعريف كلمة المرور.
{
...
"registries": [{
"server": "docker.io",
"username": "my-registry-user-name",
"passwordSecretRef": "my-password-secret-name"
}]
}
يتم استخدام بيانات الاعتماد المحفوظة لسحب صورة حاوية من السجل الخاص عند نشر تطبيقك.
يوضح المثال التالي كيفية تكوين بيانات اعتماد Azure Container Registry في تطبيق حاوية.
{
...
"configuration": {
"secrets": [
{
"name": "docker-hub-password",
"value": "my-docker-hub-password"
}
],
...
"registries": [
{
"server": "docker.io",
"username": "someuser",
"passwordSecretRef": "docker-hub-password"
}
]
}
}
Note
Docker Hub limits the number of Docker image downloads. عند الوصول إلى الحد الأقصى، تفشل الحاويات في تطبيقك في البدء. استخدم سجلا بحدود كافية، مثل Azure Container Registry لتجنب هذه المشكلة.
الهوية المدارة باستخدام Azure Container Registry
يمكنك استخدام هوية مدارة من Azure للمصادقة باستخدام Azure Container Registry بدلا من استخدام اسم مستخدم وكلمة مرور. لمزيد من المعلومات، راجع الهويات المدارة في Azure Container Apps.
لاستخدام الهوية المدارة مع السجل، يجب تمكين الهوية في التطبيق ويجب تعيين acrPull دور لها في السجل. لتكوين السجل، استخدم معرف مورد الهوية المدارة لهوية معينة من قبل المستخدم، أو system للهوية المعينة من قبل النظام في identity خاصية السجل. لا تقم بتكوين اسم مستخدم وكلمة مرور عند استخدام الهوية المدارة.
{
"identity": {
"type": "SystemAssigned,UserAssigned",
"userAssignedIdentities": {
"<IDENTITY1_RESOURCE_ID>": {}
}
}
"properties": {
"configuration": {
"registries": [
{
"server": "myacr1.azurecr.io",
"identity": "<IDENTITY1_RESOURCE_ID>"
},
{
"server": "myacr2.azurecr.io",
"identity": "system"
}]
}
...
}
}
لمزيد من المعلومات حول تكوين الهويات المعينة من قبل المستخدم، راجع إضافة هوية معينة من قبل المستخدم.
Limitations
Azure Container Apps لها القيود التالية:
Privileged containers: Azure Container Apps doesn't allow privileged containers mode with host-level access.
Operating system: Linux-based (
linux/amd64) container images are required.الحد الأقصى لحجم الصورة:
- يدعم ملف تعريف حمل العمل الاستهلاك صور الحاوية التي يصل إجماليها إلى 8 غيغابايت لكل تطبيق أو نسخة متماثلة للوظيفة.
- تدعم ملفات تعريف حمل العمل المخصصة صور حاوية أكبر. نظرا لأن ملف تعريف حمل العمل المخصص يمكنه تشغيل تطبيقات أو مهام متعددة، تشترك صور حاوية متعددة في مساحة القرص المتوفرة. يختلف حجم الصورة المدعومة الفعلي استنادا إلى الموارد التي تستهلكها التطبيقات والوظائف الأخرى.