在 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')。 了解更多關於 指定條件的資訊。
工作控制選項
除了工作輸入之外,所有工作都有控制選項。 如需詳細資訊,請參閱 控制項選項和一般工作屬性。
輸出變數
沒有。
備註
在發布管線的
當選擇回 調 作為完成事件時,任務應該在哪裡表示已完成?
為了表示完成,函式應將完成資料貼至以下管線的 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'