3.6. Job Scheduler for Cloud(OCI)の使い方

3.6.1. Job Scheduler for Cloud(OCI/Functions)の使い方

3.6.1.1. Job Scheduler for Cloud(OCI/Functions)の機能

Job Scheduler for Cloud(OCI/Functions)とは、Senju/DCのジョブスケジュール機能と連携し、OCI/Oracle Functionsを実行する機能です。

3.6.1.2. OCI連携機能の設定

  • 説明

    ジョブスケジュールサブシステムを用いてOCI/Functions連携機能を使用するための設定を行います。

  • 設定手順

    OCI/Functions連携機能を設定するには以下の手順が必要です。

    • Oracle Cloud Infrastructureユーザーの登録

    • 認証方式設定

    • OCI情報設定ファイルの作成

3.6.1.2.1. Oracle Cloud Infrastructureユーザーの登録

OCI/Functions連携機能の利用において、事前にOracle Cloud Infrastructure ユーザーの登録が必要です。Oracle Cloud Infrastructureサイトよりユーザー登録を行って下さい。

3.6.1.2.1.1. ポリシーの作成

OCI/Functions連携機能を使用するため、 「OCI/Functions連携機能に必要なアクセス権限」 に示すポリシーを作成して、ユーザーグループにアクセス権限を付与します。

表 3.44 OCI/Functions連携機能に必要なアクセス権限

ジョブ

必要なアクセス権

OCI/Functions連携ジョブ

Allow group <group-name> to inspect fn-app in compartment <compartment-name>
Allow group <group-name> to inspect fn-function in compartment <compartment-name>
Allow group <group-name> to use fn-invocation in compartment <compartment-name>

3.6.1.2.2. 認証設定

3.6.1.2.2.1. インスタンス許可で認証する

OCI内のエージェントからOCI/Functions連携機能を実行する場合は、インスタンスを認可する方法で認証します。Oracle Cloud Infrastructureサイトより動的グループを作成し、インスタンスを動的グループのメンバーとして追加します。その後、OCIサービスへのAPIコールを許可するポリシーを作成して下さい。

表 3.45 動的グループに必要なアクセス権限

ジョブ

必要なアクセス権

OCI/Functions連携ジョブ

Allow dynamic-group <group-name> to inspect fn-app in compartment <compartment-name>
Allow dynamic-group <group-name> to inspect fn-function in compartment <compartment-name>
Allow dynamic-group <group-name> to use fn-invocation in compartment <compartment-name>

3.6.1.2.2.2. APIキーで認証する

OCI外のエージェントからOCI/Functions連携機能を実行する場合は、ユーザーで作成したユーザー設定ファイルを利用して認証します。Oracle Cloud InfrastructureサイトよりAPIキー、フィンガープリント、テナンシのOCID、ユーザーのOCID、リージョンを取得し、ユーザー設定ファイルの作成 で作成して下さい。作成したユーザー設定ファイルをエージェントの千手稼働アカウントでアクセスできる位置に配置し、OCI情報設定ファイル(sj_oci_sys.json)の作成 でOCI情報設定ファイルにユーザー設定ファイルのパスを設定して下さい。

参照URL:https://docs.cloud.oracle.com/ja-jp/iaas/Content/API/Concepts/apisigningkey.htm

3.6.1.2.3. ユーザー設定ファイルの作成

ユーザー設定ファイルは、OCIに関する認証情報の設定ファイルです。dat/opt/sj_oci_user.json.sample をコピーして以下の項目を設定して下さい。

表 3.46 ユーザー設定ファイルの記述内容

項目

省略

説明

tenantOCID

不可

テナンシのOCID

userOCID

不可

ユーザーのOCID

region

不可

リージョン

fingerprint

不可

APIキーのフィンガープリント

privateKeyLocation

不可

秘密キー・ファイルの絶対パス

privateKeyPassphrase

秘密キーを生成する時、設定したパスフレーズ

3.6.1.2.4. OCI情報設定ファイル(sj_oci_sys.json)の作成

sj_oci_sys.jsonファイルは、OCIに関する情報の設定ファイルです。sj_oci_sys.jsonとOCI/Functions連携ジョブのパラメータの両方でユーザー設定ファイルを指定した場合は、OCI/Functions連携ジョブのパラメータで指定した値が有効になります。

設定方法については、Cloud Monitoringsj_setup_oci - OCI情報設定ファイル更新 - を参照して下さい。

OCI情報設定ファイル(dat/opt/sj_oci_sys.json)を作成し、以下の項目を設定して下さい。

表 3.47 sj_oci_sys.jsonの記述内容

項目

省略

デフォルト

暗号化対象

説明

proxyURL

×

OCI接続時に経由するプロキシサーバー。(次の形式で記載して下さい "<プロトコル>://<ipアドレス|ホスト名>:<ポート番号>")

proxyUsername

×

プロキシサーバーアクセス用ユーザーID

proxyPassword

プロキシサーバーアクセス用パスワード(暗号化後のパスワード)

userFilePath

×

ユーザー設定ファイルの絶対パス

  • userFilePathは、APIキーによる認証を行う場合に指定して下さい。

  • proxyUsernameおよびproxyPasswordの両方を指定しなかった場合、プロキシサーバーの認証に利用しません。

3.6.1.3. OCI/Functions連携ジョブの利用方法

OCI/Functions連携ジョブは、Oracle Cloud Infrastructure Consoleなどによって作成したOracle Functionsを実行します。

OCI/Functions連携ジョブが起動されると、引数に指定された内容でOracle Functionsを実行し、実行結果を標準出力に出力します。

OCI/Functions連携ジョブを起動する際に指定する引数には、以下に示す内容を指定して下さい。

sjPEX_CloudFunctions -m OF
        -ofc OCIコンパートメント名
        -ofa OCIアプリケーション名
        -ofn OCIファンクション名
        -ofpf ファンクションパラメータ(JSONファイル名)
        -ouf OCIのユーザー設定ファイル

オプション

省略

デフォルト

長さ

説明

-ofc

不可

OCIコンパートメント名

-ofa

不可

OCIアプリケーション名

-ofn

不可

OCIファンクション名

-ofpf

ファンクションパラメータ(JSONファイル名)

-ouf

OCIのユーザー設定ファイル


  • Senju/DCジョブの起動コマンドの最大文字数は2048文字です。

  • OCIコンパートメント名、OCIアプリケーション名およびOCIファンクション名は、Oracle Cloud Infrastructureサイトで確認して下さい。

3.6.1.3.1. OCI/Functions連携ジョブテンプレートの使い方

ジョブテンプレートとは、ジョブの起動コマンドシーケンスのみを持ち、パラメータ値が未決定であるエンティティです。ジョブテンプレートを用いることにより、ジョブの登録のたびにコマンドシーケンスを入力しなくても、必要なパラメータ値を入力するだけでジョブの作成が行えます。 Job Scheduler for CloudをSenju/DCのジョブスケジュール機能と連携するために、Job Scheduler for Cloudジョブを、Senju/DCのジョブの起動コマンドとして設定します。

OCI/Functions連携ジョブテンプレートを使用し、ジョブの起動コマンドとして利用するには、千手ブラウザのツリービューで、<ドメイン>→“ジョブスケジュール”→“ジョブ”を選択し、ジョブの新規作成を行います。

ジョブの新規作成プロパティウィンドで[ジョブテンプレートを使用]チェックボックスをチェックし、[ジョブテンプレート入力]ボタンを押して下さい。

ジョブテンプレート入力ウィンドでOCI/Functions連携ジョブテンプレートを選択し、各パラメータ値を設定して下さい。

../_images/028.png

図 3.47 OCI/Functions連携ジョブテンプレートの使用


../_images/029.png

図 3.48 OCI/Functions連携ジョブテンプレートの入力


表 3.48 OCI/Functions連携ジョブテンプレートの入力

パラメータ

説明

OCIコンパートメント名

Cloud コンパートメントの名前を指定します。省略不可です。

OCIアプリケーション名

Cloud アプリケーションの名前を指定します。省略不可です。

OCIファンクション名

Oracle Functionの名前を指定します。省略不可です。

ファンクションパラメータ(JSONファイル名)

Oracle Functionsへ渡す引数が記載されたJSONファイルを絶対パスで指定します。必要ない場合は省略可能です。

OCIの認証ファイル

OCIのユーザー設定ファイルを絶対パスで指定します。sj_oci_sys.json で指定した場合、またはインスタンス許可で認証する場合は省略可能です。指定した場合はパラメータで指定した内容が優先されます。

3.6.1.3.2. OCI/Functions連携ジョブの処理の流れ(通常時)

OCI/Functions連携ジョブがSenju/DCのジョブスケジュールで1つのジョブとして起動されると、 「図 6-3  OCI/Functions連携ジョブの処理の流れ」 および 「TABLE 6-7  OCI/Functions連携ジョブの処理の流れ」 に示す流れで動きます。

../_images/030.png

図 3.49 OCI/Functions連携ジョブの処理の流れ


表 3.49 OCI/Functions連携ジョブの処理の流れ

Senju/DC

ジョブの状態

OCI/Functions実行

ジョブの処理内容

メッセージモニタの出力

起動待ち

起動前の状態

稼働中

起動

稼働中

引数に従い、OCI/Clound Functions上の関数実行

正常終了

OCI/Functions実行に成功

!PEXC19

OCI/Functionsの関数実行に成功しました。

異常終了

OCI/Functions実行に失敗

!PEXC20

OCI/Functionsの関数実行に失敗しました。


  1. OCI/Functions連携ジョブが起動されると、引数に指定された内容でOCI/Functionsを実行します。

  2. OCI/Functionsを実行します。

  3. OCI/Functionsが正しく実行されると、成功した旨のメッセージを出力し、Senju/DCジョブは正常終了します。

  4. OCI/Functionsが何らかの理由で正しく実行されないと、失敗した旨のメッセージを出力し、Senju/DCジョブは異常終了します。

3.6.1.3.3. OCI/Functions連携ジョブの処理の流れ(強制停止時)

OCI/Functions連携ジョブは、他のSenju/DCのジョブと同じく強制停止させることができます。

Senju/DCのジョブスケジュールより、OCI/Functions連携ジョブを強制停止しても、関数実行中のOCI/Functionsは実行されたままとなります。

Senju/DCのジョブスケジュールでは、強制停止されたジョブの状態は異常終了となります。