スクラムジェット変換ハブクイックスタート入門
11127 ワード
スクラムジェット変換ハブクイックスタート入門
スクラムジェット変換ハブを使用すると、シーケンスと呼ばれる複数のデータ処理アプリケーションを展開して実行できます.
Sequences are specific apps, not just any apps. They specialize in the efficient data processing.
STHは、同じプラットフォーム上で実行され、様々なデータ処理タスクを実行する複数のシーケンスのデータ処理エンジンと実行プラットフォームの両方を扱うことができます.
我々は我々のアプリ“シーケンス”と命名され、その用語はよく、その性質を説明し、彼らは連鎖関数のシーケンスを介してデータを処理します.したがって、通常、我々のシーケンスは簡潔で、書くのが簡単で、同時に強力です.
我々のバニラSthエンジンは、ノードに基づきます.JSは、このように、開発者が豊かな生態系と多くのパッケージと解決この活気のあるコミュニティによって提供される恩恵を受けることができます.
sthエンジンのコア部分は“host”と呼ばれます.
The Host is responsible for maintaining and deploying sequences, keeping them running, and managing their lifecycle.
ホストは、データを提供して、受けて、シーケンスとホスト自体を管理するために、それ自身のREST APIも公開します.
ホストレベルでも、シーケンス内のデータ処理の実行を最適化し、高速化するためのアルゴリズムのセットを適用します.
あなたは、それを実行し、監視の両方のシーケンス展開を支援する当社の専用Sth CLIを使用してホストと対話することができます.
2 .解概念図
2.1入力
2.2ホスト
これは、次の主要なコンポーネントを使用したソリューション中央処理と管理ユニットです.
*.tar.gz
) 少なくとも2つのファイルを含むパッケージ.JSON - JSONマニフェストファイルを実行するメインファイルなどのアプリケーションとその設定を記述する
メインファイル-インデックスなどのファイルです.インデックス.軽量アプリケーションビジネスロジックを含むTS.
インスタンス-シーケンスが実行されると、ホストはそのための個別のランタイム環境を作成し、このランタイムエンティティ内でシーケンスコードを実行します.これがインスタンスです.
APIとCLI -我々のアプリケーションプログラミングインタフェースとCLIはそれに接続しているデータ操作(入力データと受信出力データを送る)と管理操作の両方を許します
2.3出力
当社のエンジン出力はいくつかの方法で管理できます.
ファイル-ローカルまたはリモートのファイルに出力を保存することができます
stdout -出力はシステムstdout ( STARRもサポートされている)に指示される.
出力は、私たちのSTH REST APIから消費できます
URLリクエスト-あなたの方法をURL、webhookなどを要求するアプリケーションを書くことができます
ストリーム-出力は、特定の宛先にストリーミングすることができます
3スクラムジェット変換ハブ
3.1準備環境
スクラムジェット変換ハブをインストールするには、次の3ステップに従ってください.
φ5 cm
Linuxターミナルウィンドウを開き、以下のコマンドを実行します.
npm i -g @scramjet/sth @scramjet/cli
実行scramjet-transform-hub
4あなたの最初のシーケンスを実行します
4.1レビューパッケージ
Note that all commands here are executed from the root of this repository
私たちはあなたを使用することができます簡単な“こんにちは雪だるま”シーケンスを準備している.このシーケンスはディレクトリで利用可能です
samples/hello-snowman
この倉庫で.このディレクトリで2つのファイルがあります.
package.json
- この特定のシーケンスを記述するマニフェストファイルindex.js
- メインアプリケーションロジックを含むファイル.何も変える必要はない
hello-snowman
最初の実行のためのシーケンス.次のステップに移りましょう.4.2準備と送付シーケンスパッケージ
私たちの“シーケンス”アプリは、ハブを変換するために送信する前にパッケージ化する必要があります.このパッケージは単純なtarアーカイブです、そして、我々のsth - cliはアプリケーションディレクトリをシーケンスtarballにパッケージ化する特別なコマンドを持っています.
注:いつでも、あなたはターミナルコマンドを発行することによって
si help
(一般的には)si <command> help
を指定します.si sequence help
)新しいターミナルウィンドウを開き、sthを実行して最初のものを保ちます.次に、このリポジトリのルートディレクトリに以下のコマンドを発行します
パックディレクトリ
hello-snowman
アーカイブにhello-sequence.tar.gz
si pack ./samples/hello-snowman/ -o ./samples/hello-snowman.tar.gz
端末に出力された出力はありませんが、ls
tarballパッケージがsamples
ディレクトリ.B :こんにちは雪だるまを送ってください.タール.実行中のホストへのgz (デフォルトのlocalhost api endpointはCLI SENDコマンドで使用されます)
si sequence send ./samples/hello-snowman.tar.gz
出力は次のようになります.Request ok: http://127.0.0.1:8000/api/v1/sequence status: 202 Accepted
SequenceClient {
_id: 'cf775cc1-105b-473d-b929-6885a0c2182c',
host: HostClient {
apiBase: 'http://127.0.0.1:8000/api/v1',
client: ClientUtils {
apiBase: 'http://127.0.0.1:8000/api/v1',
log: [Object]
}
},
sequenceURL: 'sequence/cf775cc1-105b-473d-b929-6885a0c2182c'
}
現在、私たちのシーケンスIDは以下の通りです._id: 'cf775cc1-105b-473d-b929-6885a0c2182c'
ホストはまた、各シーケンスの残りのAPIエンドポイントを公開し、これはまた、この応答で説明されます.4.3シーケンスを実行する
このアップロードシーケンスを実行するにはシーケンスIDを使用できます.コマンドは
si seq start <sequence_id>
. また、私たちの場合には、後にそれらを提供することによって、パラメータの任意の数を渡すことができますhello-snowman
パラメータは使用されません.例えば、上記のシーケンスについて書きます.
si sequence start cf775cc1-105b-473d-b929-6885a0c2182c
出力は以下のようになります.Request ok: http://127.0.0.1:8000/api/v1/sequence/cf775cc1-105b-473d-b929-6885a0c2182c/start status: 200 OK
InstanceClient {
host: HostClient {
apiBase: 'http://127.0.0.1:8000/api/v1',
client: ClientUtils {
apiBase: 'http://127.0.0.1:8000/api/v1',
log: [Object]
}
},
_id: 'e70222d1-acfc-4e00-b046-4a3a9481c53b',
instanceURL: 'instance/e70222d1-acfc-4e00-b046-4a3a9481c53b'
}
シーケンスは、アプリケーションのテンプレートです.一度実行すると、新しいインスタンスとして有効になります.また、インスタンスは独自のID(GUID)を受け取ります.この場合、インスタンスIDは以下の通りです:_id: 'e70222d1-acfc-4e00-b046-4a3a9481c53b'
もちろん、シーケンスを複数回実行できます.それぞれの実行は別個のインスタンスIDを作成します.4.4シーケンスへのデータの送信
私たちはあなたの人生をより簡単にしたいです、そして、この非常に例のために、我々は特別なノードを準備しました.シンプルなメッセージのストリームを生成し、我々の実行中のインスタンスに送信するJSアプリ
hello-snowman
.楽しみのために、我々のストリームジェネレータは、人工気象ステーションから温度測定値を含む簡単なテキストメッセージを送信します.温度は、- 50、50度摂氏の範囲でランダムに生成されます.
我々
hello-snowman
アプリケーションが読み取られ、これらのメッセージを解釈し、私たちの雪だるまの状態について教えてくれます.Snowman is freezing ... :)
Snowman is melting! :(
node ./tools/stream-gen-tool/stream-gen.js <instance_id>
. この場合は以下のようになります.node ./tools/stream-gen-tool/stream-gen.js e70222d1-acfc-4e00-b046-4a3a9481c53b
出力は以下のようになります:----------------------------------------
Message# 1 | Temperature measure
INPUT | 41
OUTPUT| Snowman is melting! :(
----------------------------------------
Message# 2 | Temperature measure
INPUT | -33
OUTPUT| Snowman is freezing ... :)
---------------------------------------------
Message# 3 | Temperature measure
INPUT | -36
OUTPUT| Snowman is freezing ... :)
---------------------------------------------
私たちのシーケンスジェネレータアプリケーションここで2つのことを行いますhello-snowman
シーケンスsi instance log <instance_id>
. 私たちの場合、これはsi instance log e70222d1-acfc-4e00-b046-4a3a9481c53b
サンプル出力は次のようになります...
2021-08-09T04:29:39.790Z log (object:Runner) Input message <Buffer 32 30>
2021-08-09T04:29:40.791Z log (object:Runner) Input message <Buffer 2d 34>
2021-08-09T04:29:41.792Z log (object:Runner) Input message <Buffer 33 33>
2021-08-09T04:29:42.798Z log (object:Runner) Input message <Buffer 2d 34 35>
2021-08-09T04:29:43.801Z log (object:Runner) Input message <Buffer 2d 33 36>
...
Well done! You have run your first Scramjet Transform Hub sequence!
次に行く場所
ここでは、スクラムジェット変換ハブに関連するより多くのリソースを見つけることができます
Reference
この問題について(スクラムジェット変換ハブクイックスタート入門), 我々は、より多くの情報をここで見つけました https://dev.to/scramjetorg/scramjet-transform-hub-quick-start-introduction-3dfbテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol