Azure Functions Invokeアクションを使用すると、HTTPでトリガーされる任意のAzure Functionをワークフローから直接呼び出すことができます。生のHTTP呼び出しを構築するのではなく、Azure Functionsを呼び出すためのサポートおよび検証済みのインターフェイスを提供します — これには型付き入力、URL検証、およびシークレットベースの認証が含まれます。
Azure Functionを呼び出す
このアクションは、Azure FunctionのエンドポイントにHTTPリクエストを送信し、レスポンスを返します。認証にはAzureの関数キーメカニズムを使用します;ワークフローはそれをx-functions-keyヘッダーとして渡します。
以下のフィールドでAzure Functionリクエストを構成します。
入力フィールド | オプション性 | タイプ | 説明 |
|---|---|---|---|
| 必須 | 弦 | Azure Function HTTPトリガーエンドポイントの完全なHTTPS URL。例:
。 |
| オプション | 弦 | 認証用の関数レベルまたはホストレベルのAPIキー。ワークフローはそれを
ヘッダーとして送信します。シークレットとして渡します。 |
| 必須 | 弦 | 使用するHTTPメソッド。
、
、
、
、
のいずれかです。デフォルトは
です。 |
| オプション | 弦 | JSON文字列としてのリクエスト本文。
が
または
ではない場合にのみ適用されます。シークレット参照を受け入れます。 |
| オプション | 地図 | JSON形式の追加のHTTPヘッダー。例:
。シークレット参照を受け入れます。 |
| オプション | 地図 | 関数URLに追加するクエリパラメーター。
または
で始まってはいけません。例:
。 |
アクションは以下のフィールドを返します。
出力フィールド | タイプ | 説明 |
|---|---|---|
| 整数 | Azure Functionから返されるHTTPステータスコード。例:
、
、
。 |
| 弦 | Azure Functionからのレスポンス本文。JSON、プレーンテキスト、HTML、またはその他の形式が可能です。 |
| ブール値 | 関数呼び出しが成功したかどうかを示します。2xxレスポンス(200~299)の場合は
、それ以外の場合は
。 |
例:修復機能をトリガーする
name: azure-function-invoke-remediation
steps: - name: invokeRemediationFunction type: action action: azure.functions.invoke version: 1 inputs: function: "https://remediation.azurewebsites.net/api/fix-incident" key: ${{ :secrets:azure:functionKey }} method: "POST" body: '{"incidentId":"${{ .workflowInputs.incidentId }}"}'例:クエリパラメーターを含むGETリクエスト
name: azure-function-invoke-get
steps: - name: getFromFunction type: action action: azure.functions.invoke version: 1 inputs: function: "https://myapp.azurewebsites.net/api/GetStatus" key: ${{ :secrets:azure:functionKey }} method: "GET" queryParameters: "env=prod®ion=eastus"例:関数を呼び出して結果をログに記録する
name: azure-function-invoke-and-log
steps: - name: invokeFunction type: action action: azure.functions.invoke version: 1 inputs: function: "https://myapp.azurewebsites.net/api/RunCheck" key: ${{ :secrets:azure:functionKey }} method: "POST" body: '{"target":"${{ .workflowInputs.target }}"}' headers: Content-Type: "application/json"
- name: logFunctionResult type: action action: newrelic.ingest.sendLogs version: 1 inputs: logs: - message: "Azure Function invocation complete" attributes: success: ${{ .steps.invokeFunction.outputs.success }} statusCode: ${{ .steps.invokeFunction.outputs.statusCode }} response: ${{ .steps.invokeFunction.outputs.response }}