Mulesoft-core-components-and-their-configuration
MuleSoft-コアコンポーネントと構成
Muleの最も重要な機能の1つは、コンポーネントを使用してルーティング、変換、および処理を実行できることです。そのため、さまざまな要素を結合するMuleアプリケーションの構成ファイルのサイズは非常に大きくなります。
ESB Muleが提供する構成パターンのタイプは次のとおりです-
- シンプルなサービスパターン
- ブリッジ
- バリデーター
- HTTPプロキシ
- WSプロキシ
コンポーネントの構成
Anypoint studioでは、以下の手順に従ってコンポーネントを構成できます-
ステップ1
ESB Muleアプリケーションで使用したいコンポーネントをドラッグする必要があります。 たとえば、ここでは次のようにHTTPリスナーコンポーネントを使用します-
ステップ2
次に、コンポーネントをダブルクリックして、構成ウィンドウを取得します。 HTTPリスナーの場合、それは以下に示されています-
- ステップ3 *
プロジェクトの要件に従ってコンポーネントを構成できます。 たとえば、HTTPリスナーコンポーネントに対して行った-
コアコンポーネントは、Muleアプリのワークフローの重要な構成要素の1つです。 ESB Muleイベントを処理するためのロジックは、これらのコアコンポーネントによって提供されます。 Anypoint studioでは、これらのコアコンポーネントにアクセスするには、以下に示すように、Muleパレットからコアをクリックします-
以下は、さまざまな*コアコンポーネントとMule 4 *での動作です-
カスタムビジネスイベント
このコアコンポーネントは、Muleアプリでビジネストランザクションを処理するメッセージプロセッサだけでなく、フローに関する情報の収集にも使用されます。 言い換えると、カスタムビジネスイベントコンポーネントを使用して、次の作業フローを追加できます-
- メタデータ
- 主要業績評価指標(KPI)
KPIを追加する方法は?
ESB MuleアプリのフローにKPIを追加する手順は次のとおりです-
- ステップ1 *-Muleアプリのワークフローにカスタムビジネスイベントコンポーネントを追加するには、Mule *パレット→コア→コンポーネント→カスタムビジネスイベント*に従います。
- ステップ2 *-コンポーネントをクリックして開きます。
- ステップ3 *-次に、表示名とイベント名の値を指定する必要があります。
- ステップ4 *-メッセージペイロードから情報をキャプチャするには、次のようにKPIを追加します-
- KPIの名前(キー)(_tracking:meta-data_要素)と値を指定します。 この名前は、ランタイムマネージャーの検索インターフェイスで使用されます。
- ESB Mule式の値を指定します。
例
次の表は、名前と値を持つKPIのリストで構成されています-
Name | Expression/Value |
---|---|
Student RollNo | #[payload[‘RollNo’]] |
Student Name | #[payload[‘Name’]] |
動的評価
このコアコンポーネントは、Muleアプリでスクリプトを動的に選択するために使用されます。 Transform Messageコンポーネントを介してハードコアスクリプトを使用することもできますが、Dynamic Evaluateコンポーネントを使用する方がより良い方法です。 このコアコンポーネントは次のように動作します-
- まず、別のスクリプトを生成する式を評価します。
- 次に、そのスクリプトを評価して最終結果を求めます。
このようにして、ハードコーディングするのではなく、動的にスクリプトを選択できます。
例
Idクエリパラメーターを使用してデータベースからスクリプトを選択し、そのスクリプトを_MyScript_という名前の変数に保存する例を次に示します。 これで、動的評価コンポーネントは変数にアクセスしてスクリプトを呼び出し、 UName クエリパラメーターから名前変数を追加できるようになります。
フローのXML構成は以下のとおりです-
<flow name = "DynamicE-example-flow">
<http:listener config-ref = "HTTP_Listener_Configuration" path = "/"/>
<db:select config-ref = "dbConfig" target = "myScript">
<db:sql>#["SELECT script FROM SCRIPTS WHERE ID =
$(attributes.queryParams.Id)"]
</db:sql>
</db:select>
<ee:dynamic-evaluate expression = "#[vars.myScript]">
<ee:parameters>#[{name: attributes.queryParams.UName}]</ee:parameters>
</ee:dynamic-evaluate>
</flow>
スクリプトは、メッセージ、ペイロード、変数、属性などのコンテキスト変数を使用できます。 ただし、カスタムコンテキスト変数を追加する場合は、キーと値のペアのセットを提供する必要があります。
動的評価の構成
次の表は、動的評価コンポーネントを構成する方法を提供します-
Field | Value | Description | Example |
---|---|---|---|
Expression | DataWeave expression | It specifies the expression to be evaluated into the final script. | expression="#[vars.generateOrderScript]" |
Parameters | DataWeave expression | It specifies key-value pairs. | #[\{joiner: ' and ', id: payload.user.id}] |
フロー参照コンポーネント
ESB Muleイベントを別のフローまたはサブフローにルーティングし、同じESB Muleアプリ内に戻す場合、フロー参照コンポーネントが適切なオプションです。
特徴
このコアコンポーネントの特徴は次のとおりです-
- このコアコンポーネントにより、参照されるフロー全体を現在のフロー内の単一のコンポーネントのように扱うことができます。
- ESB Muleアプリケーションを個別の再利用可能なユニットに分割します。 たとえば、フローは定期的にファイルをリストしています。 リスト操作の出力を処理する別のフローを参照する場合があります。
- この方法では、処理ステップ全体を追加するのではなく、処理フローを指すフロー参照を追加できます。 以下のスクリーンショットは、フロー参照コアコンポーネントが ProcessFiles という名前のサブフローを指していることを示しています。
ワーキング
フロー参照コンポーネントの動作は、次の図の助けを借りて理解することができます-
この図は、1つのフローが同じアプリケーション内の別のフローを参照する場合のMuleアプリケーションの処理順序を示しています。 ESB Muleアプリケーションのメイン作業フローがトリガーされると、ESB Muleイベントはフローを通過し、ESB Muleイベントがフロー参照に到達するまでフローを実行します。
フロー参照に到達すると、ESB Muleイベントは参照されたフローを最初から最後まで実行します。 ESB MuleイベントがRef Flowの実行を終了すると、メインフローに戻ります。
例
理解を深めるために、 Anypoint Studio でこのコンポーネントを使用してみましょう。 この例では、前の章で行ったように、HTTPリスナーを使用してメッセージを取得しています。 そのため、コンポーネントをドラッグアンドドロップして構成できます。 しかし、この例では、以下に示すように、サブフローコンポーネントを追加し、その下にペイロードコンポーネントを設定する必要があります-
次に、 Set Payload をダブルクリックして設定する必要があります。 ここでは、以下に示すように、「サブフローが実行されました」という値を与えています-
サブフローコンポーネントを正常に構成したら、メインフローのペイロードを設定した後に設定するフロー参照コンポーネントが必要です。これは、以下に示すように、Muleパレットからドラッグアンドドロップできます-
次に、フロー参照コンポーネントの構成中に、以下に示すように、[一般]タブで[フロー名]を選択する必要があります-
次に、このアプリケーションを保存して実行します。 これをテストするには、POSTMANに移動し、URLバーに http:/localhost:8181/FirstAPP と入力すると、「サブフローが実行されました」というメッセージが表示されます。
ロガーコンポーネント
ロガーと呼ばれるコアコンポーネントは、エラーメッセージ、ステータス通知、ペイロードなどの重要な情報を記録することにより、Muleアプリケーションの監視とデバッグを支援します。 AnyPointスタジオでは、それらは Console に表示されます。
利点
ロガーコンポーネントのいくつかの利点は次のとおりです-
- このコアコンポーネントは、作業フローのどこにでも追加できます。
- 私たちが指定した文字列を記録するように設定できます。
- 私たちが書いたDataWeave式の出力にそれを設定できます。
- 文字列と式の任意の組み合わせに設定することもできます。
例
次の例では、ブラウザのSet Payloadに「Hello World」というメッセージが表示され、メッセージもログに記録されます。
上記の例のフローのXML構成は次のとおりです-
<http:listener-config name = "HTTP_Listener_Configuration" host = "localhost" port = "8081"/>
<flow name = "mymuleprojectFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/"/>
<set-payload value="Hello World"/>
<logger message = "#[payload]" level = "INFO"/>
</flow>
転送メッセージコンポーネント
変換コンポーネントとも呼ばれる変換メッセージコンポーネントを使用すると、入力データを新しい出力形式に変換できます。
変換を構築する方法
私たちは次の2つの方法の助けを借りて変換を構築することができます-
ドラッグアンドドロップエディタ(グラフィカルビュー)-これは、変換を構築するための最初で最も使用される方法です。 この方法では、このコンポーネントのビジュアルマッパーを使用して、受信データ構造の要素をドラッグアンドドロップできます。 たとえば、次の図では、2つのツリービューに、入力と出力の予想されるメタデータ構造が表示されています。 入力を出力フィールドに接続する線は、2つのツリービュー間のマッピングを表します。
スクリプトビュー-変換の視覚的なマッピングは、Muleコードの言語であるDataWeaveを使用して表現することもできます。 集約、正規化、グループ化、結合、パーティション化、ピボット、フィルタリングなどの高度な変換のコーディングを行うことができます。 例は以下のとおりです-
このコアコンポーネントは、基本的に変数、属性、またはメッセージペイロードの入力および出力メタデータを受け入れます。 次の形式固有のリソースを提供できます-
- CSV
- スキーマ
- フラットファイルスキーマ
- JSON
- オブジェクトクラス
- シンプルタイプ
- XMLスキーマ
- Excelの列名とタイプ
- 固定幅列の名前とタイプ