AzureFunction@2 - 呼叫 Azure 函數 v2 任務

在 release pipeline 的 無代理工作 中使用此任務,呼叫函式應用程式中的 HTTP 觸發函式並解析回應。 函式應用程式必須在 Azure Functions 中建立並託管。

語法

# Invoke Azure Function v2
# Invoke an Azure Function.
- task: AzureFunction@2
  inputs:
    #azureSubscription: # string. Alias: azureServiceConnection | connectedServiceARM. Azure Service Connection. 
    function: # string. Required. Azure function URL. 
    #key: # string. 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.

輸入

azureSubscription - Azure 服務連線
輸入別名: azureServiceConnection | connectedServiceARM。 string。

服務連線用於在呼叫 Azure 函式時進行認證。 提供 Entra 存取權杖,用於服務主體或管理身份存取。


function - Azure函式網址
string。 必須的。

需要呼叫的 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。

字串查詢會附加到 function URL 上。 不得以 ? 或 &開頭。


body - 車身
string。 選擇性。 method != GET && method != HEAD時使用 。

請求的 JSON 格式訊息主體。


waitForCompletion - 完成活動
string。 必須的。 允許的值: true (回調)、 false (ApiResponse)。 預設值: false。

任務如何回報完成度。

  • false - API 回應 - 函式回傳成功,成功準則評估為真。
  • true - 回調(Callback )- 函式進行回調以更新時間軸記錄。

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# 輔助函式庫可用於即時日誌管理無代理任務的任務狀態。 瞭解更多資訊

為什麼任務會在逾時時間較長時,1分鐘內失敗?

如果函式執行超過 1 分鐘,則使用 Callback 完成事件。 API 回應完成選項支援在 60 秒內完成的請求。

範例

以下兩個例子在功能上是等價的。 第一個範例使用 Azure Resource Manager 服務連線進行認證,而第二個範例則直接使用函式金鑰進行認證。

trigger: none
 
pool: server
 
steps:
- task: AzureFunction@2
  inputs:
    # Authenticate using Azure Resource Manager service connection
    authenticationType: 'azureServiceConnection'
    azureServiceConnection: 'working-app-registration'
    function: 'https://myfuction.azurewebsites.net/api/my-test-trigger-function'
    method: 'GET'
    waitForCompletion: 'false'
trigger: none
 
pool: server
 
steps:
- task: AzureFunction@2
  inputs:
    # Authenticate using function key
    authenticationType: 'functionKey'
    key: 'aaaaaaaa-0b0b-1c1c-2d2d-333333333333'
    function: 'https://myfuction.azurewebsites.net/api/my-test-trigger-function'
    method: 'GET'
    waitForCompletion: 'false'

要求

需求 Description
管道類型 YAML、傳統組建、傳統版本
運行 Server、ServerGate
Demands 沒有
功能 此工作不符合作業中後續工作的任何需求。
命令限制 任意
可設置變數 任意
代理程式版本 所有支援的代理程式版本。
任務類別 效用