お知らせ:

当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

Job Functions

はじめに

Job Functionsは、Function Job Poolジョブが実行される際に呼び出すことができるFunctionタイプです。このFunctionにカスタムビジネスロジックをコーディングし、ジョブプールでFunctionをトリガーするジョブがスケジュールされた時間に実行されます。

Job Functionは、Event Functionsと同様に非HTTPS Functionです。このFunctionにはエンドポイントがなく、Function Job Poolでこの特定のJob Functionをターゲットタイプとしてジョブが実行された場合にのみ呼び出されます。

Job Functionは以下のランタイムでコーディングできます:

他のServerless Functionsと同様に、CLIからJob Functionsを作成、初期化、デプロイできます。また、Job FunctionをZIPファイルとしてコンソールにアップロードすることもできます。

ただし、Job Functionsは非HTTPS Functionであるため、そのURLはBasic I/OAdvanced I/O Functionsのようにアクセスできません。Job Functionをテストするには、以下のCLIコマンドを使用し、Functionシェルを使用してください。

copy
$
catalyst functions:shell

Job Functionは、Function実行の成功または失敗の判定以外のレスポンスを返しません。

また、以下のCatalyst DevOpsコンポーネントを使用して、Job Functionのパフォーマンスを表示・監視できます:

  • Logs: Job Functionsに関するすべての実行を表示、管理、監視できます。
  • Application Performance Monitoring: このコンポーネントを使用して、Job Functionのパフォーマンスに関する詳細なインサイトを収集できます。
注意: Job Functionをディスパッチ遅延なく正常に実行するには、Job Functionの割り当てメモリジョブプールの割り当てメモリよりも少ないことを常に確認してください。ディスパッチ遅延の防止の詳細については、こちらのヘルプセクションを参照してください。

メリット

  • Job FunctionはCatalystの堅牢なCLIを使用して作成、初期化、デプロイできます。これにより、CLIを通じてFunctionを初期化する際に、Functionのデプロイに必要なすべての依存関係が自動的にインストールされます。

  • Job FunctionsはCatalystのServerlessコンソールのエディタでも作成できます。

  • Job Functionsには、あらゆるカスタムビジネスロジックをコーディングできる理想的なボイラープレートコードが含まれており、残りのバックエンド要件はCatalystによって処理されます。

Functionボイラープレートコード

コンソールで作成するか、CLIを使用して初期化する際にJob Functionに含まれるボイラープレートコードを以下に示します:

Java Job Function Boilerplate
copy

import java.util.logging.Level; import java.util.logging.Logger;

import com.catalyst.Context; import com.catalyst.job.JOB_STATUS; import com.catalyst.job.JobRequest; import com.catalyst.job.CatalystJobHandler;

import com.zc.common.ZCProject; import com.zc.component.cache.ZCCache;

public class Sample implements CatalystJobHandler {

private static final Logger LOGGER = Logger.getLogger(Sample.class.getName());

@Override public JOB_STATUS handleJobExecute(JobRequest request, Context arg1) throws Exception { try { ZCProject.initProject(); Object eventData = request.getAllJobParams(); if (eventData != null) { LOGGER.log(Level.SEVERE, "Data is" + eventData.toString()); } LOGGER.log(Level.SEVERE, "Project Details " + request.getProjectDetails().toString()); ZCCache.getInstance().putCacheValue("JobSample", "Working", 1 l); LOGGER.log(Level.SEVERE, "Inserted SucessFully:)"); } catch (Exception e) { LOGGER.log(Level.SEVERE, "Exception in Job Function", e); return JOB_STATUS.FAILURE; } return JOB_STATUS.SUCCESS; }

}

View more
Node.js Job Function Boilerplate
copy

/** *

  • @param {import("./types/job").JobRequest} jobRequest

  • @param {import("./types/job").Context} context */ module.exports = (jobRequest, context) => { console.log(‘Hello from index.js’);

    // function input: { job_details: { job_meta_details: { params: { key: ‘value’ } } } }

    /**

    • JOB REQUEST FUNCTIONALITIES */

    const projectDetails = jobRequest.getProjectDetails(); // 現在のプロジェクト詳細を取得する const jobDetails = jobRequest.getJobDetails(); // 現在のジョブ詳細を取得する const jobMetaDetails = jobRequest.getJobMetaDetails(); // 現在のジョブのメタデータ詳細を取得する const jobpoolDetails = jobRequest.getJobpoolDetails(); // 現在のFunctionジョブプールの詳細を取得する const getJobCapacityAttributes = jobRequest.getJobCapacityAttributes(); // 現在のジョブのキャパシティを取得する const allJobParams = jobRequest.getAllJobParams(); // ジョブ関数に渡されたすべてのパラメータを取得する const jobParam = jobRequest.getJobParam(‘key’); // ジョブ関数に渡された特定のパラメータの値を取得する

    /**

    • CONTEXT FUNCTIONALITIES */ context.closeWithSuccess(); //end of application with success // context.closeWithFailure(); //end of application with failure };
View more
Python Job Function Boilerplate
copy

import logging

def handler(job_request, context): logger = logging.getLogger() logger.info(‘Hello from main.py’)

# function input: { job_details: { job_meta_details: { params: { key: 'value' } } } }

‘‘‘JobRequest Functionalities’’’ job_details = job_request.get_job_details() # 現在のジョブの詳細を取得する project_details = job_request.get_project_details() # 現在のプロジェクトの詳細を取得する job_meta_details = job_request.get_job_meta_details() # 現在のジョブのメタデータを取得する job_pool_details = job_request.get_job_pool_details() # 現在のFunctionジョブプールの詳細を取得する job_capacity_attributes = job_request.get_job_capacity_attributes() # 現在のジョブのキャパシティを取得する all_job_params = job_request.get_all_job_params() # ジョブ関数に渡されたすべてのパラメータを取得する job_param = job_request.get_job_param(‘key’) # ジョブ関数に渡された特定のパラメータの値を取得する

‘‘‘Context Functionalities’’’ remaining_execution_time_ms = context.get_remaining_execution_time_ms() # ジョブ関数の最大許容実行時間を取得する max_execution_time_ms = context.get_max_execution_time_ms() # このジョブ関数の残り実行時間を取得する

context.close_with_success() # 成功レスポンスで関数の実行を終了する

View more

Catalyst CLIを使用したJob Functionsのテスト

Job FunctionsはEventおよびIntegration Functionsと同様に非HTTPS Functionsです。Job Functionを手動で呼び出したり、コンソールでテストしたりすることはできません。ただし、Catalyst CLIFunctionシェルを使用してサンプルペイロードを生成し、Functionをテストできます。

以下のCLIコマンドでサンプルペイロードが生成され、ローカル環境でFunctionをテストするために使用できます。

copy
$
catalyst event:generate:job 10108000007982015 // 必要なJob Pool IDに置き換えてください

catalyst_job_scheduling_job_functions_sample_payload

このペイロードを必要なJob Functionの実行時に入力し、出力を検証できます。

Job Function引数

Catalyst Job Functionは、Javaで2つの引数をサポートしています:JobRequestContext

JobRequest引数には、以下の組み込みメソッドが含まれています:

  • JobRequest.getProjectDetails(): プロジェクトIDやプロジェクト名などのプロジェクト詳細を取得するために使用されます。
  • JobRequest.getJobDetails(): ジョブID、関連するJob Pool、ジョブ名を含むジョブのすべての詳細を取得するために使用されます。
  • JobRequest.getJobMetaDetails(): 実行時間、ディスパッチ遅延、リトライ試行の詳細を含むジョブのすべてのメタ詳細を取得するために使用されます。
  • JobRequest.getJobpoolDetails(): Job Poolのすべての詳細を取得するために使用されます。詳細にはJob Pool ID、Job Pool名、Job Poolタイプが含まれます。
  • JobRequest.getJobCapacityAttributes(): Function Job Poolに割り当てられたメモリに関するすべての詳細を取得するために使用されます。
  • JobRequest.getAllJobParams(): Functionに渡されたすべてのパラメータ(キーと値のペア)を取得するために使用されます。
  • JobRequest.getJobParam(String key): キーを文字列としてFunctionに渡してパラメータの値を取得するために使用されます。

Context引数には、以下の組み込みメソッドが含まれています:

  • Context.getRemainingExecutionTimeMs(): Job Functionの残りの実行時間を取得するために使用できます。
  • Context.getMaxExecutionTimeMs(): このメソッドは、Job Functionの最大実行時間を取得するために使用でき、15分の定数値です。

Catalyst Job Functionは、Node.jsで2つの引数をサポートしています:jobDetailscontext

jobDetails引数には、以下の組み込みメソッドが含まれています:

  • jobDetails.getJobDetails(): ジョブID、関連するJob Pool、ジョブ名を含むジョブのすべての詳細を取得するために使用されます。
  • jobDetails.getJobMetaDetails(): 実行時間、ディスパッチ遅延、リトライ試行の詳細を含むジョブのすべてのメタ詳細を取得するために使用されます。
  • jobDetails.getJobPoolDetails(): Job Poolのすべての詳細を取得するために使用されます。詳細にはJob Pool ID、Job Pool名、Job Poolタイプが含まれます。
  • jobDetails.getProjectDetails(): プロジェクトIDやプロジェクト名などのプロジェクト詳細を取得するために使用されます。
  • jobDetails.getJobCapacityAttributes(): Function Job Poolに割り当てられたメモリに関するすべての詳細を取得するために使用されます。
  • jobDetails.getAllJobParams(): Functionに渡されたすべてのパラメータ(キーと値のペア)を取得するために使用されます。
  • jobDetails.getJobParam(key): キーを文字列としてFunctionに渡してパラメータの値を取得するために使用されます。

context引数には、以下の組み込みメソッドが含まれています:

  • context.getRemainingExecutionTimeMs(): Job Functionの残りの実行時間を取得するために使用できます。
  • context.getMaxExecutionTimeMs(): このメソッドは、Job Functionの最大実行時間を取得するために使用でき、15分の定数値です。
  • context.closeWithSuccess(): このメソッドは、ジョブの実行が成功したことを示すために使用できます。
  • context.closeWithFailure(): このメソッドは、ジョブの実行が失敗したことを示すために使用できます。

Catalyst Job Functionは、Pythonで2つの引数をサポートしています:job_detailscontext

job_details引数には、以下の組み込みメソッドが含まれています:

  • job_details.get_job_details(): ジョブID、関連するJob Pool、ジョブ名を含むジョブのすべての詳細を取得するために使用されます。
  • job_details.get_job_meta_details(): 実行時間、ディスパッチ遅延、リトライ試行の詳細を含むジョブのすべてのメタ詳細を取得するために使用されます。
  • job_details.get_job_pool_details(): Job Poolのすべての詳細を取得するために使用されます。詳細にはJob Pool ID、Job Pool名、Job Poolタイプが含まれます。
  • job_details.get_project_details(): プロジェクトIDやプロジェクト名などのプロジェクト詳細を取得するために使用されます。
  • job_details.get_job_capacity_attributes(): Function Job Poolに割り当てられたメモリに関するすべての詳細を取得するために使用されます。
  • job_details.get_all_job_params(): Functionに渡されたすべてのパラメータ(キーと値のペア)を取得するために使用されます。
  • job_details.get_job_param(key): キーを文字列としてFunctionに渡してパラメータの値を取得するために使用されます。

context引数には、以下の組み込みメソッドが含まれています:

  • context.get_remaining_execution_time_ms(): Job Functionの残りの実行時間を取得するために使用できます。
  • context.get_max_execution_time_ms(): このメソッドは、Job Functionの最大実行時間を取得するために使用でき、15分の定数値です。
  • context.close_with_success(): このメソッドは、ジョブの実行が成功したことを示すために使用できます。
  • context.close_with_failure(): このメソッドは、ジョブの実行が失敗したことを示すために使用できます。

最終更新日 2026-03-30 13:40:30 +0530 IST