このトピックでは、Python 関数を作成する方法について説明します。
前提条件
ビジネスプロセスが作成済みであること。詳細については、「ビジネスプロセスの作成と管理」をご参照ください。
背景情報
DataService Studio では、関数の作成、テスト、公開が可能です。関数を公開した後、API に関連付けることができます。関数はフィルターとして機能し、API のリクエストパラメーターまたはレスポンスデータを処理します。これにより、複雑なクエリが可能になり、さまざまなビジネスシナリオに対応できます。
制限事項
-
Python 関数およびフィルター機能を使用するには、DataWorks Professional Edition 以上のエディションを購入する必要があります。
-
Python 関数は、DataService Studio の共有リソースグループで実行する必要があります。
-
Python 関数はリファクタリング中です。新しい Python 関数の作成、複製、公開はできません。関数機能を使用する必要がある場合は、Aviator 関数の使用を推奨します。詳細については、「Aviator 関数の作成」をご参照ください。
-
関数を API フィルターとして使用する場合、前処理フィルターと後処理フィルターの両方が Python 関数である必要があります。
-
Python 関数をフィルターとして使用する場合、以下の制限事項が適用されます。
-
フィルターは Python 3.0 構文のみをサポートします。
-
フィルターは以下のモジュールのみをサポートします:
import json, time, random, pickle, re, math -
フィルターには関数シグネチャ
def handler(event, context):が必要です。
-
関数構造
# -*- coding: utf-8 -*-
# event (str): フィルターとして使用される場合は API の結果、それ以外の場合はパラメーターを表します。
# context: 環境情報を含みます。このパラメーターは現在使用されていません。
# サポートされているインポートモジュール:json、time、random、pickle、re、math
# 関数名を変更しないでください。
import json
def handler(event, context):
# 文字列を JSON オブジェクトとして読み込みます。
obj = json.loads(event)
# ここにコードを追加します。
# カスタムコードの終了
return obj
この関数テンプレートを変更し、要件に応じて入力パラメーター名を変更できます。
パラメーター1 [context]:API 実行コンテキストを含みます。このパラメーターは現在使用されていません。
パラメーター2 [event]:API リクエストパラメーターまたは直前のフィルターからの結果を含みます。
-
システムは API リクエストパラメーターまたは直前のフィルターからの出力を JSON 文字列に変換し、event パラメーターに渡します。JSON オブジェクト内の各 value は文字列である必要があります。
-
前処理フィルターは、後続の SQL ステートメントが入力パラメーターとして使用する Key-Value マップを出力します。そのため、マップの深さは 1 である必要があります (フラットマップ)。
DataService Studio への移動
DataWorks コンソールにログインします。 左側のナビゲーションウィンドウで、[DataService Studio] をクリックします。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[DataService Studioに移動] をクリックします。
関数の作成
-
サービス開発 ペインで、
アイコンにカーソルを合わせ、 をクリックします。または、対象のビジネスプロセスを見つけて 関数 を右クリックし、 を選択します。
-
Create Python Function ダイアログボックスで、パラメーターを設定します。
パラメーター
説明
[Function Name]
関数の名前。名前は 256 文字以内である必要があります。
[Function Template]
Python 3 Standard v1 テンプレートのみがサポートされています。
[Runtime Environment]
Python 3.0 のみがサポートされています。
[Function Description]
関数の説明。説明は 512 文字以内である必要があります。
[Location]
関数を保存するフォルダー。
-
Confirm をクリックします。
-
編集ページで関数を設定します。
-
Edit Code セクションで、関数コードを入力します。
-
環境構成 セクションで、メモリ と タイムアウト を設定します。
-
-
ツールバーの
[保存] アイコンをクリックします。
次のステップ
-
関数を作成したら、テストしてデプロイできます。 詳細については、「関数のテスト、デプロイ、使用」および「関数のデプロイ」をご参照ください。
-
関数をデプロイしたら、API に関連付けて、リクエストパラメーターとレスポンスデータを処理するための事前フィルターまたは事後フィルターとして使用できます。 詳細については、「関数をAPIフィルターとして使用する」をご参照ください。