مشاركة عبر


التشغيل السريع: إنشاء دالة في Azure من سطر الأوامر

في هذه المقالة، يمكنك استخدام أدوات سطر الأوامر المحلية لإنشاء دالة تستجيب لطلبات HTTP. بعد التحقق من التعليمات البرمجية محليا، يمكنك توزيعها إلى خطة استضافة استهلاك Flex بلا خادم في Azure Functions.

يتطلب إكمال هذا التشغيل السريع تكلفة صغيرة تبلغ بضعة سنتات أمريكية أو أقل في حساب Azure الخاص بك.

تأكد من تحديد لغة التطوير المفضلة لديك في أعلى المقالة.

Prerequisites

  • Go، يوصى باستخدام أحدث إصدار. يمكنك استخدام أمر go version للتحقق من الإصدار الخاص بك.

تثبيت الأدوات الأساسية لوظائف Azure

تعتمد الطريقة الموصى بها لتثبيت Core Tools على نظام تشغيل كمبيوتر التطوير المحلي.

الخطوات التالية استخدام مثبت Windows (MSI) لتثبيت أدوات الأساسية v4.x. لمزيدٍ من المعلومات حول المثبتات الأخرى المستندة إلى الحزمة، راجع الملف الأساسي أدوات القراءة.

قم بتنزيل وتشغيل مثبت الأدوات الأساسية، استنادًا إلى إصدار Windows:

إذا كنت قد استخدمت مثبت Windows (MSI) مسبقا لتثبيت Core Tools على Windows، فيجب إلغاء تثبيت الإصدار القديم من إضافة إزالة البرامج قبل تثبيت أحدث إصدار.

إنشاء وتنشيط البيئة الظاهرية

في مجلد مناسب، شغل الأوامر التالية لإنشاء وتنشيط بيئة ظاهرية باسم .venv. تأكد من استخدام أحد إصدارات Python التي تدعمها Azure Functions.

python -m venv .venv
source .venv/bin/activate

إذا لم يثبت Python حزمة venv على توزيع Linux الخاص بك، فشغل الأمر التالي:

sudo apt-get install python3-venv

شغل جميع الأوامر اللاحقة في هذه البيئة الافتراضية النشطة.

إنشاء مشروع تعليمة برمجية محلية ودالة

في Azure Functions، مشروع الكود الخاص بك هو تطبيق يحتوي على وظيفة أو أكثر فردية تستجيب كل منها لمحفز محدد. تشترك جميع الدالات في مشروع في نفس التكوينات ويتم نشرها كوحدة إلى Azure. في هذا القسم، يمكنك إنشاء مشروع تعليمة برمجية يحتوي على دالة واحدة.

  1. في terminal أو موجه الأوامر، قم بتشغيل هذا func init الأمر لإنشاء مشروع تطبيق دالة في المجلد الحالي:

    func init --worker-runtime dotnet-isolated 
    
  1. في terminal أو موجه الأوامر، قم بتشغيل هذا func init الأمر لإنشاء مشروع تطبيق دالة في المجلد الحالي:

    func init --worker-runtime node --language javascript 
    
  1. في terminal أو موجه الأوامر، قم بتشغيل هذا func init الأمر لإنشاء مشروع تطبيق دالة في المجلد الحالي:

    func init --worker-runtime powershell 
    
  1. في terminal أو موجه الأوامر، قم بتشغيل هذا func init الأمر لإنشاء مشروع تطبيق دالة في المجلد الحالي:

    func init --worker-runtime python 
    
  1. في terminal أو موجه الأوامر، قم بتشغيل هذا func init الأمر لإنشاء مشروع تطبيق دالة في المجلد الحالي:

    func init --worker-runtime node --language typescript 
    
  1. في terminal أو موجه الأوامر، قم بتشغيل هذا func init الأمر لإنشاء مشروع تطبيق دالة في المجلد الحالي:

    func init --worker-runtime custom 
    
  1. في مجلد فارغ، قم بتشغيل هذا mvn الأمر لإنشاء مشروع التعليمات البرمجية من نموذج أصلي Azure Functions Maven:

    mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype -DjavaVersion=17
    

    Important

    • استخدم -DjavaVersion=11 إذا كنت تريد تشغيل دالاتك على Java 11. لمعرفة المزيد، راجع إصدارات Java.
    • قم بتعيين JAVA_HOME متغير البيئة إلى موقع تثبيت النسخة الصحيحة من JDK لإكمال هذا المقال.
  2. يطلب منك Maven القيم اللازمة لإنهاء إنشاء المشروع عند النشر.
    قم بتوفير القيم التالية عند مطالبتك:

    Prompt Value Description
    groupId com.fabrikam قيمة تُعرّف المشروع الخاص بك بشكل فريد عبر جميع المشاريع، باتباع قواعد تسمية الحزمة لـ Java التالية.
    artifactId fabrikam-functions قيمة تمثل اسم jar، بدون رقم إصدار.
    version 1.0-SNAPSHOT اختر القيمة الافتراضية.
    package com.fabrikam قيمة تمثل حزمة Java للتعليمات البرمجية للدالة التي تم إنشاؤها. استخدم الافتراضي.
  3. اكتب Y أو اضغط إدخال للتأكيد.

    يقوم Maven بإنشاء ملفات المشروع في مجلد جديد باسم artifactId ، وهو في هذا المثال fabrikam-functions.

  4. انتقل إلى مجلد المشروع:

    cd fabrikam-functions
    

    يمكنك مراجعة التعليمات البرمجية التي تم إنشاؤها بواسطة القالب لوظيفة مشغل HTTP الجديدة في Function.java في دليل المشروع \src\main\java\com\fabrikam .

  1. استخدم هذا func new الأمر لإضافة دالة إلى مشروعك:

    func new --name HttpExample --template "HTTP trigger" --authlevel "function"
    

    تتم إضافة ملف تعليمة برمجية جديد إلى مشروعك. في هذه الحالة، الوسيطة --name هي الاسم الفريد للدالة (HttpExample) وتحدد --template الوسيطة مشغل HTTP.

يحتوي المجلد الجذر للمشروع على ملفات متنوعة للمشروع ، بما في ذلك ملفات التكوينات المسماة local.settings.json و host.json. نظرا لأن local.settings.json يمكن أن تحتوي على أسرار تم تنزيلها من Azure، يتم استبعاد الملف من التحكم في المصدر بشكل افتراضي في ملف .gitignore

إنشاء وبناء دالتك

يعلن ملف function.json في مجلد HttpExample عن دالة مشغل HTTP. يمكنك إكمال الدالة عن طريق إضافة معالج وتحويله برمجيًا إلى قابل للتنفيذ.

  1. اضغط على Ctrl + N (Cmd + N على macOS) لإنشاء ملف جديد. احفظه كمعالج.goفي جذر تطبيق الدالة (في نفس المجلد مثل host.json).

  2. في handler.go، أضف التعليمات البرمجية التالية واحفظ الملف. هذا هو معالج Go المخصص الخاص بك.

    package main
    
    import (
        "fmt"
        "log"
        "net/http"
        "os"
    )
    
    func helloHandler(w http.ResponseWriter, r *http.Request) {
        message := "This HTTP triggered function executed successfully. Pass a name in the query string for a personalized response.\n"
        name := r.URL.Query().Get("name")
        if name != "" {
            message = fmt.Sprintf("Hello, %s. This HTTP triggered function executed successfully.\n", name)
        }
        fmt.Fprint(w, message)
    }
    
    func main() {
        listenAddr := ":8080"
        if val, ok := os.LookupEnv("FUNCTIONS_CUSTOMHANDLER_PORT"); ok {
            listenAddr = ":" + val
        }
        http.HandleFunc("/api/HttpExample", helloHandler)
        log.Printf("About to listen on %s. Go to https://127.0.0.1%s/", listenAddr, listenAddr)
        log.Fatal(http.ListenAndServe(listenAddr, nil))
    }
    
  3. اضغط على Ctrl + Shift + ' أو حدد New Terminal من قائمة Terminal لفتح محطة طرفية متكاملة جديدة في VS Code.

  4. قم بالتحويل البرمجي للمعالج المخصص لديك باستخدام الأمر التالي. ملف قابل للتنفيذ يسمى handler (handler.exe على Windows) هو الإخراج في المجلد الجذر لتطبيق الوظائف.

    go build handler.go
    

تكوين تطبيق وظيفتك

يجب تكوين مضيف الدالة لتشغيل ثنائي المعالج المخصص لديك عند بدء تشغيله.

  1. افتح host.json.

  2. في customHandler.description القسم ، قم بتعيين قيمة defaultExecutablePath إلى handler (في Windows، قم بتعيينها إلى handler.exe).

  3. في customHandler القسم ، أضف خاصية باسم enableForwardingHttpRequest واضبط قيمتها على true. بالنسبة للوظائف التي تتكون من مشغل HTTP فقط، يبسط هذا الإعداد البرمجة من خلال السماح لك بالعمل مع طلب HTTP نموذجي بدلا من حمولة طلب المعالج المخصص.

  4. تأكد من أن customHandler المقطع يبدو مثل هذا المثال. حفظ الملف.

    "customHandler": {
      "description": {
        "defaultExecutablePath": "handler",
        "workingDirectory": "",
        "arguments": []
      },
      "enableForwardingHttpRequest": true
    }
    

تم تكوين تطبيق الدالة لبدء المعالج المخصص القابل للتنفيذ.

تشغيل الدالة محليًا

تحقق من الدالة الجديدة عن طريق تشغيل المشروع محليا واستدعاء نقطة نهاية الدالة.

  1. استخدم هذا الأمر لبدء مضيف وقت تشغيل Azure Functions المحلي في جذر مجلد المشروع:

    func start  
    
    npm install
    npm start
    
    mvn clean package  
    mvn azure-functions:run
    

    نحو نهاية المخرج، تظهر الأسطر التالية:

     ...
    
     Now listening on: http://0.0.0.0:7071
     Application started. Press Ctrl+C to shut down.
    
     Http Functions:
    
             HttpExample: [GET,POST] http://localhost:7071/api/HttpExample
     ...
    
     
  2. انسخ عنوان URL لوظيفتك HttpExample من هذا المخرج إلى متصفح وتصفح إلى رابط الدالة. يجب أن تتلقى ردا ناجحا برسالة "مرحبا بالعالم".

    Note

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

  3. عند الانتهاء ، استخدم Ctrl+C واختر y إيقاف مضيف الوظائف.

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

قبل أن تتمكن من نشر التعليمات البرمجية للدالة إلى Azure، تحتاج إلى إنشاء هذه الموارد:

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

استخدم أوامر Azure CLI في هذه الخطوات لإنشاء الموارد المطلوبة.

  1. إذا لم تكن قد فعلت ذلك بالفعل، سجل الدخول إلى Azure:

    az login
    

    az login يسجل لك الأمر الدخول إلى حساب Azure الخاص بك. تخطي هذه الخطوة عند التشغيل في Azure Cloud Shell.

  2. إذا لم تكن قد فعلت ذلك بالفعل، فاستخدم هذا az extension add الأمر لتثبيت ملحق Application Insights:

    az extension add --name application-insights
    
  3. استخدم الأمر az group create لإنشاء مجموعة موارد باسم AzureFunctionsQuickstart-rg في المنطقة التي اخترتها:

    az group create --name "AzureFunctionsQuickstart-rg" --location "<REGION>"
    

    في هذا المثال، استبدل <REGION> بمنطقة قريبة منك تدعم خطة استهلاك Flex. استخدم الأمر az functionapp list-flexconsumption-locations لعرض قائمة المناطق المدعومة حاليا.

  4. استخدم الأمر az storage account create لإنشاء حساب تخزين للأغراض العامة في مجموعة الموارد والمنطقة:

    az storage account create --name <STORAGE_NAME> --location "<REGION>" --resource-group "AzureFunctionsQuickstart-rg" \
    --sku "Standard_LRS" --allow-blob-public-access false --allow-shared-key-access false
    

    في هذا المثال، استبدل <STORAGE_NAME> باسم مناسب لك وفريد في Azure Storage. يجب أن تحتوي الأسماء على ثلاثة إلى 24 حرفا من الأرقام والأحرف الصغيرة فقط. يحدد Standard_LRS حساب للأغراض العامة، الذي هو مدعوم من قبل الدالات. يمكن الوصول إلى هذا الحساب الجديد فقط باستخدام هويات Microsoft Entra المصادق عليها والتي تم منحها أذونات لموارد معينة.

  5. استخدم هذا البرنامج النصي لإنشاء هوية مدارة معينة من قبل المستخدم، وتحليل خصائص JSON التي تم إرجاعها للكائن باستخدام jq، ومنح Storage Blob Data Owner الأذونات في حساب التخزين الافتراضي:

    output=$(az identity create --name "func-host-storage-user" --resource-group "AzureFunctionsQuickstart-rg" --location <REGION> \
    --query "{userId:id, principalId: principalId, clientId: clientId}" -o json)
    
    userId=$(echo $output | jq -r '.userId')
    principalId=$(echo $output | jq -r '.principalId')
    clientId=$(echo $output | jq -r '.clientId')
    
    storageId=$(az storage account show --resource-group "AzureFunctionsQuickstart-rg" --name <STORAGE_NAME> --query 'id' -o tsv)
    az role assignment create --assignee-object-id $principalId --assignee-principal-type ServicePrincipal \
    --role "Storage Blob Data Owner" --scope $storageId
    

    إذا لم يكن لديك jq الأداة المساعدة في Bash shell المحلية، فهي متوفرة في Azure Cloud Shell. في هذا المثال، استبدل <STORAGE_NAME> و <REGION> باسم حساب التخزين الافتراضي والمنطقة، على التوالي.

    ينشئ الأمر az identity create هوية تسمى func-host-storage-user. يتم استخدام الذي تم إرجاعه principalId لتعيين أذونات لهذه الهوية الجديدة في حساب التخزين الافتراضي باستخدام az role assignment create الأمر . az storage account show يتم استخدام الأمر للحصول على معرف حساب التخزين.

  6. استخدم الأمر az functionapp create لإنشاء تطبيق الوظائف في Azure:

    az functionapp create --resource-group "AzureFunctionsQuickstart-rg" --name <APP_NAME> --flexconsumption-location <REGION> \
    --runtime dotnet-isolated --runtime-version <LANGUAGE_VERSION> --storage-account <STORAGE_NAME> \
    --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value "func-host-storage-user"
    
    az functionapp create --resource-group "AzureFunctionsQuickstart-rg" --name <APP_NAME> --flexconsumption-location <REGION> \
    --runtime java --runtime-version <LANGUAGE_VERSION> --storage-account <STORAGE_NAME> \
    --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value "func-host-storage-user"
    
    az functionapp create --resource-group "AzureFunctionsQuickstart-rg" --name <APP_NAME> --flexconsumption-location <REGION> \
    --runtime node --runtime-version <LANGUAGE_VERSION> --storage-account <STORAGE_NAME> \
    --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value "func-host-storage-user"
    
    az functionapp create --resource-group "AzureFunctionsQuickstart-rg" --name <APP_NAME> --flexconsumption-location <REGION> \
    --runtime python --runtime-version <LANGUAGE_VERSION> --storage-account <STORAGE_NAME> \
    --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value "func-host-storage-user"
    
    az functionapp create --resource-group "AzureFunctionsQuickstart-rg" --name <APP_NAME> --flexconsumption-location <REGION> \
    --runtime python --runtime-version <LANGUAGE_VERSION> --storage-account <STORAGE_NAME> \
    --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value "func-host-storage-user"
    
    az functionapp create --resource-group "AzureFunctionsQuickstart-rg" --name <APP_NAME> --flexconsumption-location <REGION> \
    --runtime other --storage-account <STORAGE_NAME> \
    --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value "func-host-storage-user"
    

    في هذا المثال، استبدل هذه العناصر النائبة بالقيم المناسبة:

    • <APP_NAME>: اسم فريد عالميا مناسب لك. <APP_NAME> هو أيضا مجال DNS الافتراضي لتطبيق الوظائف.
    • <STORAGE_NAME>: اسم الحساب الذي استخدمته في الخطوة السابقة.
    • <REGION>: منطقتك الحالية.
    • <LANGUAGE_VERSION>: استخدم نفس نسخة مكدس اللغة المدعومة التي تحققت منها محليا، عند الاقتضاء.

    ينشئ هذا الأمر تطبيق وظائف يعمل في وقت تشغيل اللغة المحدد على Linux في خطة استهلاك Flex، وهو مجاني لمقدار الاستخدام الذي تتحمله هنا. يقوم الأمر أيضا بإنشاء مثيل Azure Application Insights مقترن في نفس مجموعة الموارد، والتي يمكنك استخدامها لمراقبة عمليات تنفيذ تطبيق الوظائف وعرض السجلات. للمزيد من المعلومات، راجع مراقبة دوال Azure. لا يتحمل المثيل أي تكاليف حتى تقوم بتنشيطه.

  7. استخدم هذا البرنامج النصي لإضافة الهوية المدارة المعينة من قبل المستخدم إلى دور Monitoring Metrics Publisher في مثيل Application Insights الخاص بك:

    appInsights=$(az monitor app-insights component show --resource-group "AzureFunctionsQuickstart-rg" \
        --app <APP_NAME> --query "id" --output tsv)
    principalId=$(az identity show --name "func-host-storage-user" --resource-group "AzureFunctionsQuickstart-rg" \
        --query principalId -o tsv)
    az role assignment create --role "Monitoring Metrics Publisher" --assignee $principalId --scope $appInsights
    

    في هذا المثال، استبدل ⁧<APP_NAME>⁩ باسم تطبيق الوظائف الخاص بك. يضيف الأمر az role assignment create المستخدم إلى الدور. يتم الحصول على معرف المورد لمثيل Application Insights الخاص بك والمعرف الأساسي للمستخدم باستخدام عرض مكون az monitor app-insights والأوامر az identity show ، على التوالي.

تحديث إعدادات التطبيق

لتمكين مضيف الوظائف من الاتصال بحساب التخزين الافتراضي باستخدام الأسرار المشتركة، استبدل AzureWebJobsStorage إعداد سلسلة الاتصال بعدة إعدادات مسبقة ب AzureWebJobsStorage__. تحدد هذه الإعدادات إعدادا معقدا يستخدمه تطبيقك للاتصال بالتخزين وApplication Insights بهوية مدارة يعينها المستخدم.

  1. استخدم هذا البرنامج النصي للحصول على معرف العميل للهوية المدارة المعينة من قبل المستخدم ويستخدمه لتعريف اتصالات الهوية المدارة لكل من التخزين وApplication Insights:

    clientId=$(az identity show --name func-host-storage-user \
        --resource-group AzureFunctionsQuickstart-rg --query 'clientId' -o tsv)
    az functionapp config appsettings set --name <APP_NAME> --resource-group "AzureFunctionsQuickstart-rg" \
        --settings AzureWebJobsStorage__accountName=<STORAGE_NAME> \
        AzureWebJobsStorage__credential=managedidentity AzureWebJobsStorage__clientId=$clientId \
        APPLICATIONINSIGHTS_AUTHENTICATION_STRING="ClientId=$clientId;Authorization=AAD"
    

    في هذا البرنامج النصي، استبدل <APP_NAME> و <STORAGE_NAME> بأسماء تطبيق الوظائف وحساب التخزين، على التوالي.

  2. قم بتشغيل الأمر az functionapp config appsettings delete لإزالة إعداد سلسلة الاتصال الموجودة AzureWebJobsStorage ، والذي يحتوي على مفتاح سري مشترك:

    az functionapp config appsettings delete --name <APP_NAME> --resource-group "AzureFunctionsQuickstart-rg" --setting-names AzureWebJobsStorage
    

    في هذا المثال، استبدل <APP_NAME> بأسماء تطبيق الوظائف.

في هذه المرحلة، يمكن لمضيف الوظائف الاتصال بحساب التخزين بأمان باستخدام هويات مدارة بدلا من الأسرار المشتركة. يمكنك الآن نشر التعليمات البرمجية لمشروعك إلى موارد Azure.

انشر مشروع الوظيفة في Azure

بعد إنشاء تطبيق الوظائف بنجاح في Azure، تصبح الآن جاهزا لنشر مشروع الوظائف المحلية باستخدام func azure functionapp publish الأمر .

  1. في مجلد المشروع الجذر، قم بتشغيل هذا func azure functionapp publish الأمر:

    func azure functionapp publish <APP_NAME>
    

    في هذا المثال، استبدل <APP_NAME> باسم تطبيقك. يظهر التوزيع الناجح نتائج مشابهة للإخراج التالي (مقتطع للتبسيط):

     ...
    
     Getting site publishing info...
     Creating archive for current directory...
     Performing remote build for functions project.
    
     ...
    
     Deployment successful.
     Remote build succeeded!
     Syncing triggers...
     Functions in msdocs-azurefunctions-qs:
         HttpExample - [httpTrigger]
             Invoke url: https://msdocs-azurefunctions-qs.azurewebsites.net/api/httpexample
     
  2. في طرفك المحلي أو موجه الأوامر، شغل هذا الأمر للحصول على قيمة نقطة نهاية الURL، بما في ذلك مفتاح الوصول:

    func azure functionapp list-functions <APP_NAME> --show-keys
    

    في هذا المثال، استبدل <APP_NAME> مرة أخرى باسم تطبيقك.

  3. انسخ عنوان URL ومفتاح نقطة النهاية المرتجع، والذي تستخدمه لاستدعاء نقطة النهاية الخاصة بالدالة.

تحديث ملف pom.xml

بعد أن تنشئ تطبيق الوظائف الخاص بك بنجاح في Azure، قم بتحديث ملف pom.xml حتى يتمكن Maven من نشره في تطبيقك الجديد. وإلا، يقوم Maven بإنشاء مجموعة جديدة من موارد Azure أثناء النشر.

  1. في Azure Cloud Shell، استخدم هذا az functionapp show الأمر للحصول على عنوان URL لحاوية النشر ومعرف الهوية المدارة الجديدة المعينة من قبل المستخدم:

    az functionapp show --name <APP_NAME> --resource-group AzureFunctionsQuickstart-rg  \
        --query "{userAssignedIdentityResourceId: properties.functionAppConfig.deployment.storage.authentication.userAssignedIdentityResourceId, \
        containerUrl: properties.functionAppConfig.deployment.storage.value}"
    

    في هذا المثال، استبدل <APP_NAME> بأسماء تطبيق الوظائف.

  2. في دليل الجذر للمشروع، افتح ملف pom.xml في محرر نصوص، حدد موقع العنصر properties ، وحدث هذه القيم الخاصة بالخصائص:

    اسم الخاصية Value
    java.version استخدم نفس إصدار مكدس اللغة المدعوم الذي تحققت منه محليا، مثل 17.
    azure.functions.maven.plugin.version 1.37.1
    azure.functions.java.library.version 3.1.0
    functionAppName اسم تطبيق الوظائف في Azure.
  3. ابحث عن configuration قسم من azure-functions-maven-plugin واستبدله بجزء XML هذا:

    <configuration>
        <appName>${functionAppName}</appName>
        <resourceGroup>AzureFunctionsQuickstart-rg</resourceGroup>
        <pricingTier>Flex Consumption</pricingTier>
        <region>....</region>
        <runtime>
            <os>linux</os>
            <javaVersion>${java.version}</javaVersion>
        </runtime>
        <deploymentStorageAccount>...</deploymentStorageAccount>
        <deploymentStorageResourceGroup>AzureFunctionsQuickstart-rg</deploymentStorageResourceGroup>
        <deploymentStorageContainer>...</deploymentStorageContainer>
        <storageAuthenticationMethod>UserAssignedIdentity</storageAuthenticationMethod>
        <userAssignedIdentityResourceId>...</userAssignedIdentityResourceId>
        <appSettings>
            <property>
                <name>FUNCTIONS_EXTENSION_VERSION</name>
                <value>~4</value>
            </property>
        </appSettings>
    </configuration>
    
  4. في العنصر الجديد configuration ، قم بإجراء هذه الاستبدالات المحددة لقيم علامات الحذف (...):

    Configuration Value
    region رمز المنطقة لتطبيق الوظائف الحالي، مثل eastus.
    deploymentStorageAccount اسم حساب التخزين خاصتك.
    deploymentStorageContainer اسم مشاركة التوزيع، والذي يأتي بعد \ في القيمة التي containerUrl حصلت عليها.
    userAssignedIdentityResourceId معرف المورد المؤهل بالكامل لهويتك المدارة، والتي حصلت عليها.
  5. احفظ التغييرات التي أجريتها على ملف pom.xml .

يمكنك الآن استخدام Maven لنشر مشروع التعليمات البرمجية إلى تطبيقك الحالي.

انشر مشروع الوظيفة في Azure

  1. من موجه الأوامر، قم بتشغيل هذا الأمر:

    mvn clean package azure-functions:deploy
    
  2. بعد نجاح النشر، شغل أمر Core Tools هذا للحصول على قيمة نقطة نهاية URL، بما في ذلك مفتاح الوصول:

    func azure functionapp list-functions <APP_NAME> --show-keys
    

    في هذا المثال، استبدل <APP_NAME> مرة أخرى باسم تطبيقك.

  3. انسخ عنوان URL ومفتاح نقطة النهاية المرتجع، والذي تستخدمه لاستدعاء نقطة النهاية الخاصة بالدالة.

استدعاء الدالة في Azure

نظرا لأن وظيفتك تستخدم مشغل HTTP وتدعم طلبات GET، فإنك تستدعيه عن طريق تقديم طلب HTTP إلى عنوانه الإلكتروني باستخدام مفتاح الوصول على مستوى الوظيفة. من الأسهل تنفيذ طلب GET في المتصفح.

الصق عنوان URL ومفتاح الوصول الذي نسخته في شريط عنوان المتصفح.

يجب أن يبدو عنوان URL لنقطة النهاية مشابها لهذا المثال:

https://contoso-app.azurewebsites.net/api/httpexample?code=aabbccdd...

في هذه الحالة، يجب عليك أيضا توفير مفتاح وصول في سلسلة الاستعلام عند تقديم طلب GET إلى رابط نقطة النهاية. يوصى باستخدام مفتاح الوصول للحد من الوصول من العملاء العشوائيين. عند تقديم طلب POST باستخدام عميل HTTP، يجب عليك بدلا من ذلك توفير مفتاح الوصول في الرأس x-functions-key .

عند الانتقال إلى عنوان URL هذا، يجب أن يعرض المستعرض إخراجا مشابها كما هو الحال عند تشغيل الدالة محليا.

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

إذا واصلت إلى الخطوة التالية وأضفت ربط إخراج قائمة انتظار Azure Storage، فاحتفظ بجميع مواردك في مكانها حيث ستبني على ما قمت به بالفعل.

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

az group delete --name AzureFunctionsQuickstart-rg

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