コードタスク コードタスク APIを使用して、Scalaで記述されたSparkコードを詳細クラスタ に送信します。CodeTaskリソースを使用して、コードタスク ジョブを作成、開始、およびキャンセルできます。また、セッションログにアクセスしたり、コードタスク のジョブの詳細やジョブのステータスを表示したりすることもできます。
コードタスク リソースを使用する際は、次のガイドラインを考慮してください。
• コードタスク はScalaで記述します。• コードタスク APIを使用してコードをJARファイルで送信します。• AWSサーバーレスまたは非サーバーレス環境を使用します。• 次のベースURLを使用する。<server URL>/disnext/api/v1/<API name>
• 次の要求ヘッダー形式を使用します。<METHOD> <server URL>/<URI> HTTP/<HTTP version> Content-Type: application/json Accept: application/json IDS-SESSION-ID: <IDS_SESSION_ID>
• コードタスク APIを作成、実行、および表示する権限があることを確認してください。• コードタスク APIで必要に応じて、次のパーシステント変数を使用します。- IDS_SESSION_ID- ORG_ID- CODE_TASK_ID- CODE_TASK_JOB_ID注: 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\"}" }