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

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

تَسجيل الدخول إلى مدخل 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.
    نوع البيئة حدد Consumption only.
    التكرار في المنطقة حدد Disabled
  4. حدد علامة التبويب مراقبة لإنشاء مساحة عمل Log Analytics.

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

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

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

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

  7. حدد موافق.

إشعار

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

  1. حدد علامة التبويب Networking لإنشاء VNET.

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

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

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

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

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

  7. ضمن Virtual IP، حدد External.

  8. حدد إنشاء.

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

  1. حدد Review and create في أسفل الصفحة.

    إذا لم يتم العثور على أي أخطاء، يتم تمكين الزرCreate.

    إذا كانت هناك أخطاء، توضع علامة التبويب التي تحتوي على أخطاء بنقطة حمراء. انتقل إلى علامة التبويب المناسبة. يتم تمييز الحقول التي تحتوي على خطأ باللون الأحمر. بمجرد إصلاح كافة الأخطاء، حدد Review and create مرة أخرى.

  2. حدد إنشاء.

    يتم عرض صفحة مع الرسالة النشر قيد التقدم. بمجرد اكتمال النشر بنجاح، سترى الرسالة: اكتمل النشر الخاص بك.

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

الإعداد

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

az login

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

az upgrade

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

az extension add --name containerapp --upgrade

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

إشعار

رٌحِّلت موارد Azure Container Apps من مساحة الاسم Microsoft.Web إلى مساحة الاسم Microsoft.App. راجع ترحيل مساحة الاسم من Microsoft.Web إلى Microsoft.App في مارس 2022 للحصول على مزيدٍ من التفاصيل.

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

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

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

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"

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

إشعار

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

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/21

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

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 المخصص المنشور في الخطوات السابقة.

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 اسم مجموعة الموارد.
location موقع Azure حيث يتم توزيع البيئة.
infrastructure-subnet-resource-id معرف المورد لشبكة فرعية لمكونات البنية الأساسية وحاويات تطبيقات المستخدم.

مع البيئة التي تم إنشاؤها باستخدام شبكة ظاهرية مخصصة، يمكنك الآن نشر تطبيقات الحاوية في البيئة.

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

لديك خيار نشر 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. استخدم هذه الخيارات عندما يكون لديك VNET نظير مع نطاقات عناوين منفصلة. يضمن تكوين هذه النطاقات بشكل صريح عدم تعارض العناوين المستخدمة من قبل بيئة 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 تلقائيًا بخلق قيم النطاق استنادًا إلى نطاق عناوين VNET لتجنب تعارضات النطاق.

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

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

تنبيه

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

az group delete --name $RESOURCE_GROUP

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