スクリプト開発 / 組み込み変数
スクリプトが実行時に実行状態に関する情報を取得しやすいように、DataFlux Func はスクリプト コンテキスト内に、直接使用できる変数をいくつか組み込んでいます。
| 組み込み変数 | 型 | 適用範囲 | 説明 | サンプル値 |
|---|---|---|---|---|
_DFF_IMAGE_INFO |
dict | すべて | 現在のイメージ情報 | 後述 |
_DFF_TRACE_ID |
str | すべて | Trace ID Func 内部の Trace |
"TRACE-14E6D8D6-1F1A-4A5A-8280-854F6DD8CDB0" |
_DFF_TASK_ID |
str | すべて | タスク ID | "task-2UHeFYPdb6Q7" |
_DFF_ROOT_TASK_ID |
str | すべて | 主タスク ID 主タスク自体の場合は "ROOT に固定 |
"task-2UHeFYPdb6Q7" |
_DFF_SCRIPT_SET_ID |
str | すべて | スクリプトセット ID | "demo" |
_DFF_SCRIPT_SET_NAME |
str | すべて | スクリプトセット名_DFF_SCRIPT_SET_ID と同じ |
"demo" |
_DFF_SCRIPT_SET_TITLE |
str | すべて | スクリプトセットタイトル | "サンプル" |
_DFF_SCRIPT_ID |
str | すべて | スクリプト ID | "demo__basic" |
_DFF_SCRIPT_NAME |
str | すべて | スクリプト名 つまりスクリプトセット ID を含まない部分 |
"basic" |
_DFF_SCRIPT_TITLE |
str | すべて | スクリプトタイトル | "基本" |
_DFF_FUNC_ID |
str | すべて | 関数 ID | "demo__basic.hello_world" |
_DFF_FUNC_NAME |
str | すべて | 関数名 つまりスクリプト ID を含まない部分 |
"hello_world" |
_DFF_FUNC_TITLE |
str | すべて | 関数タイトル | "私の関数" |
_DFF_FUNC_CHAIN |
list | すべて | 関数呼び出しチェーン | [ "demo__basic.run", "demo__basic.hello_world" ] |
_DFF_FUNC_CALL_KWARGS |
dict | すべて | 関数呼び出しパラメータ | {"x": 1, "y": 2} |
_DFF_ORIGIN |
str | すべて | タスクのソース | "funcAPI" |
_DFF_ORIGIN_ID |
str | すべて | ソース ID | "fapi-tDGC12Gdc5H6" |
_DFF_TRIGGER_TIME |
int | すべて | 予定開始時間(秒) | 1625651909 |
_DFF_TRIGGER_TIME_MS |
int | すべて | 予定開始時間(ミリ秒) | 1625651909582 |
_DFF_START_TIME |
int | すべて | 実際の開始時間(秒) | 1625651910 |
_DFF_START_TIME_MS |
int | すべて | 実際の開始時間(ミリ秒) | 1625651910630 |
_DFF_QUEUE |
int | すべて | 実行キュー | 2 |
_DFF_CRON_EXPR |
str | 定期実行タスク | Crontab 式 | * * * * * |
_DFF_HTTP_REQUEST |
dict | 関数 API 関数ページ |
API 呼び出し時のリクエストボディ | 後述 |
_DFF_TRIGGER_TIME と _DFF_START_TIME の違い
_DFF_START_TIME は関数が実際に起動した時刻を指し、関数の入口で実行される int(time.time()) に相当します。キュー渋滞などの要因により遅延する場合があります。
一方、_DFF_TRIGGER_TIME は関数のトリガー時刻を指し、キュー渋滞によって変わることはありません。「予定開始時間」と考えることができます。値は次のとおりです。
| 関数呼び出し方法 | 値 |
|---|---|
| UI で関数を実行 | バックエンド API サービスが HTTP リクエストを受信した時刻 |
| 関数 API | バックエンド API サービスが HTTP リクエストを受信した時刻 |
| 定期実行タスク | Crontab 式に対応する正時の時刻 |
「定期実行タスク」を使用して一定の時間間隔で時系列データを取得する場合は、_DFF_TRIGGER_TIME と _DFF_TRIGGER_TIME_MS を基準にし、コード内で time.time() を使って現在時刻を取得するのはやめてください
_DFF_IMAGE_INFO データ構造
_DFF_IMAGE_INFO の内容は DataFlux Func イメージ情報で、バージョン番号などの情報が含まれます。
| フィールド | 説明 |
|---|---|
EDITION |
エディション。取り得る値は "original", "GSE", "TSE" |
VERSION |
バージョン番号、例:"1.2.3" |
ARCHITECTURE |
アーキテクチャ。取り得る値は "x86_64", "aarch64" |
RELEASE_TIMESTAMP |
リリース時刻(UNIX タイムスタンプ、秒) |
| _DFF_IMAGE_INFO 内容例 | |
|---|---|
1 2 3 4 5 6 | |
_DFF_HTTP_REQUEST データ構造
_DFF_HTTP_REQUEST の内容はリクエストボディの詳細です。
以下のようなリクエストがある場合:
| リクエスト例 | |
|---|---|
1 2 3 4 5 | |
その場合、_DFF_HTTP_REQUEST の値は以下のとおりです。
| _DFF_HTTP_REQUEST 内容例 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | |
DataFlux Func のバージョンによって _DFF_HTTP_REQUEST に含まれるフィールドは若干異なる場合があります。実際の内容を基準にしてください。
headers フィールドの型は IgnoreCaseDict 型のデータです。IgnoreCaseDict は dict を継承しており、使い方は基本的に同じですが、キー名の大文字小文字を区別しません。たとえば、以下の数行のコードはすべて同じ値を取得できます。
| Python | |
|---|---|
1 2 3 | |