ステップ 1. JSON 設定ファイルを作成する
カスタムビジュアル変換を定義して記述するには、JSON 設定ファイルが必要です。設定ファイルのスキーマは次の通りです。
JSON ファイル構造
[フィールド]
-
name: string– (必須) 変換の識別に使用される変換システム名。Python の変数名 (識別子) に設定されているのと同じ命名規則に従ってください。具体的には、文字またはアンダースコアで始まり、文字、数字、および/またはアンダースコアのみで構成されている必要があります。 -
displayName: string– (オプション) AWS Glue Studio ビジュアルジョブエディタに表示される変換の名前。displayNameを指定しない場合は、AWS Glue Studio ではnameが変換の名前として使用されます。 -
description: string– (オプション) 変換の説明が AWS Glue Studio に表示され、検索できます。 -
functionName: string– (必須) Python 関数名が Python スクリプトで呼び出す関数を識別するために使用されます。 -
path: string– (オプション) Python ソースファイルへの Amazon S3 のフルパス。指定しない場合は、AWS Glue では、ファイル名マッチングを使用して .json ファイルと .py ファイルがペアリングされます。例えば、JSON ファイルの名前がmyTransform.jsonの場合、同じ Amazon S3 ロケーションにあるmyTransform.pyという Python ファイルとペアになります。 -
parameters: Array of TransformParameter object– (オプション) AWS Glue Studio ビジュアルエディタで設定するときに表示されるパラメータのリスト。
TransformParameter フィールド
-
name: string– (必須) ジョブスクリプト内で名前付き引数として Python 関数に渡されるパラメータ名。Python の変数名 (識別子) に設定されているのと同じ命名規則に従ってください。具体的には、文字またはアンダースコアで始まり、文字、数字、および/またはアンダースコアのみで構成されている必要があります。 -
displayName: string– (オプション) AWS Glue Studio ビジュアルジョブエディタに表示される変換の名前。displayNameを指定しない場合は、AWS Glue Studio ではnameが変換の名前として使用されます。 -
type: string– (必須) 一般的な Python データ型を受け入れるパラメータ型。有効な値: 'str' | 'int' | 'float' | 'list' | 'bool'。 -
isOptional: boolean– (オプション) パラメータがオプションかどうかを決定します。デフォルトでは、すべてのパラメータが必須です。 -
description: string– (オプション) ユーザーによる変換パラメータの設定に役立つ説明が AWS Glue Studio に表示されます。 -
validationType: string– (オプション) このパラメータの検証方法を定義します。現在、正規表現のみをサポートしています。デフォルトで検証タイプはRegularExpressionに設定されています。 -
validationRule: string– (オプション)validationTypeがRegularExpressionに設定されている場合、送信前にフォーム入力を検証するために使用される正規表現。正規表現の構文は RegExp Ecmascript の仕様に合致している必要があります。 -
validationMessage: string– (オプション) 検証が失敗したときに表示するメッセージ。 -
listOptions: An array of TransformParameterListOption objectまたはstring、もしくは「column」という文字列の値 — (オプション) 選択、または複数選択の UI コントロールに表示するためのオプション。カンマ区切り値 (CSV) のリスト、または強く型付けされたTransformParameterListOption型の JSON オブジェクトを受け入れます。文字列の値「column」を指定すると、親ノードのスキーマから、列のリストを動的に入力することもできます。 -
listType: string– (オプション) type = 'list' のオプションタイプを定義します。有効な値: 'str' | 'int' | 'float' | 'list' | 'bool'。一般的な Python データ型を受け入れるパラメータ型。
TransformParameterListOption フィールド
-
value: string | int | float | bool– (必須) オプション値。 -
label: string– (オプション) 選択ドロップダウンに表示されるオプションラベル。
AWS Glue Studio での変換パラメータ
.json ファイルで isOptional と指定しない限り、デフォルトでパラメータは必須です。AWS Glue Studio では、パラメータが [Transform] (変換) タブに表示されます。この例は、E メールアドレス、電話番号、年齢、性別、出身国などのユーザー定義パラメータを示しています。
validationRule パラメータを指定し、validationMessage で検証メッセージを指定することで、JSON ファイルで正規表現を使用する際に AWS Glue Studio で一部の検証を必須にできます。
"validationRule": "^\\(?(\\d{3})\\)?[- ]?(\\d{3})[- ]?(\\d{4})$", "validationMessage": "Please enter a valid US number"
注記
検証はブラウザで行われるため、正規表現の構文は RegExp Ecmascript の仕様
検証を追加することで、ユーザーが誤ったユーザー入力でジョブを保存するのを防ぐことができます。次の例のように AWS Glue Studio に検証メッセージが表示されます。
パラメータは、パラメータ設定に基づいて AWS Glue Studio に表示されます。
-
typeがstr、int、またはfloatの場合、テキスト入力フィールドが表示されます。例えば、スクリーンショットは「E メールアドレス」と「年齢」パラメータの入力フィールドを示しています。
-
typeがboolの場合、チェックボックスが表示されます。
-
typeがstrであり、listOptionsが指定されていると、単一選択リストが表示されます。
-
typeがlistであり、listOptionsとlistTypeが指定されていると、複数選択リストが表示されます。
列のセレクタをパラメータとして表示
スキーマから列をユーザーが選択するように設定されている場合は、列セレクタを表示することで、ユーザーは列の名前を入力する必要がなくなります。listOptions フィールドを「column」に設定すると、親ノードの出力スキーマに基づいて、列セレクタを AWS Glue Studio が動的に表示します。AWS Glue Studio は単一の列、または複数列のセレクタを表示できます。
次の例でスキーマを使用しています。
単一の列を表示するように、Custom Visual Transform パラメータを定義するには
-
JSON ファイルで、
parametersオブジェクトのlistOptionsの値を、「column」に設定します。これにより、ユーザーが AWS Glue Studio の選択リストから列を選択できるようになります。
-
次のようにパラメータを定義すると、複数の列を選択することもできます。
-
listOptions: "column" -
type: "list"
-