AzureFunction@1 - استدعاء مهمة Azure Function v1

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

بناء الجملة

# Invoke Azure Function v1
# Invoke an Azure Function.
- task: AzureFunction@1
  inputs:
    function: # string. Required. Azure function URL. 
    key: # string. Required. Function key. 
    method: 'POST' # 'OPTIONS' | 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'TRACE' | 'PATCH'. Required. Method. Default: POST.
    #headers: # string. Headers. 
    #queryParameters: # string. Query parameters. 
    #body: # string. Optional. Use when method != GET && method != HEAD. Body. 
  # Advanced
    waitForCompletion: 'false' # 'true' | 'false'. Required. Completion event. Default: false.
    #successCriteria: # string. Optional. Use when waitForCompletion = false. Success criteria.
# Invoke Azure Function v1
# Invoke an Azure Function as a part of your pipeline.
- task: AzureFunction@1
  inputs:
    function: # string. Required. Azure function URL. 
    key: # string. Required. Function key. 
    method: 'POST' # 'OPTIONS' | 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'TRACE' | 'PATCH'. Required. Method. Default: POST.
    #headers: # string. Headers. 
    #queryParameters: # string. Query parameters. 
    #body: # string. Optional. Use when method != GET && method != HEAD. Body. 
  # Advanced
    waitForCompletion: 'false' # 'true' | 'false'. Required. Completion event. Default: false.
    #successCriteria: # string. Optional. Use when waitForCompletion = false. Success criteria.

الإدخالات

function - عنوان URL لدالة Azure
string. مطلوب

عنوان URL لدالة Azure التي سيتم استدعاؤها. مثال:https://azurefunctionapp.azurewebsites.net/api/HttpTriggerJS1.


key - مفتاح الدالة
string. مطلوب

الدالة أو مفتاح المضيف المستخدم للوصول إلى الدالة واستدعاؤها. للحفاظ على أمان المفتاح، استخدم متغير مسار سري لتخزين مفتاح الدالة. مثال:$(myFunctionKey). myFunctionKey هو متغير سري على مستوى البيئة بقيمة كمفتاح سري.


method - الاسلوب
string. مطلوب القيم المسموح بها: OPTIONS، GET، HEAD، POST، PUT، DELETE، ، ، TRACE. PATCH القيمة الافتراضية: POST.

أسلوب HTTP الذي سيتم استدعاء الدالة به.


headers - رؤوس
string. القيمة الافتراضية: {\n"Content-Type":"application/json", \n"PlanUrl": "$(system.CollectionUri)", \n"ProjectId": "$(system.TeamProjectId)", \n"HubName": "$(system.HostType)", \n"PlanId": "$(system.PlanId)", \n"JobId": "$(system.JobId)", \n"TimelineId": "$(system.TimelineId)", \n"TaskInstanceId": "$(system.TaskInstanceId)", \n"AuthToken": "$(system.AccessToken)"\n}.

العنوان بتنسيق JSON المراد إرفاقه بالطلب المرسل إلى الدالة .


queryParameters - معلمات الاستعلام
string.

استعلام السلسلة المراد إلحاقه بعنوان URL للوظيفة. يجب ألا تبدأ ب ? أو &.


body - الجسم
string. ‏‏اختياري. استخدم عندما method != GET && method != HEAD.

نص الطلب بتنسيق JSON.


waitForCompletion - حدث الإكمال
string. مطلوب القيم المسموح بها: true (رد الاتصال)، false (ApiResponse). القيمة الافتراضية: false.

كيف تبلغ المهمة عن الاكتمال.

  • false - استجابة واجهة برمجة التطبيقات - ترجع الدالة معايير النجاح والنجاح إلى true.
  • true - رد الاتصال - تقوم الدالة بإجراء رد اتصال لتحديث سجل المخطط الزمني.

successCriteria - معايير النجاح
string. ‏‏اختياري. استخدم عندما waitForCompletion = false.

معايير المهمة الناجحة. بشكل افتراضي، ترجع 200 OK المهمة الحالة عند النجاح.

مثال: للاستجابة {"status" : "successful"}، يمكن أن يكون eq(root['status'], 'successful')التعبير . تعرف على المزيد حول تحديد الشروط.


خيارات التحكم بالمهمة

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

متغيرات الإخراج

لا شيء

الملاحظات

استخدم هذه المهمة في مهمة بدون عامل لمسار إصدار لاستدعاء وظيفة تم تشغيلها بواسطة HTTP في تطبيق دالة يتم إنشاؤه واستضافته في Azure Functions وتحليل الاستجابة.

أين يجب إكمال إشارة المهمة عند اختيار رد الاتصال كحدث إكمال؟

للإشارة إلى الإكمال، يجب أن تقوم الدالة بنشر بيانات الإكمال إلى نقطة نهاية REST للبنية الأساسية لبرنامج ربط العمليات التجارية التالية.

{planUri}/{projectId}/_apis/distributedtask/hubs/{hubName}/plans/{planId}/events?api-version=2.0-preview.1

**Request Body**
{ "name": "TaskCompleted", "taskId": "taskInstanceId", "jobId": "jobId", "result": "succeeded" }

راجع تطبيق cmdline البسيط هذا للحصول على تفاصيل. بالإضافة إلى ذلك، تتوفر مكتبة مساعد C# لتمكين التسجيل المباشر وإدارة حالة المهمة للمهام بدون عامل. معرفة المزيد

لماذا تفشل المهمة في غضون دقيقة واحدة عندما تكون المهلة أطول؟

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

أمثلة

مثال على دالة Azure التي تستخدم وضع إكمال رد الاتصال

#r "Newtonsoft.Json"

using System;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;

public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
{
    var url = req.Headers["PlanUrl"];
    var projectId = req.Headers["ProjectId"];
    var hubName = req.Headers["HubName"];
    var planId = req.Headers["PlanId"];
    var jobId = req.Headers["JobId"];
    var timelineId = req.Headers["TimelineId"];
    var taskInstanceId = req.Headers["TaskinstanceId"];
    var authToken = req.Headers["AuthToken"];

    var callbackUrl = $"{url}/{projectId}/_apis/distributedtask/hubs/{hubName}/plans/{planId}/events?api-version=2.0-preview.1";
  
    var successBody = JsonConvert.SerializeObject(new {
        name = "TaskCompleted",
        taskId = taskInstanceId.ToString(),
        jobId = jobId.ToString(),
        result = "succeeded"
    });

    // the following call does not block
    Task.Run(() =>
    {
        Thread.Sleep(70000); // simulate long running work
        PostEvent(callbackUrl, successBody, authToken, log);
    });
   
    return new OkObjectResult("Long-running job successfully scheduled!");
}
    
public static void PostEvent(String callbackUrl, String body, String authToken, ILogger log)
{
    try
    {
        var client = new HttpClient();
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authToken);
        var requestContent = new StringContent(body, Encoding.UTF8, "application/json");
        var response = client.PostAsync(new Uri(callbackUrl), requestContent).Result;
        var responseContent = response.Content.ReadAsStringAsync().Result;
        log.LogInformation(response.StatusCode.ToString());
        log.LogInformation(responseContent);
    }
    catch (Exception ex)
    {
        log.LogError(ex.Message);
    }
}

المتطلبات

المتطلبات الوصف
أنواع البنية الأساسية لبرنامج ربط العمليات التجارية YAML، الإصدار الكلاسيكي، الإصدار الكلاسيكي
يعمل على Server, ServerGate
المطالب بلا
القدرات لا تفي هذه المهمة بأي طلبات للمهام اللاحقة في الوظيفة.
قيود الأوامر أي
متغيرات Settable أي
إصدار الوكيل جميع إصدارات العامل المدعومة.
فئة المهمة الأداة المساعدة

راجع أيضًا