すべてのプロダクト
Search
ドキュメントセンター

DataWorks:Function Compute ノード

最終更新日:Mar 27, 2026

Function Compute ノードを使用すると、カスタムのイベント関数を定期的なスケジュールで実行し、DataWorks のデータ処理ワークフローに統合できます。本トピックでは、Function Compute ノードの構成、デプロイメント、およびモニタリング方法について説明します。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

  • ワークスペースに [開発] または [ワークスペース管理者] ロールで追加された RAM ユーザー。 ワークスペース管理者ロールには、必要以上の権限が含まれています。 ワークスペース管理者ロールを割り当てる際には、十分ご注意ください。 詳細については、「ワークスペースにメンバーを追加してロールを割り当てる」をご参照ください。

  • お使いのワークスペースに関連付けられたサーバーレス リソースグループです。詳細については、「サーバーレス リソースグループの使用」をご参照ください。

  • DataWorks IDE で Function Compute ノードが作成済みであること。詳細については、「タスクノードの作成」をご参照ください。

サポートされるリージョン

Function Compute ノードは、以下のリージョンで作成されたワークスペースでのみ利用可能です:中国 (杭州)、中国 (上海)、中国 (北京)、中国 (張家口)、中国 (深セン)、中国 (香港)、シンガポール、イギリス (ロンドン)、米国 (シリコンバレー)、米国 (バージニア)、ドイツ (フランクフルト)、オーストラリア (シドニー)、インド (ムンバイ)。

制限事項

DataWorks はイベント関数のみ呼び出します。関数を定期的にスケジュール実行する場合は、HTTP 関数ではなくイベント関数を作成してください。詳細については、「関数タイプの選択」をご参照ください。

RAM ユーザーの権限

RAM ユーザーとして Function Compute ノードを開発する場合、RAM ユーザーに以下のポリシーをアタッチしてください。

ポリシーの種類 アタッチするポリシー
システムポリシー AliyunFCFullAccessAliyunFCReadOnlyAccess、および AliyunFCInvocationAccess。詳細については、「システムポリシー」をご参照ください。
カスタムポリシー(Function Compute 3.0) fc:GetAsyncTaskfc:StopAsyncTaskfc:GetServicefc:ListServicesfc:GetFunctionfc:InvokeFunctionfc:ListFunctionsfc:GetFunctionAsyncInvokeConfigfc:ListServiceVersionsfc:ListAliasesfc:GetAliasfc:ListFunctionAsyncInvokeConfigsfc:GetStatefulAsyncInvocationfc:StopStatefulAsyncInvocation。詳細については、「カスタムポリシー」をご参照ください。
カスタムポリシー(Function Compute 2.0) Function Compute 3.0 と同様ですが、fc:GetAsyncTask および fc:StopAsyncTask は不要です。

その他のポリシー例については、「ポリシーおよびサンプルポリシー」および「サンプルポリシー」をご参照ください。

Function Compute ノードの構成

Function Compute ノードの構成タブで、以下のパラメーターを設定します。

image

パラメーター 説明
[バージョンまたはエイリアスの選択] 関数呼び出しに使用するサービスのバージョンまたはエイリアスです。[デフォルトバージョン] を選択すると、バージョンパラメーターが表示され、その値は LATEST に固定されます。選択肢は次のとおりです:リリース済みのサービスバージョン(トリガー情報は含まない、設定および関数コードを含むサービスのスナップショットで、ロールバックをサポート)またはバージョンエイリアス(特定のバージョンを指し、カナリアリリースおよびロールバックをサポート)。詳細については、「バージョンの管理」および「エイリアスの管理」をご参照ください。
[関数の選択] 呼び出すイベント関数です。DataWorks はイベント関数のみをサポートしており、HTTP 関数はサポートしていません。利用可能な関数がない場合は、事前に作成してください。「関数の管理」および「関数タイプの選択」をご参照ください。
[呼び出し方法] DataWorks が関数を呼び出す方法です。選択肢は Synchronous Invocation または Asynchronous Invocation です。詳細については、下記の「呼び出し方法の選択」をご参照ください。
[変数] イベント入力として関数に渡される JSON ペイロードです。DataWorks のスケジューリング変数を参照するには、${} フォーマットを使用します(例:"triggerTime": "${bizdate}")。これは、Function Compute コンソールの [コード] タブで [関数のテスト][テストパラメーターの設定] を選択して表示される [テストパラメーターの設定] パネル内の [新しいテストイベントの作成] タブの内容に対応しています。

呼び出し方法の選択

同期呼び出し 非同期呼び出し
動作の仕組み DataWorks は関数の実行完了を待機し、実行結果を返します。 DataWorks はリクエストの永続化後すぐに応答を返し、関数はバックグラウンドで実行されます。
使用するタイミング 関数は 1 時間以内に完了します。 関数の実行時間が長く、リソースを多く消費する、または 1 時間を超える場合。

例:スケジューリング時刻にトリガーされる関数

以下の例では、para_service_01_by_time_triggers という名前の関数を使用します。この関数は、イベントペイロードからスケジューリングのメタデータを読み取り、ログに出力します。

関数コード:

import json
import logging

logger = logging.getLogger()

def handler(event, context):
    logger.info('event: %s', event)

    # JSON イベントペイロードを解析
    evt = json.loads(event)
    triggerName = evt["triggerName"]
    triggerTime = evt["triggerTime"]
    payload = evt["payload"]

    logger.info('triggerName: %s', triggerName)
    logger.info("triggerTime: %s", triggerTime)
    logger.info("payload: %s", payload)

    return 'Timer Payload: ' + payload

変数の構成 (ノード構成タブの [変数] フィールドで設定):

{
    "payload": "payload1",
    "triggerTime": "${bizdate}",
    "triggerName": "triggerName1"
}

${bizdate} は、実行時にビジネス日付に解決される DataWorks のスケジューリング変数です。その他の関数コード例については、「サンプルコード」をご参照ください。

スケジューリングの構成とデプロイメント

  1. ノードを構成した後、スケジューリングプロパティを設定して、DataWorks が自動実行するタイミングを定義します。 詳細については、「スケジューリング構成」をご参照ください。

  2. ノードを本番環境にデプロイします。詳細については、「ノードまたはワークフローのデプロイメント」をご参照ください。

  3. デプロイメント後、[オペレーションセンター] > [自動トリガーノード] に移動して、デプロイされたノードを表示し、その実行を監視します。 詳細については、「オペレーションセンターの使用開始」をご参照ください。

トラブルシューティング

サービス一覧が表示されない:ノードの構成時に作成済みのサービス一覧が表示されない場合、以下の 2 つの原因を確認してください。