مشاركة عبر


توفير شبكة ظاهرية لبيئة Azure Container Apps

يوضح لك المثال التالي كيفية إنشاء بيئة Container Apps في شبكة ظاهرية موجودة (VNet).

تَسجيل الدخول إلى مدخل Microsoft Azure.

إنشاء تطبيق حاويات

لإنشاء تطبيق الحاوية، ابدأ من الصفحة الرئيسية لمدخل Microsoft Azure.

  1. ابحث عن Container Apps في شريط البحث العلوي.
  2. حدد Container Apps في نتائج البحث.
  3. حدد زر إنشاء.

علامة تبويبBasics

في علامة التبويب أساسيات، قم بالإجراءات التالية.

  1. أدخل القيم التالية في قسم Project Details.

    الإعدادات الإجراء
    الاشتراك حدد اشتراك Azure الخاص بك.
    مجموعة الموارد حدد Create new وأدخل my-container-apps.
    اسم تَطبيق الحاوية أدخل my-container-app.
    مصدر التوزيع حدد صورة الحاوية.

إنشاء بيئة

بعد ذلك، إنشاء بيئة لتطبيق الحاوية.

  1. حدد المنطقة المناسبة.

    الإعدادات القيمة‬
    المنطقة حدد Central US.
  2. في الحقل Create Container Apps environment، حدد الرابط Create new.

  3. في صفحة Create Container Apps environment في علامة التبويب Basics ، أدخل القيم التالية:

    الإعدادات القيمة‬
    اسم البيئة قم بإدخال my-environment.
    نوع البيئة حدد ملفات تعريف حمل العمل.
    التكرار في المنطقة حدد Disabled
  4. حدد علامة التبويب مراقبة لإنشاء مساحة عمل Log Analytics.

  5. حدد Azure Log Analytics كوجهة السجلات.

  6. حدد الرابط Create new في حقل مساحة عمل سجل التحليلات وأدخل القيم التالية.

    الإعدادات القيمة‬
    الاسم أدخل my-container-apps-logs.

    يتم ملء حقل الموقع مسبقا مع وسط الولايات المتحدة نيابة عنك.

  7. حدد موافق.

لديك أيضا خيار نشر DNS خاص لبيئة تطبيقات الحاوية الخاصة بك. لمزيد من المعلومات، راجع إنشاء وتكوين منطقة Azure Private DNS.

إنشاء شبكة ظاهرية

إشعار

لاستخدام VNet مع تطبيقات الحاويات، يجب أن يحتوي VNet على شبكة فرعية مخصصة بنطاق CIDR أكبر /27 عند استخدام بيئة ملفات تعريف عبء العمل الافتراضية، أو نطاق CIDR أكبر /23 أو أكثر عند استخدام بيئة الاستهلاك القديمة فقط. لمعرفة المزيد حول تغيير حجم الشبكة الفرعية، راجع نظرة عامة على بنية الشبكة.

  1. حدد علامة التبويب Networking

  2. حدد نعم بجوار استخدام الشبكة الظاهرية الخاصة بك.

  3. بجوار مربع Virtual network، حدد الارتباط Create new وأدخل القيمة التالية.

    الإعدادات القيمة‬
    الاسم أدخل my-custom-vnet.
  4. حدد الزر موافق.

  5. بجوار مربع الشبكة الفرعية للبنية الأساسية، حدد الارتباط Create new وأدخل القيم التالية:

    الإعدادات القيمة‬
    اسم الشبكة الفرعية أدخل شبكة فرعية للبنية الأساسية.
    كتلة عنوان الشبكة الافتراضية احتفظ بالقيم الافتراضية.
    كتلة عنوان الشبكة الفرعية احتفظ بالقيم الافتراضية.
  6. حدد الزر موافق.

  7. ضمن عنوان IP الظاهري، حدد خارجي لبيئة خارجية، أو داخلي لبيئة داخلية.

  8. حدد إنشاء.

توزيع تطبيق الحاوية

  1. في أسفل الصفحة، اختر مراجعة + إنشاء.

    • إذا لم يتم العثور على أخطاء، يتوفر زر الإنشاء .
    • إذا كانت هناك أخطاء، يتم وضع علامة على أي علامة تبويب تحتوي على خطأ بنقطة حمراء. اذهب إلى كل من تلك التبويبات. الحقول التي تحتوي على خطأ تبرز باللون الأحمر أو تحدد بعلامة X حمراء. صحح جميع الأخطاء، ثم اختر مراجعة + إنشاء مرة أخرى.
  2. حدد إنشاء.

    يتم عرض صفحة مع الرسالة النشر قيد التقدم. بعد انتهاء النشر بنجاح، تظهر رسالة " اكتمل النشر ".

تحقق من التوزيع

  1. قم تحديد الانتقال إلى المورد لعرض تطبيق الوظيفة الجديد.

  2. بجانب رابط الطلب، اختر الرابط لعرض طلبك.

المتطلبات الأساسية

الإعداد

لتسجيل الدخول إلى Azure من CLI، قم بتشغيل الأمر التالي واتبع المطالبات لإكمال عملية المصادقة.

az login

للتأكد من تشغيل أحدث إصدار من CLI، قم بتشغيل أمر الترقية.

az upgrade

بعد ذلك، قم بتثبيت أو تحديث ملحق Azure Container Apps ل CLI.

إذا تلقيت أخطاء حول المعلمات المفقودة عند تشغيل az containerapp الأوامر في Azure CLI أو cmdlets من Az.App الوحدة النمطية في PowerShell، فتأكد من تثبيت أحدث إصدار من ملحق Azure Container Apps.

az extension add --name containerapp --upgrade

إشعار

بدءا من مايو 2024، لم تعد ملحقات Azure CLI تمكن ميزات المعاينة بشكل افتراضي. للوصول إلى ميزات معاينة تطبيقات الحاوية، قم بتثبيت ملحق Container Apps باستخدام --allow-preview true.

az extension add --name containerapp --upgrade --allow-preview true

الآن بعد تثبيت الملحق أو الوحدة النمطية Microsoft.App الحالية، قم بتسجيل مساحات الأسماء و Microsoft.OperationalInsights .

az provider register --namespace Microsoft.App
az provider register --namespace Microsoft.OperationalInsights

تعيين متغيرات البيئة

تعيين متغيرات البيئة التالية. <PLACEHOLDERS> استبدل بالقيم الخاصة بك:

RESOURCE_GROUP="<RESOURCE_GROUP>"
LOCATION="<LOCATION>"
CONTAINERAPPS_ENVIRONMENT="<CONTAINERAPPS_ENVIRONMENT>"

إنشاء مجموعة موارد Azure

إنشاء مجموعة موارد لتنظيم الخدمات المتعلقة بنشر تطبيق الحاوية.

az group create \
  --name $RESOURCE_GROUP \
  --location "$LOCATION"

إنشاء بيئة

يمكن لبيئة Azure Container Apps إنشاء حدود آمنة حول مجموعة من تطبيقات الحاويات. يتم توزيع Container Apps المنتشرة في نفس البيئة في نفس الشبكة الظاهرية وكتابة سجلات إلى نفس مساحة عمل Log Analytics.

Microsoft.ContainerService تسجيل الموفر.

az provider register --namespace Microsoft.ContainerService

قم بتعريف متغير للاحتفاظ باسم VNet.

VNET_NAME="my-custom-vnet"

الآن قم بإنشاء شبكة ظاهرية لإقرانها ببيئة Container Apps. يجب أن تحتوي الشبكة الظاهرية على شبكة فرعية متوفرة لنشر البيئة.

az network vnet create \
  --resource-group $RESOURCE_GROUP \
  --name $VNET_NAME \
  --location $LOCATION \
  --address-prefix 10.0.0.0/16
az network vnet subnet create \
  --resource-group $RESOURCE_GROUP \
  --vnet-name $VNET_NAME \
  --name infrastructure-subnet \
  --address-prefixes 10.0.0.0/23

عند استخدام بيئة ملفات تعريف حمل العمل، تحتاج إلى تحديث VNet لتفويض الشبكة الفرعية إلى Microsoft.App/environments. لا تفوض الشبكة الفرعية عند استخدام بيئة الاستهلاك فقط.

az network vnet subnet update \
  --resource-group $RESOURCE_GROUP \
  --vnet-name $VNET_NAME \
  --name infrastructure-subnet \
  --delegations Microsoft.App/environments

مع إنشاء الشبكة الظاهرية، يمكنك الآن الاستعلام عن معرف الشبكة الفرعية للبنية الأساسية.

INFRASTRUCTURE_SUBNET=`az network vnet subnet show --resource-group ${RESOURCE_GROUP} --vnet-name $VNET_NAME --name infrastructure-subnet --query "id" -o tsv | tr -d '[:space:]'`

وأخيرا، قم بإنشاء بيئة Container Apps باستخدام VNet المخصص.

لإنشاء البيئة، قم بتشغيل الأمر التالي. لإنشاء بيئة داخلية، أضف --internal-only.

az containerapp env create \
  --name $CONTAINERAPPS_ENVIRONMENT \
  --resource-group $RESOURCE_GROUP \
  --location "$LOCATION" \
  --infrastructure-subnet-resource-id $INFRASTRUCTURE_SUBNET

يصف الجدول التالي المعلمات المستخدمة مع containerapp env create.

المعلمة ‏‏الوصف‬
name اسم بيئة Container Apps.
resource-group اسم مجموعة الموارد.
logs-workspace-id (اختياري) معرف مساحة عمل Log Analytics موجودة. إذا تم حذفها، يتم إنشاء مساحة عمل لك.
logs-workspace-key سجل التحليلات لسرية العميل مطلوب في حالة استخدام مساحة عمل موجودة.
location موقع Azure حيث يتم توزيع البيئة.
infrastructure-subnet-resource-id معرف المورد لشبكة فرعية لمكونات البنية الأساسية وحاويات تطبيقات المستخدم.
internal-only (اختياري) لا تستخدم البيئة IP ثابتا عاما، بل عناوين IP الداخلية فقط المتوفرة في VNet المخصصة. (يتطلب معرف مورد الشبكة الفرعية للبنية الأساسية.)

التكوين الاختياري

لديك خيار نشر DNS خاص وتحديد نطاقات IP للشبكات المخصصة لبيئة تطبيقات الحاوية الخاصة بك.

توزيعDNS الخاص

إذا كنت تريد نشر تطبيق الحاوية الخاص بك مع DNS الخاص، شغل الأوامر التالية.

أولًا، استخراج معلومات تعريف من البيئة.

ENVIRONMENT_DEFAULT_DOMAIN=`az containerapp env show --name ${CONTAINERAPPS_ENVIRONMENT} --resource-group ${RESOURCE_GROUP} --query properties.defaultDomain --out json | tr -d '"'`
ENVIRONMENT_STATIC_IP=`az containerapp env show --name ${CONTAINERAPPS_ENVIRONMENT} --resource-group ${RESOURCE_GROUP} --query properties.staticIp --out json | tr -d '"'`
VNET_ID=`az network vnet show --resource-group ${RESOURCE_GROUP} --name ${VNET_NAME} --query id --out json | tr -d '"'`

بعد ذلك، إعداد DNS الخاص.

az network private-dns zone create \
  --resource-group $RESOURCE_GROUP \
  --name $ENVIRONMENT_DEFAULT_DOMAIN
az network private-dns link vnet create \
  --resource-group $RESOURCE_GROUP \
  --name $VNET_NAME \
  --virtual-network $VNET_ID \
  --zone-name $ENVIRONMENT_DEFAULT_DOMAIN -e true
az network private-dns record-set a add-record \
  --resource-group $RESOURCE_GROUP \
  --record-set-name "*" \
  --ipv4-address $ENVIRONMENT_STATIC_IP \
  --zone-name $ENVIRONMENT_DEFAULT_DOMAIN

معلمات الشبكات

عند استخدام بيئة الاستهلاك القديمة فقط، هناك ثلاث معايير شبكة اختيارية يمكنك اختيار تعريفها عند الاتصال containerapp env createب . استخدم هذه الخيارات عندما يكون لديك شبكة ظاهرية نظيرة مع نطاقات عناوين منفصلة. يضمن تكوين هذه النطاقات بشكل صريح عدم تعارض العناوين المستخدمة من قبل بيئة Container Apps مع النطاقات الأخرى في البنية الأساسية للشبكة.

إشعار

هذه المعايير تنطبق فقط على نوع البيئة القديمة التي تعتمد فقط على الاستهلاك. نوع بيئة ملفات تعريف عبء العمل الافتراضي لا يتطلب هذه المعاملات.

يجب إما توفير قيم لجميع هذه الخصائص الثلاث، أو عدم توفير أي منها. إذا لم يتم توفيرها، يتم إنشاء القيم لك.

المعلمة ‏‏الوصف‬
platform-reserved-cidr نطاق العنوان المستخدم داخليا لخدمات البنية الأساسية للبيئة. يجب أن يكون له حجم بين /23 و /12 عند استخدام بيئة الاستهلاك فقط
platform-reserved-dns-ip عنوان IP من النطاق platform-reserved-cidr المستخدم لخادم DNS الداخلي. لا يمكن أن يكون العنوان هو العنوان الأول في النطاق أو عنوان الشبكة. على سبيل المثال، إذا تم تعيين platform-reserved-cidr على 10.2.0.0/16، فإن platform-reserved-dns-ip لا يمكن أن يكون 10.2.0.0 (عنوان الشبكة)، أو 10.2.0.1 (تحتفظ البنية الأساسية باستخدام هذا العنوان IP). في هذه الحالة، سيكون عنوان IP الأول القابل للاستخدام لـDNS هو 10.2.0.2.
docker-bridge-cidr نطاق العنوان المعين لشبكة جسر Docker. أن يكون لهذا النطاق حجم بين /28 و/12.
  • لا يمكن أن تتعارض نطاقات العناوين platform-reserved-cidr وdocker-bridge-cidr مع بعضها البعض، أو مع نطاقات الشبكة الفرعية المقدمة. علاوة على ذلك، تأكد من أن هذه النطاقات لا تتعارض مع أي نطاق عناوين آخر في VNet.

  • إذا لم يتم توفير هذه الخصائص، يقوم CLI تلقائيا بإنشاء قيم النطاق استنادا إلى نطاق عناوين الشبكة الظاهرية لتجنب تعارضات النطاق.

تنظيف الموارد

إذا كنت لن تستمر في استخدام هذا التطبيق، يمكنك حذف مجموعة موارد my-container-apps . يؤدي هذا إلى حذف مثيل Azure Container Apps وجميع الخدمات المقترنة. كما أنه يحذف مجموعة الموارد التي أنشأتها خدمة Container Apps تلقائيا والتي تحتوي على مكونات الشبكة المخصصة.

تنبيه

يحذف الأمر التالي مجموعة الموارد المحددة وجميع الموارد المضمنة فيها. إذا كانت الموارد خارج نطاق هذا الدليل موجودة في مجموعة الموارد المحددة، حذفها أيضا.

az group delete --name $RESOURCE_GROUP

الموارد الإضافية

  • لاستخدام دخول نطاق VNet، يجب إعداد DNS.

الخطوات التالية