Nakanishi共有するFacebookTwitterEmailLinkedInこんにちは、アピリオ中西です。MuleSoft入門(11)ランタイムログの自動アーカイブ(1/2)に引き続き、ランタイムログの自動アーカイブ機能をもつMuleアプリケーションの実装をご紹介します。利用してログを取得するまでの流れをお話ししました。最低限の運用であれば、この時点でのログ情報を外部ストレージにアップロードするだけでも十分かもしれません。ログの全量を日々アーカイブするのではストレージの利用効率が悪く、トラブルシューティング時にも問題のログの特定が難しくなってしまいます。そこで、今回の記事では、前日の処理で取得したログとの差分のみを出力できるような仕組みについて、詳しくお話しします。前回の記事でご説明した処理の概要を再掲します。アプリケーション分繰り返し処理を行う手順(5)からが本記事の内容となります。順を追ってご説明します。前回実行時のログとの差分のみを取得こちらが実装の要の部分になります。ログの差分を取得するロジックの実装の2点があります。コンポーネントに定義しています。ここでは、「Watermark」という概念が登場します。Watermarkとは、同期処理などを行う際に保存され、次回の同期で取得し比較されるタイムスタンプのことです。​「洪水時の水位を防波堤の壁に記録することで、高さの更新を判断すること」に由来し、前回との差分の有無を確認するために利用されます。最終行のログのタイムスタンプを比較することで、差分の有無を確認できます。形式でデータを保持する仕組みを利用します。ログの最終行のタイムスタンプを格納するようにしました。オペレーションで、Keyに紐づくタイムスタンプを取得します。内のエラーハンドラでタイムスタンプの初回保存処理を行い、差分を保持するための変数には全ログデータを格納します。オペレーションで上書きます。前回の記事の終わりで解説しましたように、この時点で取得しているログ情報は次の通りです。扱いやすい形にするためにログの各行を要素にもつ配列に変換します。スクリプトを利用し、変換した配列を変数に格納しておきます。タイムスタンプで表記されてしまいます。変換する必要があります。プロジェクト同様にクラスを作成します)。利用する場合は次のように記述します。Javaファイルのインポート。classのパッケージを指定。利用して実装しています。頑張って実装しても、結果的に可読性が悪くなりかねません。実装してしまっては生産性の向上には繋がりません。実装する範囲の線引きの定義は明確には定まっていないので、今後の課題の一つでもあります。INFO...上記のようにタイムスタンプで始まる行を対象とする必要があります。最後の要素を取得するという構成にしています。ロジックを記述しています。手順をご確認ください。サンプルコードは以下の通りです。file=@myfile.jpgファイルのアップロード時には「ファイル情報」と「ファイルのアップロード先」という2つの情報を含める場合が多いと思います。今回の実装における例を以下に示します。指定することで複数の情報を定義できます。定義されていますが、実際は関数を利用しても上記例のように直接記載してもコード量はさほど変わりません。個人的には、一目で構造が把握できる範囲の情報量であれば、直接定義する方がわかりやすいのではと感じました。手順で取得したドメインの数だけ、これらの手順を繰り返し実行します。コンポーネントを利用した繰り返し処理が複数箇所にあります。アプリケーションにおいても例外ではないと思います。今回は止むを得ず多重ループを利用しています。ログの出力結果]いかがでしたでしょうか。GitHubのプロジェクトをご参照ください。しての実装のため、例外処理などは省略していますがご参考になればと思います。アプリケーションの開発手順、テスト方法、簡単な応用テクニックといった内容を北嵐と中西で全11回に渡ってお届けしました。システムの裏側で動くサービスであるため、その特徴をイメージしづらい所があるので、できるだけ具体的な内容を紹介できるように心掛けました。導入と展開に少しでもお役に立てれば幸いです。実践的なテクニックをこのテックブログ上でご紹介したいと思っていますので、ご期待ください。中心としたクラウドの世界に足を踏み入れました。主導の開発に強い興味と関心を持っています。技術の変遷が激しい今だからこそ、勉強に励んで自分の価値を高めようと絶賛奮闘中です。アプリケーションの実装方法について紹介しようと思います。アピリオに入社間もない私が、アピリオの概要からSalesforceに関する社内研修を通して感じた、アピリオの企業文化についてをご紹介します。アプリケーションの実装方法について紹介しようと思います。リソースのバージョン」)を管理する必要があります。バージョン管理についてご紹介します。API管理は標準のポリシーの組み合わせで幅広い要件をカバーできますが、場合によっては既存機能の拡張や新機能の定義が必要になります。今回は、「カスタムポリシー」の開発手順についてご紹介します。実装したらすぐに運用開始できるというものではありません。ポリシー設定についてご紹介します。開発におけるテストについて考えていきます。つのレベルの検証を実施すべきと考えます。して提供されている単体テスト用のフレームワークです。同じようにテストスイートを実行することで単体テストを自動実行できます。使ったブラウザ環境でのMuleアプリケーションの開発についてご紹介します。Muleアプリケーションを作成することに比べて、とても手軽にアプリケーションを開発できます。変換例を紹介しようと思います。変数や関数の利用、典型的な変換パターンを例を交えて説明します。