APPLIES TO:
Azure Data Factory
Azure Synapse Analytics
ヒント
Data Factory in Microsoft Fabric は、よりシンプルなアーキテクチャ、組み込みの AI、および新機能を備えた次世代のAzure Data Factoryです。 データ統合を初めて使用する場合は、Fabric Data Factory から始めます。 既存の ADF ワークロードをFabricにアップグレードして、データ サイエンス、リアルタイム分析、レポートの新機能にアクセスできます。
- Fabric無料試用版を開始します。
Microsoft Fabric
Azure関数アクティビティを使用すると、Azure Data Factoryまたは Synapse パイプラインでAzure Functionsを実行できます。 Azure関数を実行するには、リンクされたサービス接続を作成する必要があります。 その後、実行するAzure関数を指定するアクティビティで、リンクされたサービスを使用できます。
UI を使用してAzure関数アクティビティを作成する
パイプラインで Azure 関数アクティビティを使用するには、次の手順を実行します。
[パイプライン アクティビティ] ウィンドウの [Azure関数] セクションを展開し、Azure関数アクティビティをパイプライン キャンバスにドラッグします。
キャンバス上の新しいAzure関数アクティビティがまだ選択されていない場合は選択し、そのSettings タブを選択して詳細を編集します。
Azure関数のリンクされたサービスがまだ定義されていない場合は、[新規] を選択して新しいサービスを作成します。 新しいAzure関数のリンクされたサービス ウィンドウで、既存の Azure Function App の URL を選択し、関数キーを指定します。
Azure関数のリンクされたサービスを選択した後、関数名とその他の詳細を指定して構成を完了します。
Azure関数のリンクされたサービス
Azure関数の戻り値の型は、有効なJObjectである必要があります。 (JArrayに注意してください)。JObject以外の戻り値の型は失敗し、ユーザー エラーが発生しますJObject。
関数キーを使用すると、関数アプリ内で個別の一意のキーまたはマスター キーを持つ関数名に安全にアクセスできます。 マネージド ID は、関数アプリ全体への安全なアクセスを提供します。 ユーザーは、関数名にアクセスするためにキーを指定する必要があります。 関数アクセス キーの詳細については、関数のドキュメントを参照してください
| プロパティ | 説明 | 必須 |
|---|---|---|
| タイプ | type プロパティは、次のように設定する必要があります:AzureFunction | はい |
| 関数アプリの URL | Azure Function App の URL。 形式は https://<accountname>.azurewebsites.net です。 この URL は、Azure ポータルで Function App を表示するときの URL セクションの値です。 |
はい |
| ファンクション キー | Azure関数のアクセス キー。 それぞれの関数の [管理 ] セクションを選択し、 関数キー または ホスト キーをコピーします。 詳細については、「アクセス キーの使用」を参照してください | はい |
| 認証 | Azure関数の呼び出しに使用される認証方法。 サポートされている値は、 システム割り当てマネージド ID または "匿名" です。 | はい |
| リソースID | Azure関数のアプリ (クライアント) ID。 それぞれの関数の [認証] セクションに切り替え、[ID プロバイダー] でアプリ (クライアント) ID を取得します。 このプロパティは、システム割り当てマネージド ID を使用する場合に表示されます。 詳細については、Microsoft Entra ログインを使用するように App Service または Azure Functions アプリを構成する方法を参照してください。 | いいえ* |
/* システム割り当てマネージド ID 認証を使用する場合は、 resourceId プロパティが必要です。
システム割り当てマネージド ID 認証
システム割り当てマネージド ID (SAMI) 認証は、次の 2 つの方法で使用できます。
リソース ID を
https://management.azure.comに設定します。 Data Factory は、システム割り当てマネージド ID を使用して Function App に接続し、匿名認証を使用して関数アプリを実行します。匿名認証を使用しない安全な環境では、リソース ID としてサービス プリンシパル名 (SPN) を構成します。 関数アプリで SPN を正しく構成する必要があります。
関数アプリで、[設定] の [認証] セクションに移動し、ID プロバイダーを作成します。
[特定のクライアント アプリケーションからの許可された要求] セクションに ADF アプリケーション ID を追加し、[特定の識別からの要求を許可する] セクションのオブジェクト ID を追加します。 アプリケーション ID とオブジェクト ID は、次の手順で確認できます。
Azure ポータル - エンタープライズ アプリケーションに移動する
- Azure Data Factory/マネージド アイデンティティ 名を検索します。
- テーブルで見つかったオブジェクト ID とアプリケーション ID をコピーします。
Azure関数アクティビティ
| プロパティ | 説明 | 指定できる値 | 必須 |
|---|---|---|---|
| 名前 | パイプラインのアクティビティの名前。 | ストリング | はい |
| タイプ | アクティビティの種類は "AzureFunctionActivity" です | ストリング | はい |
| リンクされたサービス | 対応する Azure Function App のAzure関数のリンクされたサービス | リンクされたサービスの参照 | はい |
| 関数名 | このアクティビティが呼び出す Azure Function App 内の関数の名前 | ストリング | はい |
| メソッド | 関数呼び出しのための REST API メソッド | 文字列がサポートされている型:"GET"、"POST"、"PUT" | はい |
| ヘッダー | 要求に送信されるヘッダー。 たとえば、要求に種類と言語を設定する場合: "headers": { "Accept-Language": "en-us", "Content-Type": "application/json" } | 文字列 (または文字列の resultType を含む式) | いいえ |
| 本文 | 要求と共に関数APIメソッドに送信されるリクエストボディ | 文字列 (または文字列の resultType を含む式) またはオブジェクト。 | PUT/POST メソッドには必須です |
「要求ペイロードのスキーマ」セクションにある要求ペイロードのスキーマを参照してください。
ルーティングとクエリ
Azure関数アクティビティは、routing をサポートします。 たとえば、Azure関数にエンドポイント https://functionAPP.azurewebsites.net/api/<functionName>/<value>?code=<secret> がある場合、Azure関数アクティビティで使用する functionNameは <functionName>/<value> です。 実行時に任意のfunctionNameを提供するようこの関数をパラメーター化できます。
注意
Durable Functions の functionName は、ルーティング情報を含めるために、関数のバインドの JSON 定義内にある route プロパティから取得する必要があります。 ルートの詳細が含まれていない functionName を使用するだけで、関数アプリが見つからないため、エラーが発生します。
Azure関数アクティビティでは、queries もサポートされます。 クエリは functionName の一部として含まれている必要があります。 たとえば、関数名が HttpTriggerCSharp で、含めるクエリが name=hello の場合、Azure関数アクティビティで functionName を HttpTriggerCSharp?name=hello として構築できます。 この関数は、実行時に値を決定できるように、パラメーター化できます。
タイムアウトと長時間実行関数
Azure Functions設定で構成した functionTimeout 設定に関係なく、230 秒後にタイムアウトになります。 詳細については、 こちらの記事を参照してください。 この動作を回避するには、非同期パターンに従うか、Durable Functionsを使用します。 Durable Functionsの利点は、独自の状態追跡メカニズムを提供するため、独自の状態追跡を実装する必要がないようにすることです。
Durable Functionsの詳細についてはこの記事を参照してください。 durable 関数を呼び出すAzure関数アクティビティを設定できます。この関数は、この例など、別の URI を持つ応答を返します。
statusQueryGetUriは関数の実行中に HTTP ステータス 202 を返すため、Web アクティビティを使用して、関数の状態をポーリングできます。 Web アクティビティの url フィールドを @activity('<AzureFunctionActivityName>').output.statusQueryGetUri に設定します。 Durable 関数が完了すると、関数の出力は Web アクティビティの出力になります。
サンプル
Azure関数を使用して tar ファイルの内容を抽出するサンプルhere。
関連するコンテンツ
サポートされているアクティビティの詳細については、「パイプラインとアクティビティ」を参照してください。