REST APIリファレンス > データ統合 REST API > コードタスク
  

コードタスク

コードタスクAPIを使用して、Scalaで記述されたSparkコードを詳細クラスタに送信します。CodeTaskリソースを使用して、コードタスクジョブを作成、開始、およびキャンセルできます。また、セッションログにアクセスしたり、コードタスクのジョブの詳細やジョブのステータスを表示したりすることもできます。
コードタスクリソースを使用する際は、次のガイドラインを考慮してください。
注: HTTPバージョンを自動的に含めるPostmanなどのツールを使用する場合は、URLにHTTPバージョンを入力しないでください。HTTPバージョンがURLに2回出現すると、要求が失敗します。
次のタスクを実行して、ScalaコードをJARファイルで送信し、コードタスクジョブを管理および監視します。

コードタスクの作成

CodeTaskリソースを使用してコードタスクを作成します。応答には、後続のAPI呼び出しで使用できるコードタスクIDが含まれます。

POST要求

次のURIを使用してコードタスクを作成します。
POST <server URL>/disnext/api/v1/CodeTask
POST要求で次のフィールドを使用します。
フィールド
タイプ
必須/オプション
説明
codeTaskName
String
必須
コードタスクの名前。
runtimeEnvironmentName
String
オプション
コードタスクに使用されるランタイム環境。
runtimeEnvironmentNameまたはagentGroupIdのいずれかが必要です。両方が指定されている場合は、agentGroupIdが使用されます。
codeExecutionParameters
コードタスクのパラメータ。
agentGroupId
String
必須
コードタスクの実行に使用されるSecure Agentを含むランタイム環境。
runtimeEnvironmentNameまたはagentGroupIdのいずれかが必要です。両方が指定されている場合は、agentGroupIdが使用されます。
overrideTaskTimeout
Long
オプション
この実行のコードタスクタイムアウト値をオーバーライドします。値-1は、タイムアウトがないことを意味します。
logLevel
String
オプション
セッションログ、エージェントジョブログ、Sparkドライバ、およびエグゼキューターログのログレベル。有効な値は、none、terse、normal、verboseInitialization、またはverboseDataです。
デフォルト値はnormalです。
sparkMainClass
String
必須
Sparkアプリケーションのエントリポイント。以下に例を示します。
org.apache.spark.examples.company.SparkExampleApp
sparkMainClassArgs
List <String>
オプション
SparkアプリケーションのMainクラスに送信される順序付けされた引数。以下に例を示します。
--appTypeSPARK_PI_FILES_JARS--
classesToLoadcom.company.test.SparkTest1Class
sparkPrimaryResource
String
必須
コードタスクが含まれているScala JARファイル。
sparkJars
List <String>
オプション
クラスタにアップロードされ、Sparkドライバとエグゼキュータークラスパスに追加されるJARファイルのディレクトリとファイル名。
sparkFiles
List <String>
オプション
クラスタにアップロードされ、現在の作業ディレクトリで利用できるSparkファイルのディレクトリとファイル名。
advancedCustomProperties
String
オプション
データ統合が使用するSparkプロパティまたはその他のカスタムプロパティ。以下に例を示します。
"{\"spark.driver.memory\": \"2G\", \"spark.executor.instances\": \"4\"}"

POST応答

次の変数は応答属性から設定されます。
名前
応答値
CODE_TASK_ID
codeTaskId
コードタスクのstartリソースとviewリソースで使用されます。

POST要求の例

コードタスクを作成するには、次のサンプルを参考にしてください。
POST <server URL>/disnext/api/v1/CodeTask
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID:{{IDS_SESSION_ID}}
{
"codeTaskName" : "CODETASK_API",
"runtimeEnvironmentName" : "{{RTE_NAME}}",
"codeExecutionParameters" : {
"agentGroupId": "{{AGENT_GROUP_ID}}",
"logLevel": "normal",
"sparkMainClass": "org.apache.spark.examples.infa.sparkdirect.SparkDirectExampleApp",
"sparkMainClassArgs": ["6"],
"sparkPrimaryResource": "spark-examples_2.12-3.0.0.jar",
"sparkJars": [],
"sparkFiles": [],
"advancedCustomProperties": "{\"spark.driver.memory\": \"1G\", \"spark.executor.memory\": \"1G\", \"spark.kubernetes.driverEnv.SPARK_DIRECT_TASK_SLEEP\": \"600\", \"spark.kubernetes.driverEnv.SPARK_DIRECT_APP_TYPE\": \"SPARK_PI\", \"spark.kubernetes.driverEnv.SPARK_DIRECT_KMS_ENCRYPTED_PROPS\": \"spark.sparkdirect.kms.prop\", \"spark.sparkdirect.kms.prop\": \"5pkOjS0HILDwSaW6eyxtiwB3g2TBYayjKLRFSSyxn5M=0p6v3eCvrtFkw6K78Buwal\", \"advanced.custom.property\": \"infa.spark.local=false\"}"
}
}

POST応答の例

POST応答が成功すると、次の例のようなサマリ、コードタスクID、およびコードタスク名が返されます。
{
"summary": "Code Task created successfully",
"codeTaskId": 3,
"codeTaskName": "CODETASK_API"
}

コードタスクの開始

次のPOST要求を使用して、コードタスクジョブを開始します。応答には、後続のAPI呼び出しで使用できるコードタスクジョブIDが含まれます。

POST要求

コードタスクを開始するには、タスクIDを使用します。コードタスクIDは、コードタスクの作成時の応答に含まれています。詳細については、コードタスクの作成 を参照してください。
次のURIを使用してコードタスクを開始します。
POST <server URL>/disnext/api/v1/CodeTask/Start
POST要求で次のフィールドを使用します。
フィールド
タイプ
必須/オプション
説明
codeTaskId
String
必須
createリソースからのコードタスクID。

POST応答

次の変数は応答属性から設定されます。
名前
応答値
CODE_TASK_JOB_ID
jobId
コードタスクジョブをキャンセルするか、ジョブステータス、セッションログ、またはSparkタスクステータスを取得するために使用されます。

POST要求の例

コードタスクを開始するには、次のサンプルを参考にしてください。
POST <server URL>/disnext/api/v1/CodeTask/Start
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID:{{IDS_SESSION_ID}}
{
"codeTaskId" : {{CODE_TASK_ID}}
}

POST応答の例

POST応答が成功すると、次の例のようなコードタスクジョブIDなどの情報が返されます。
{
"summary": "Code Task started successfully",
"jobId": "8zcuMdImeshidZ4XVExs20",
"codeTaskInstanceName": "Demo-2",
"sparkCodeTaskResponseBody": {
"agentGroupId": "01000025000000000003",
"clusterConfigId": "Default",
"logLevel": "normal",
"startRunTime": "2022-04-04T20:23:57.154+00:00",
"submitTime": "2022-04-04T20:23:57.095+00:00"
}
}

コードタスクの表示

次のGET要求を使用して、コードタスクの構成パラメータを表示します。

GET要求

コードタスクのパラメータを要求するには、タスクIDを使用します。コードタスクIDは、コードタスクの作成時の応答に含まれています。詳細については、コードタスクの作成 を参照してください。
次のURIを使用してコードタスクのパラメータを取得します。
GET <server URL>/disnext/api/v1/CodeTask/<Code task ID>

GET応答

要求されたタスクIDのコードタスクオブジェクトを返します。
エラーが発生した場合にエラーオブジェクトを返します。
次の表に、応答内のパラメータを示します。
フィールド
タイプ
説明
codeTaskName
String
コードタスクの名前。
codeTaskId
Numeric
コードタスクのID。
agentGroupId
String
コードタスクの実行に使用されるSecure Agentを含むランタイム環境。
overrideTaskTimeout
String
この実行のコードタスクタイムアウト値をオーバーライドします。値-1は、タイムアウトがないことを意味します。
logLevel
String
セッションログ、エージェントジョブログ、Sparkドライバ、およびエグゼキューターログのログレベル。有効な値は、none、terse、normal、verboseInitialization、またはverboseDataです。
デフォルト値はnormalです。
sparkMainClass
String
Sparkアプリケーションのエントリポイント。以下に例を示します。
org.apache.spark.examples.company.SparkExampleApp
sparkMainClassArgs
List<String>
SparkアプリケーションのMainクラスに送信される順序付けされた引数。以下に例を示します。
--appTypeSPARK_PI_FILES_JARS--
classesToLoadcom.company.test.SparkTest1Class
sparkPrimaryResource
String
コードタスクが含まれているScala JARファイル。
sparkJars
List <String>
クラスタにアップロードされ、Sparkドライバとエグゼキュータークラスパスに追加されるJARファイルのディレクトリとファイル名。
sparkFiles
List <String>
クラスタにアップロードされ、現在の作業ディレクトリで利用できるSparkファイルのディレクトリとファイル名。
advancedCustomProperties
String
データ統合が使用するSparkプロパティまたはその他のカスタムプロパティ。

GET要求の例

コードタスクのパラメータを取得するには、次のサンプルを参考にしてください。
GET <server URL>/disnext/api/v1/CodeTask/<Code task ID>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID:{{IDS_SESSION_ID}}

GET応答の例

GET応答が成功すると、次の例のようなコードタスクのパラメータが返されます。
{
"codeTaskName": "CODETASK_API",
"codeTaskId": 3,
"agentGroupId": "01000025000000000003",
"overrideTaskTimeout": null,
"logLevel": "normal",
"sparkMainClass": "org.apache.spark.examples.infa.sparkdirect.SparkDirectExampleApp",
"sparkMainClassArgs": ["6"],
"sparkPrimaryResource": "spark-examples_2.12-3.0.0.jar",
"sparkJars": [],
"sparkFiles": [],
"advancedCustomProperties": "{\"spark.driver.memory\": \"1G\", \"spark.executor.memory\": \"1G\", \"spark.kubernetes.driverEnv.SPARK_DIRECT_TASK_SLEEP\": \"600\", \"spark.kubernetes.driverEnv.SPARK_DIRECT_APP_TYPE\": \"SPARK_PI\", \"spark.kubernetes.driverEnv.SPARK_DIRECT_KMS_ENCRYPTED_PROPS\": \"spark.sparkdirect.kms.prop\", \"spark.sparkdirect.kms.prop\": \"5pkOjS0HILDwSaW6eyxtiwB3g2TBYayjKLRFSSyxn5M=0p6v3eCvrtFkw6K78Buwal\", \"advanced.custom.property\": \"infa.spark.local=false\"}"
}

コードタスクのステータス

次のGET要求を使用して、コードタスクのジョブステータスを確認します。

GET要求

コードタスクのジョブステータスを要求するには、コードタスクジョブIDを使用します。コードタスクジョブIDは、コードタスクの開始時の応答に含まれています。詳細については、コードタスクの開始を参照してください。
次のURIを使用してコードタスクのジョブステータスパラメータを取得します。
GET <server URL>/disnext/api/v1/CodeTask/JobStatus/<Code task job ID>

GET応答

要求されたジョブIDのコードタスクのオブジェクトを返します。
エラーが発生した場合にエラーオブジェクトを返します。
次の表に、応答内のパラメータを示します。
フィールド
タイプ
説明
codeTaskName
String
コードタスクの名前。
codeTaskId
数値
コードタスクのID。
agentGroupId
String
コードタスクの実行に使用されるSecure Agentを含むランタイム環境。
executionState
String
ジョブの状態: QUEUED、RUNNING、SUCCEEDED、FAILED、CANCELLED ジョブステータス。ジョブは、次のいずれかの状態になります。
  • - 起動。ジョブが開始されました。
  • - 実行中。ジョブはキューに入れられているか、実行中です。
  • - 成功。ジョブが正常に完了しました。
  • - 失敗しました。エラーが発生したため、ジョブは完了しませんでした。
sessionLogUrl
String
セッションログファイルのURL。
assignedServerlessComputeUnits
Double
1時間あたりのタスクが要求したサーバーレスコンピューティングユニット数。
タスクがサーバーレスランタイム環境で実行される場合、要求されたコンピューティングユニット数を表示できます。
consumedServerlessComputeUnits
Double
タスクが使用したサーバーレスコンピューティングユニットの合計数。
タスクがサーバーレスランタイム環境で実行される場合、使用されたコンピューティングユニット数を表示できます。
firstErrorMessage
String
ジョブに関連付けられているエラーメッセージ(ある場合)。

GET要求の例

コードタスクのジョブステータスを取得するには、次のサンプルを参考にしてください。
GET <server URL>/disnext/api/v1/CodeTask/JobStatus/<Code task job ID>
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID:{{IDS_SESSION_ID}}

GET応答の例

GET応答が成功すると、次の例のようなコードタスクのジョブステータスが返されます。
{
"status": "RUNNING",
"startTime": "2022-04-04T20:23:57.000",
"updateTime": "2022-04-04T20:23:58.000",
"endTime": null,
"instanceName": "Demo-2",
"assetName": "Demo",
"runId": 2,
"orgId": "kuJVH54wm6gfhVj4QEdboY",
"startedBy": "coder@examplecompany.com",
"runtimeEnvId": "01000025000000000003",
"codeTaskId": 2,
"errorMessage": "",
"sessionLogUrl": "logservice/api/v1/jobs/8zcuMdImeshidZ4XVExs20/logs",
"agentJobLogUrl": null,
"advancedLogLocation": null,
"advancedLogDownloadUrl": null
}
GET応答がエラーステータスの場合は、次の例のようなコードタスクのジョブステータスが返されます。
{
"status": "FAILED",
"startTime": "2022-03-10T17:23:29.000",
"updateTime": "2022-03-10T17:23:34.000",
"endTime": "2022-03-10T17:23:34.000",
"instanceName": "Demo-2",
"assetName": "Demo",
"runId": 2,
"orgId": "4nuRA6NIsI6lvUBYamL76P",
"startedBy": "coder@examplecompany.com",
"runtimeEnvId": "01000025000000000003",
"codeTaskId": 477,
"errorMessage": "WES_internal_error_Failed to start cluster for [01000025000000000003]. Error reported while starting cluster [404 {\"code\":\"CONFIG.NOT_FOUND_id\",\"message\":\"Internal error. Cannot find an advanced configuration with ID 01000025000000000003. Contact Informatica Global Customer Support.\",\"debugMessage\":\"Internal error. Cannot find an advanced configurati[truncated]. For more information about the failure, check the application log.If the problem persists, contact Informatica Global Customer Support.",
"sessionLogUrl": "logservice/api/v1//jobs/6pqqt9KTgi3l9jyVnAajei/logs",
"agentJobLogUrl": null,
"advancedLogLocation": null,
"advancedLogDownloadUrl": null
}

コードタスクのキャンセル

次のPUT要求を使用して、コードタスクジョブをキャンセルします。

PUT要求

コードタスクジョブをキャンセルするには、コードタスクジョブIDを使用します。コードタスクジョブIDは、コードタスクの開始時の応答に含まれています。詳細については、コードタスクの開始を参照してください。
次のURIを使用してコードタスクジョブをキャンセルします。
PUT <server URL>/disnext/api/v1/CodeTask/Cancel
PUT要求で次のフィールドを使用します。
フィールド
タイプ
必須/オプション
説明
jobId
String
必須
startリソースからのコードタスクジョブID。

PUT応答

要求されたジョブIDのコードタスクのキャンセル状態を返します。
エラーが発生した場合にエラーオブジェクトを返します。

PUT要求の例

コードタスクジョブをキャンセルするには、次のサンプルを参考にしてください。
PUT <server URL>/disnext/api/v1/CodeTask/Cancel
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID:{{IDS_SESSION_ID}}
{
"jobId" : {{CODE_TASK_JOB_ID}}
}

PUT応答の例

PUT応答が成功すると、次の例のようなコードタスクジョブのキャンセル情報が返されます。
{
"state": "Code Task marked for cancellation.",
"jobId": "6pqqt9KTgi3l9jyVnAajei"
}

コードタスクのセッションログ

jobsリソースを使用して、コードタスクのセッションログにアクセスします。

GET要求

コードタスクのセッションログにアクセスするには、コードタスクジョブIDを使用します。コードタスクジョブIDは、コードタスクの開始時の応答に含まれています。詳細については、コードタスクの開始を参照してください。
次のURIを使用してコードタスクのセッションログを取得します。

GET <server URL>/logservice/api/v1/jobs/<Code task job ID>/logs
Postmanの[Send and Download]オプションを使用できます。

GET応答

要求されたジョブIDのコードタスクのZIPファイルへのリンクを返します。
エラーが発生した場合にエラーオブジェクトを返します。

GET要求の例

コードタスクのセッションログにアクセスするには、次のサンプルを参考にしてください。
GET <server URL>/logservice/api/v1/jobs/<Code task job ID>/logs
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID:{{IDS_SESSION_ID}}

コードタスクのSparkタスクの結果

jobsリソースを使用して、コードタスクのSparkタスクの結果にアクセスします。

GET要求

コードタスクのSparkタスクの結果にアクセスするには、コードタスクジョブIDを使用します。コードタスクジョブIDは、コードタスクの開始時の応答に含まれています。詳細については、コードタスクの開始を参照してください。
次のURIを使用してコードタスクのSparkタスクの結果にアクセスします。

GET <server URL>/logservice/api/v1/jobs/<Code task job ID>/callback

GET応答

要求されたジョブIDのコードタスクのSparkタスクの詳細を返します。
エラーが発生した場合にエラーオブジェクトを返します。

GET要求の例

コードタスクのSparkタスクの結果にアクセスするには、次のサンプルを参考にしてください。
GET <server URL>/logservice/api/v1/jobs/<Code task job ID>/callback
Content-Type: application/json
Accept: application/json
IDS-SESSION-ID:{{IDS_SESSION_ID}}

GET応答の例

GET応答が成功すると、次の例のようなコードタスクのSparkタスクの結果が返されます。
{

"jobId": "73LJ52V0tiNjC2HFb2YggK",

"callbackBody": "{\"taskId\": \"73LJ52V0tiNjC2HFb2YggK\", \"executionId\": \"73LJ52V0tiNjC2HFb2YggK\", \"sessionLogUrl\": \"logservice/api/v1/jobs/73LJ52V0tiNjC2HFb2YggK/logs\", \"executionState\": \"RUNNING\"}"

}