مشاركة عبر


استخدام Azure Functions في Azure Container Apps

توضح لك هذه المقالة كيفية إنشاء تطبيق Azure Functions في Azure Container Apps، مع إكمال قواعد التحجيم التلقائي التي تم تكوينها مسبقا.

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

مورد الوصف
حساب Azure حساب Azure مع اشتراك نشط.

إذا لم يكن لديك مثل هذا الحساب، فيمكنك إنشاء واحد مجانًا.
حساب Azure Storage حساب تخزين كائن ثنائي كبير الحجم لتخزين حالة Azure Functions.
Azure Application Insights مثيل ل Azure Application Insights لجمع بيانات حول تطبيق الحاوية.

إنشاء تطبيق Functions

توضح لك الخطوات التالية كيفية استخدام صورة حاوية عينة لإنشاء تطبيق الحاوية. إذا كنت ترغب في استخدام هذا الإجراء مع صورة حاوية مخصصة، فشاهد إنشاء تطبيق الوظائف الأول في Azure Container Apps.

  1. انتقل إلى مدخل Microsoft Azure وابحث عن Container Apps في شريط البحث.

  2. حدد Container Apps.

  3. حدد إنشاء.

  4. اختر تطبيق الحاوية.

  5. في قسم Basics ، أدخل القيم التالية.

    ضمن تفاصيل المشروع:

    الخاصية القيمة‬
    الاشتراك حدد اشتراك Azure الخاص بك.
    مجموعة الموارد حدد Create new resource group، وقم بتسمية my-aca-functions-group، وحدد OK.
    اسم تَطبيق الحاوية أدخل my-aca-functions-app.
  6. بجوار تحسين وظائف Azure، حدد خانة الاختيار.

    لقطة شاشة لبوابة Azure عند إنشاء تطبيق حاوية تم إعداده مسبقا لوظائف Azure.

  7. ضمن بيئة تطبيقات الحاوية، أدخل:

    الخاصية القيمة‬
    المنطقة حدد أقرب منطقة إليك.
    بيئة Container Apps حدد إنشاء بيئة جديدة.
  8. في نافذة إعداد البيئة، أدخل:

    الخاصية القيمة‬
    اسم البيئة أدخل my-aca-functions-environment
    التكرار في المنطقة حدد «Disabled».
  9. حدد إنشاء لحفظ القيم الخاصة بك.

  10. حدد Next: Container للتبديل إلى قسم Container .

  11. بجانب استخدام صورة التشغيل السريع، اترك هذا المربع دون تحديد.

  12. ضمن قسم تفاصيل الحاوية ، أدخل القيم التالية.

    الخاصية القيمة‬
    الاسم تم تعبئة هذا الصندوق مسبقا باختيارك في القسم السابق.
    مصدر الصورة حدد Docker Hub أو السجلات الأخرى
    الاشتراك حدد Subscription الخاص بك.
    نوع الصورة حدّد عام.
    خادم تسجيل الدخول للسجل أدخل mcr.microsoft.com
    الصورة والعلامة أدخل k8se / quickstart-functions: الأحدث
  13. ضمن متغيرات البيئة، أدخل قيما للمتغيرات التالية:

    • AzureWebJobsStorage
    • APPINSIGHTS_INSTRUMENTATIONKEY أو APPLICATIONINSIGHTS_CONNECTION_STRING

    أدخل قيم الهوية المدارة أو سلاسل الاتصال لهذه المتغيرات. استخدام هوية مُدارة.

    AzureWebJobsStorage المتغير هو سلسلة اتصال حساب Azure Storage مطلوبة لوظائف Azure. يخزن هذا الحساب سجلات تنفيذ الوظائف، ويدير المحفزات والربط، ويحافظ على الحالة للوظائف الدائمة.

    Application Insights هي خدمة مراقبة وتشخيص توفر رؤى حول أداء واستخدام Azure Functions. تساعدك هذه المراقبة على تعقب معدلات الطلب وأوقات الاستجابة ومعدلات الفشل والمقاييس الأخرى.

  14. حدد Next > Ingress للتبديل إلى قسم Ingress وأدخل القيم التالية.

    الخاصية القيمة‬
    دخول حدد خانة الاختيار Enabled لتمكين الدخول.
    استخدام الشبكة الداخل:⁦⁩ حدد قبول نسبة استخدام الشبكة من أي مكان.
    نوع الدخول حدد HTTP.
    المنفذ الهدف أدخِل 80.
  15. حدد "استعراض + إنشاء".

  16. حدد إنشاء.

  17. بمجرد اكتمال النشر، حدد انتقال إلى المورد.

  18. من صفحة نظرة عامة ، حدد الارتباط بجوار عنوان URL للتطبيق لفتح التطبيق في علامة تبويب مستعرض جديدة.

  19. إلحاق /api/HttpExample بنهاية عنوان URL.

    يتم إرجاع رسالة تفيد بأن "وظيفة مشغل HTTP معالجة طلب" في المستعرض.

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

إنشاء تطبيق Functions

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

  1. تسجيل الدخول إلى أزور.

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

    az upgrade
    
  3. تثبيت أو تحديث ملحق Azure Container Apps ل CLI.

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

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

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

    az provider register --namespace Microsoft.App
    
    az provider register --namespace Microsoft.OperationalInsights
    
  4. إنشاء متغيرات البيئة.

    RESOURCE_GROUP_NAME="my-aca-functions-group"
    CONTAINER_APP_NAME="my-aca-functions-app"
    ENVIRONMENT_NAME="my-aca-functions-environment"
    LOCATION="westus"
    STORAGE_ACCOUNT_NAME="storage-account-name"
    STORAGE_ACCOUNT_SKU="storage-account-sku"
    APPLICATION_INSIGHTS_NAME="application-insights-name"
    
  5. قم بإنشاء مجموعة موارد.

    az group create \
      --name $RESOURCE_GROUP_NAME \
      --location $LOCATION \
      --output none
    
  6. إنشاء بيئة تطبيقات الحاوية.

    az containerapp env create \
        --name $ENVIRONMENT_NAME \
        --resource-group $RESOURCE_GROUP_NAME \
        --location $LOCATION \
        --output none
    
  7. إنشاء حساب التخزين

    az storage account create \
      --name $STORAGE_ACCOUNT_NAME \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION \
      --sku $STORAGE_ACCOUNT_SKU
    
  8. سلسلة اتصال حساب التخزين

    $STORAGE_ACCOUNT_CONNECTION_STRING = az storage account show-connection-string \
      --name $STORAGE_ACCOUNT_NAME \
      --resource-group $RESOURCE_GROUP \
      --query connectionString \
      --output tsv
    
  9. Create Azure Applications Insights

    az monitor app-insights component create \
    --app $APPLICATION_INSIGHTS_NAME \
    --location $LOCATION \
      --resource-group $RESOURCE_GROUP \
      --application-type web
    
  10. الحصول على سلسلة اتصال Insights للتطبيق

    $APPLICATION_INSIGHTS_CONNECTION_STRING = az monitor app-insights component show \
      --app $APPLICATION_INSIGHTS_NAME \
      --resource-group $RESOURCE_GROUP \
      --query connectionString \
      --output tsv
    
  11. إنشاء تطبيق حاوية Azure Functions.

    az containerapp create \
      --resource-group $RESOURCE_GROUP_NAME \
      --name $CONTAINER_APP_NAME \
      --environment $ENVIRONMENT_NAME \
      --image mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0 \
      --ingress external \
      --target-port 80 \
      --kind functionapp \
      --query properties.outputs.fqdn
    

    يقوم هذا الأمر بإرجاع عنوان URL لتطبيق الوظائف. انسخ عنوان URL هذا والصقه في مستعرض ويب.

  12. إنشاء تطبيق حاوية Azure Functions مع --revisions-mode multiple سيناريو الإصدارات المتعددة

    az containerapp create \
      --name $CONTAINERAPP_NAME \
      --resource-group $RESOURCE_GROUP \
      --environment $CONTAINERAPPS_ENVIRONMENT \
      --image mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:1.0 \
      --target-port 80 \
      --ingress external \
      --kind functionapp \
      --workload-profile-name $WORKLOAD_PROFILE_NAME \
      --env-vars AzureWebJobsStorage="$STORAGE_ACCOUNT_CONNECTION_STRING" APPLICATIONINSIGHTS_CONNECTION_STRING="$APPLICATION_INSIGHTS_CONNECTION_STRING"
    
  13. في سيناريو الإصدارات المتعددة، قم بترقية تطبيق الحاوية وتقسيم حركة المرور

    az containerapp update \
      --resource-group $RESOURCE_GROUP \
      --name $CONTAINERAPP_NAME \
      --image mcr.microsoft.com/azure-functions/dotnet8-quickstart-demo:latest
    
    az containerapp ingress traffic set -resource-group \
      --name $CONTAINERAPP_NAME \
      --resource-group $RESOURCE_GROUP \
      --revision-weight {revision1_name}=50 \
      --revision-weight {revision2_name}=50
    
  14. إلحاق /api/HttpExample بنهاية عنوان URL.

    يتم إرجاع رسالة تفيد بأن "وظيفة مشغل HTTP معالجة طلب" في المستعرض.