MQTT プラグイン

このプラグインを使用すると、MQTT Message Queuing Telemetry Transport (MQTT) とは、特に帯域幅が限られたデバイス通信用のネットワークプロトコルです。 を使用して MERLICMQTT クライアントとして製造マシンに統合し、プログラマブルロジックコントローラ (PLC) または SCADA Supervisory Control and Data Acquisition システムなど、別の MQTT クライアントとの TCP 経由での通信をセットアップすることができます。MQTT は、IoT デバイス間でのデータ交換用のオープンな OASIS Organization for the Advancement of Structured Information Standards 標準メッセージングプロトコルです。MQTT プラグインを使用して、プロセス統合システムの状態および結果を監視するだけでなく、制御することもできます。

動作の原理

トピックとメッセージ

MQTT を介した通信では、2 バイトから最大 256 メガバイトまでの長さのメッセージを使用できます。メッセージは階層的なトピックで構成され、接続の確立、データの公開、データ受信の確認など各種のメッセージタイプを持つことができます。メッセージの収集と配信は、MQTT メッセージブローカーによって管理されます。ブローカーは、すべてのクライアントからメッセージを収集し、それぞれのトピックをサブスクライブしているクライアントに送信します。1 つのトピックごとに 1 つのメッセージを、後日そのトピックをサブスクライブしているクライアントのために保持しておくことができます。

MQTT クライアント

MQTT クライアントは、MQTT ライブラリを実行していて MQTT メッセージブローカーと通信できるデバイスであれば、どのようなデバイスでもかまいません。MQTT プラグインを使用する場合、MERLIC 自体がMQTT クライアントとして機能し、MQTT ブローカーとメッセージを交換できます。

MQTT プラグインの機能をテストするには、マシンのビジョンシステムのセットアップで既存の MQTT クライアントデバイスを使用するか、ローカルシステムに MQTT クライアントソフトウェア、たとえば MQTT Explorer をインストールします。

MQTT メッセージブローカー

MQTT ブローカーは、クライアントからのメッセージをすべて受信し、サブスクリプションが設定されているメッセージを MQTT クライアントにルーティングするサーバーです。MQTT ブローカーは、Eclipse Mosquitto™ ブローカーなど、使用可能であればどれでもかまいません。mqtt://test.mosquitto.org:1883 ではパブリックインスタンスが使用可能です。

制限

  • MQTT プラグインには現在、セキュリティ機能、具体的には証明書ベースの TLS/SSL 暗号化機能がありません。
  • 他のプラグインは、プラグイン、たとえば MERLIC RTE Setup の「I/O」タブに統合されているシミュレーション PLC などの動作に干渉する可能性があります。

要件

MQTT ブローカー / クライアント

ネットワーク上で MQTT ブローカーしか利用できない場合は、ブローカーをインストールして実行する必要があります。また、少なくとも 1 つの MQTT クライアントを起動して接続する必要があります。

有効な構成

プロセス統合モードには、少なくとも 1 つのレシピを含む有効な構成を定義する必要があります。構成は MERLIC Runtime Environment Setup で設定できます。

MQTT プラグインによるプロセス統合モードの運用

MQTT プラグインでプロセス統合モード、つまり MERLIC RTE を運用するには、以下の手順が必要です。

  1. ローカルシステム上に、またはリモート接続を介して、MQTT メッセージブローカーを用意します。
  2. MQTT クライアントを用意して、トピック「merlic/action」のメッセージをブローカーに送信します。このメッセージは、プロセス統合モードで MERLIC を制御する際に使用できます。
  3. 有効なレシピを少なくとも 1 つ含む構成で MERLIC RTE を起動し、MERLIC RTE SetupMQTT プラグインを構成します。詳細については、構成オプションセクションを参照してください。
  4. MQTT メッセージブローカーに接続した状態で MQTT プラグインを起動します。詳細については、MQTT プラグインの開始セクションを参照してください。
  5. オプション: MQTT クライアントを使用して、トピック「merlic/action」のブローカーにメッセージを送信し、MERLIC RTE を制御します。
  6. オプション: MQTT プラグインによって公開されたメッセージを表示して参照するために、MQTT クライアントを用意します。クライアントは、ステップ 2 と同じものでかまいません。

MQTT プラグインを起動すると、MERLIC ビジョンシステムの現在の状態に関する情報が自動的に収集されます。また、MERLIC RTE Setup の「MQTT Connection Details」セクションでプラグインインスタンスに定義されている MQTT ブローカーに自動的に接続します。MQTT プラグインは、MERLIC からの情報をメッセージで、指定された以下の MQTT トピックに公開します。

  • merlic/mode
  • merlic/preparedRecipeIds
  • merlic/recipes
  • merlic/runningJobId
  • merlic/state

MERLIC は、初期状態である「Preoperational」から「Initialized」へ、またデフォルトレシピが構成されている場合は「Ready」へと遷移します。「Ready」の状態では、{"actionType": "StartSingleJob"} をトピック「merlic/action」に公開することによって、ビジョンシステムの 1 回の実行をトリガーすることができます。連続実行は、{"actionType": "StartContinuous"} を使用してトリガーされ、{"actionType": "Stop"} で停止することができます。

詳細については、着信メッセージセクションを参照してください。

プロセス統合モード、つまり MERLIC RTE アプリケーションの実行中に、MVApp からの結果は MQTT プラグインによって トピック「merlic/recipes/0/result」に公開されます。 MQTT プラグインによって自動的に情報が更新されて送信されます。

MQTT プラグインの開始

MQTT プラグインは、MERLIC RTE Setup を介して、またコマンドラインを使用して起動することができます。

MERLIC RTE Setup を通じて

まず MERLIC RTE が起動していることを確認します。起動していない場合は MERLIC RTE Setup から起動し、次のように進められます。

  • アイコンから MQTT プラグインインスタンスのメニューを開き、「 スタート」をクリックします。
  • あるいは、左側の MQTT プラグインインスタンスを選択し、MERLIC RTE Setup の下部にある「Start plug-in」ボタンをクリックします。

MQTT プラグインを開始する前に、MERLIC RTE が目的に合わせて構成されていることを確認してください。たとえば、MERLIC RTE SetupMQTT プラグインのインスタンスを追加するときには、MERLIC RTE に定義したログレベルでプラグインインスタンスが追加されます。MQTT メッセージブローカーに公開されるメッセージをログに記録する場合は、MERLIC RTE を起動してプラグインインスタンスを追加する前に、MERLIC RTE のログレベルを「debug」に設定する必要があります。

レシピの読み込みと変更

デフォルトレシピが構成されている場合、MERLIC はそれを読み込み、初期状態「Preoperational」から「Initialized」へ、そして「Ready」へと遷移します。デフォルトレシピがない場合、MERLIC は起動直後から「Initialized」状態のままです。最初のレシピを読み込むことには、MQTT クライアントを使用して、以下の JSON メッセージをトピック「merlic/action」に公開します。MQTT プラグインは、このメッセージを自動的に受信します。

コピー
{
    "actionType": "PrepareRecipe",
    "recipeId": "0"
}

他のレシピは MERLIC が「Ready」状態のときにのみ読み込むことができます。

構成オプション

MQTT プラグインの構成を確認して編集するには、MERLIC RTE が実行されている必要がありますが、プラグインは停止している必要があります。設定の異なる複数の構成を扱うことができます。以下の項で説明する構成には、MERLIC RTE Setup のみを使用してください。ただし、ファイル「MQTT.json」が破損している場合など、手動で設定を確認して変更することは可能です。

Plug-in Parameters

このタイプのパラメーターは、通信プラグインの一般的なパラメーターを表しますが、「通信」タブの構成エリアでは調整することはできません。これらのパラメーターは、プラグインのバージョン番号、ログレベルの現在のパラメーター値、プラグインのアクセスレベルを表すこともあります。これらの値は、それぞれ異なる場所または異なる方法で設定する必要があります。

Version

このパラメーターでは、プラグインの実装時に定義されたバージョン番号が表示されます。これには、メジャー、マイナー、メンテナンスバージョンがあります。新しいプラグインインスタンスを追加したときにも表示されます。バージョンは任意です。したがって、実装時にバージョン番号の定義を省略することもできます。

Log level

このパラメーターは、プラグインインスタンスのログレベルを示します。デフォルトのログレベルは、MERLIC RTE Setup でプラグインインスタンスを追加するときのそれぞれの MERLIC RTE プロセスのログレベルに設定されています。

Access level

このパラメーターはプラグインに設定されているアクセスレベルを示します。MQTT プラグインの場合、アクセスレベルはデフォルトで「monitor and control」に設定されています。つまり、プラグインは「イベント」を受信して「アクション」を送信することができます。アクセスレベルは、プラグインの実装で定義されている機能と相関関係があります。アクセスレベルは MERLIC RTE Setup では調整できません。

Supports rapid validation

このパラメーターは、プラグインが現在のプラグイン構成の即時検証をサポートしているかどうかを示します。このプラグインでは、チェックボックスにチェックが入っていることで「高速検証」がサポートされていることが示されています。これは、MERLIC RTE Setup の「通信」タブで編集可能なパラメーターを変更するたびにプラグインの構成が検証されることを意味します。プラグインが高速検証をサポートしていない場合、プラグインの構成は構成を保存するときにのみ検証されます。

User Parameters

User parameters」は、プラグインに構成可能なパラメーターを示します。パラメーターはカテゴリごとに表示され、展開したり閉じたりすることができます。

以下の項では、カテゴリごとのパラメーターについて説明します。

MQTT Connection Details

このカテゴリのパラメーターでは、MQTT ブローカーの接続設定を定義します。MQTT ブローカーがローカルシステム上で従来のポート 1883 で実行されている場合は、デフォルト構成をそのまま使用できます。現時点では、証明書ベースの SSL/TLS も、事前共有鍵ベースの TLS もサポートされていません。

以下の図は、MQTT 接続に使用できるパラメーターと、それぞれのデフォルト設定を示しています。パラメーターについては、図の後に詳細な説明があります。

Hostname

このパラメーターでは、MQTT ブローカーのホスト名または IP アドレスを定義します。パラメーターの設定値はデフォルトで「localhost」です。

Port

このパラメーターでは、MQTT ブローカーが動作するポートを定義します。デフォルトのパラメーター設定値は 1883 です。

Authentication

このカテゴリのパラメーターでは、パスワード認証を必要とする MQTT ブローカーに接続する場合に、ユーザー認証情報を定義できます。

以下の図は、認証に使用できるパラメーターを示しています。

Authenticate with username/password

このパラメーターでは、認証が使用されるかどうかを定義します。デフォルトでは選択されておらず、MQTT ブローカーへの接続時にユーザー認証情報は提供されません。

Username

このパラメーターでは、認証のためのユーザー名を定義します。パラメーター「Authenticate with username/password」が選択されている場合にのみ設定可能です。

Password

このパラメーターでは、認証のためのパスワードを定義します。パラメーター「Authenticate with username/password」が選択されている場合にのみ設定可能です。デフォルトでは、パスワードは表示されず、代わりに黒丸点で表示されます。パスワードをそのまま表示するには、アイコン をクリックします。

パスワードは平文で格納されます。現在、TLS 暗号化はサポートされていません。

Topics & Messages

このカテゴリのパラメーターでは、MERLIC RTEMQTT プラグインを経由して送信するメッセージの設定を定義します。メッセージは JSON 形式で公開されます。

以下の図は、トピックおよびメッセージに使用できるパラメーターと、それぞれのデフォルト設定を示しています。パラメーターについては、図の後に詳細な説明があります。使用可能なトピックとそれぞれの JSON スキーマの詳細については、トピックの概要セクションを参照してください。

Topic prefix

このパラメーターでは、MERLIC RTE がメッセージを識別する際に使用するトピック接頭辞を定義します。デフォルトの接頭辞は「merlic」です。詳細については、送信メッセージセクションを参照してください。

Compact JSON

このパラメーターを設定すると、空白や改行のない JSON 形式で出力されます。デフォルトでは、このパラメーターはあらかじめ設定されています。

JSON indentation level

このパラメーターでは、JSON のインデントレベル、つまり JSON メッセージで使用される空白の数を定義します。このオプションは、パラメーター「Compact JSON」が設定されていない場合にのみ適用されます。通常、2 ~ 4 のインデントレベルが使用されます。デフォルトのパラメーター設定値は 2 です。

Publish errors

このパラメーターを設定すると、MERLIC RTE によって報告されるエラーは、トピック「merlic/error」とそのサブトピックに公開されます。エラーメッセージは保持されず、つまりエラー発生時点でのトピックのサブスクライバーにのみ配信されます。デフォルトでは、このパラメーターはあらかじめ設定されています。

Publish recipe data

このパラメーターを設定すると、レシピリストはトピック「merlic/recipes」に公開されます。また、各レシピについて Boolean が、「merlic/recipes/{id}/isPrepared」({id} は数値のレシピ ID) 形式のトピックに公開されます。Boolean の値は、そのレシピが現在準備中かどうか示します。プラグインがすでに実行されている間にこれらのトピックをサブスクライブしているクライアントが現在のレシピデータを受信するように、これらのメッセージが保持されます。デフォルトでは、このパラメーターはあらかじめ設定されています。

Publish result data

このパラメーターを設定すると、新しい結果は結果が生成されたレシピの数値レシピ ID を {id} が参照する「merlic/recipes/{id}/result」形式のトピックと、そのサブトピックに公開されます。結果メッセージは保持されず、つまり結果を受信した時点でのトピックのサブスクライバーにのみ配信されます。デフォルトでは、このパラメーターはあらかじめ設定されています。

Publish result images

このパラメーターは、MVApp の結果画像を定義します。これはレシピとして実行されて公開されます。このパラメーターは、パラメーター「Publish result data」が設定されている場合にのみ有効になります。

Publish result images が設定されている場合は、正常に取得された結果の画像のデータが「{prefix}/recipes/{id}/result/images/{dataIndex}/data」のトピックに公開されます。このトピックは、JSON メッセージを伝えない唯一のトピックです。

{dataIndex} は、MVApp の対応する画像の結果の数値 (0 ベース) インデックスを参照します。結果の画像を公開する場合、結果の画像の詳細設定、たとえばフィルターモードや、画像データのペイロードフォーマットなどを指定することができます。各パラメーターは結果の画像に対する他の構成オプションと一緒に「Image Results」というカテゴリにあります。

MERLIC に格納されていないため、あるいは目的のフォーマットへの変換に失敗したなどのために画像を取得できなかった場合は、「{prefix}/recipes/{id}/result/images/{dataIndex}/error」にエラーが公開されます。このトピックでは、トピック「{prefix}/error」がすでに使用しているのと同じ[error.json]スキーマが使用される。

デフォルトではこのパラメーターは設定されていないため、結果の画像は公開されません。

Image Results

このカテゴリのパラメーターは、結果の画像がどのように公開されるかを定義します。カテゴリ「Topics & Messages」のパラメーター「Publish result images」が設定されている場合にのみ有効になります。

Image result filter mode

このパラメーターを使用すると、どの画像の結果を取得するかを決定するフィルターを有効化できます。以下のオプションから選択できます。デフォルト設定値は「None」です。

モード

説明

None

フィルタリングは適用されず、すべての結果の画像が取得されます。

Regular expression

パラメーター Result name filter regex で指定された正規表現に一致する名前の結果の画像のみが取得されます。

Result name filter regex

このパラメーターを使用すると、正規表現を指定して、公開する必要のある結果の画像の名前をフィルタリングできます。パラメーター「Image result filter mode」のフィルターモードが「Regular expression」に設定されている場合のみ提供されます。そうすると、正規表現に一致する名前の結果の画像だけが公開されます。デフォルト設定値は「.*」で、任意の文字列に一致します。

Payload format for image data

このパラメーターは、実際の画像データをどのように MQTT トピックに公開するかを定義します。パラメーターの設定値はデフォルトで「Data URI (base64)」です。

フォーマット

説明

Binary

画像データは RAW バイナリとして公開されます。これは最もシンプルで効率的なオプションですが、MQTT クライアントの多くはバイナリデータを処理または表示できません。

Base64‑encoded string

画像データは base64 エンコードされた文字列として公開されます。データをテキストとしてきれいに表現するために base64 エンコードを使用します (サイズのオーバーヘッドは 33%)。

Data URI (base64)

画像データは base64 エンコードされたデータ URI として公開されます。base64 エンコーディングも使用しますが、ペイロードの接頭辞として MIME タイプを含むデータ URI プロトコルスキーム、つまり HALCON Serialized Item の場合は「image/jpeg」、「image/png」、「application/octet-stream」を付加します。

Image format

このパラメーターは、MVApp の結果の画像をどのフォーマットで公開するかを定義します。選択された画像のフォーマットが青くハイライト表示されています。別のフォーマットを選択するには、それぞれの画像フォーマットをクリックします。選択した画像フォーマットによっては、追加のパラメーターも構成可能になります。利用可能な画像フォーマットについては、以下の表を参照してください。デフォルト設定値は「JPEG」です。

フォーマット

説明

PNG

画像が PNG 画像として公開されます。このフォーマットを選択する場合、追加のパラメーター PNG compression が有効になります。

JPEG

画像が JPEG 画像として公開されます。このフォーマットを選択する場合、次の追加パラメーターが有効になります:

HALCON Serialized Item

画像が HALCON Serialized Item として公開されます。

一般に的に「byte」、「int1」、「uint2」、「int2」、「int4」、「int8」、「real」タイプの画像はすべて、MVApp 結果 としてエクスポートでき、使用可能な画像フォーマットに変換できます。ただし、タイプ「real」の画像は「HALCON Serialized Item」フォーマットにしか変換できないため、例外です。画像フォーマットとそれぞれのピクセル変換の詳細については、通信プラグインの構成画像の結果セクションを参照してください。

Use progressive JPEG

このパラメーターは、「Image format」が「JPEG」に設定されている場合にのみ使用可能です。画像をプログレッシブ JPEG として公開するかどうかを定義します。デフォルトでは、このパラメーターは設定されていません。

JPEG quality

このパラメーターは、「Image format」が「JPEG」に設定されている場合にのみ使用可能です。JPEG に圧縮する際の画質をパーセントで定義します。デフォルト設定値は 50% です。

PNG compression

このパラメーターは、「Image format」が「PNG」に設定されている場合にのみ使用可能です。PNG に圧縮する際のレベルで定義します。設定可能な値は 0~9 です。デフォルト設定値は 6 です。

Image zoom mode

このパラメータでは、結果の偽造のサイズを変更できます。利用可能なオプションは下の表のとおりです。選択したモードによっては、追加のパラメーターも構成可能になります。パラメーターの設定値はデフォルトで「None」です。

モード

説明

None

画像がズームなしに元のサイズで公開されます。

Fixed width and height

画像は、パラメーター Image width および Image height で指定されたサイズに変更されます。これらのパラメーターは、このオプションを選択するとすぐに使用できるようになります。指定されたサイズは、元のサイズにかかわらずすべての結果の画像に適用され、アスペクト比は維持されません。

Zoom factor

画像は、パラメーター Image zoom factor で係数に応じた縦横比でサイズが変更されます。このパラメーターは、このオプションを選択するとすぐに使用できるようになります。このオプションでは、画像の元のサイズに比例してアスペクト比が維持されます。

Image width

このパラメーターは、「Image zoom mode」が「Fixed width and height」に設定されている場合にのみ使用可能です。結果の画像の幅を定義します。したがって、すべての画像が「Image width」と「Image height」で定義された指定サイズで公開されます。指定されたサイズは、元のサイズにかかわらずすべての画像に適用され、アスペクト比は維持されません。デフォルト設定値は「512 px」です。

Image height

このパラメーターは、「Image zoom mode」が「Fixed width and height」に設定されている場合にのみ使用可能です。結果の画像の高さを定義します。したがって、すべての画像が「Image width」と「Image height」で定義された指定サイズで公開されます。指定されたサイズは、元のサイズにかかわらずすべての画像に適用され、アスペクト比は維持されません。デフォルト設定値は「512 px」です。

Image zoom factor

このパラメーターは、「Image zoom mode」が「Zoom factor」に設定されている場合にのみ使用可能です。縦横の比を維持して画像のサイズを変更する際に使用されるパーセンテージを定義します。100% 以上の値を指定できます。デフォルト設定値は 100% で、元の画像サイズが維持されます。

Quality of Service (QoS)

このカテゴリのパラメーターでは、データ転送エラーやネットワーク輻輳などが原因で転送中にパケットロスが発生した場合のブローカーの動作を定義します。

各パラメーターの値は 0、1、または 2 に設定できます。選択された値が青くハイライト表示されています。別の値を選択するには、それぞれの値をクリックします。以下の表に、使用可能なパラメーターとその意味、対応する値の範囲を示します。

QoS 値

説明

0

メッセージは確認応答の有無にかかわらず 1 度だけ配信されます (「発信して放置」)。

1

メッセージは、確認応答があるまで少なくとも 1 回は配信されます (「確認応答付き配信」) 。

2

メッセージは厳密に 1 度だけ配信されます(「確実な配信」)。

以下の図は、利用可能なパラメーターと、それぞれのデフォルト設定を示しています。パラメーターについては、図の後に詳細な説明があります。

QoS for status updates

このパラメーターでは、ステータス更新用の QoS を定義します。デフォルト設定値は 1 です。

QoS for errors

このパラメーターでは、エラーメッセージ用の QoS を定義します。デフォルト設定値は 2 です。パラメーター「Publish errors」が設定されている場合にのみ適用されます。

QoS for updates of the recipe list

このパラメーターでは、レシピリスト更新用の QoS を定義します。デフォルト設定値は 2 です。パラメーター「Publish recipe data」が設定されている場合にのみ適用されます。

QoS for the delivery of new results

このパラメーターでは、新しい結果の配信用の QoS を定義します。デフォルト設定値は 0 です。パラメーター「Publish result data」が設定されている場合にのみ適用されます。

MQTT トピックのサブスクライブ

着信メッセージ

MQTT プラグインは、自動的にトピック「merlic/action」をサブスクライブします。ただしアクセスレベル「monitor」で起動した場合、このトピックはサブスクライブされません。また、アクセスレベル「control」で起動した場合、このトピックにメッセージは公開されません。MQTT クライアントを使用する場合は、以下の「actionType」メッセージをトピック「merlic/action」に送信することで、MERLIC の実行を制御できます。

  • SelectMode
  • PrepareRecipe
  • UnprepareRecipe
  • StartSingleJob
  • StartContinuous
  • Halt
  • Reset
  • Stop
  • Abort

例と詳細情報

送信メッセージ

MQTT プラグインは、MERLIC からの情報をメッセージで、指定された以下の MQTT トピックに自動的に公開します。

  • merlic/mode
  • merlic/preparedRecipeIds
  • merlic/recipes
  • merlic/runningJobId
  • merlic/state

MQTT プラグイン によって公開されるメッセージは、どの MQTT クライアントでもサブスクライブできます。

各トピックは、プレースホルダー {prefix} で始まります。これを、トピックおよびメッセージの設定に従って、構成可能な接頭辞パスに置き換える必要があります。MQTT プラグインの場合、デフォルトは merlic であり、たとえば「merlic/state」となります。カスタム接頭辞を構成すると、ビジョンアプリケーションを既存のトピック階層に統合しやすくなり、同じ MQTT ブローカー上で複数種類のビジョンアプリケーションを同時に運用できるようになります。

情報レベルの構成方法については、トピックとメッセージセクションを参照してください。

保持されるメッセージ

MQTT プラグインは、現在のステータスとレシピのリストをサブスクライバーに通知する目的で、いくつかのメッセージを自動的に保持対象としてマークします。クライアントは、たとえプラグインがサブスクライブの前にメッセージを公開した場合でも、トピックをサブスクライブするとすぐに保持される最新のメッセージを受信します。この動作が適用されるのは、状態的な情報のみです。エラーや新しい結果など、イベント的な情報は保持されません。

トピックの概要

以下の表は、使用可能なすべてのトピックとそれぞれの JSON スキーマのリストです。

トピック

保持

JSON スキーマ

{prefix}/action

n/a

action.json

{prefix}/error

error.json

{prefix}/error/brief

"brief error message"

error_brief.json

{prefix}/error/code

8565

error_code.json

{prefix}/error/message

"error message"

error_message.json

{prefix}/mode

"Automatic", null

mode.json

{prefix}/preparedRecipeId

[], ["4"]

preparedRecipeIds.json

{prefix}/recipes

recipes.json

{prefix}/recipes/{id}/isPrepared

false, true

recipes_isPrepared.json

{prefix}/recipes/{id}/result

result.json

{prefix}/recipes/{id}/result/content/{idx}/value

5, 3.141592, "strings"

result_content_value.json

{prefix}/recipes/{id}/result/images/{dataIndex}/data

"data:image/png;base64"

Binary」、「base64」、または「Data URI (base64)

{prefix}/recipes/{id}/result/images/{dataIndex}/error

 

error.json

{prefix}/state

"SingleExecution"

state.json

{prefix}/status/runningJobId

42, null

runningJobId.json

JSON スキーマ