HULFT Square のアプリケーション機能を使ってみた

# はじめに
こんにちは。すぎもんです:grinning:

今回はHULFT Square の**アプリケーション機能**を使って、実行月の1か月分の**監査ログ**をまとめたZIPファイルを作成し、指定した任意のワークスペースのストレージへ保管します。

本記事では提供された「アプリケーション」をベースとして、監査ログの出力先をカスタマイズしてみます。

:::note 
**アプリケーション機能とは**
HULFT Square のアプリケーションストアである **App Square** では、HULFT Square で開発した安全安心なビジネスアプリケーションが公開されています。公開されているアプリケーションは自由にダウンロードして実行することができます。またアプリケーションに含まれるスクリプトを任意のプロジェクトにコピーし、用途に合わせてカスタマイズすることも可能です。
:::

これによりフルスクラッチでのスクリプト作成を行わずとも、アプリケーションを実行することで、特定の Data Integration 処理を行えるようになる機能です。
<font color="red">※ 画像は2023年9月時点のものです。</font>

:::note 
**監査ログとは**
ユーザーの操作やログイン履歴などのログを保存したものです。
:::

下記が保管できるログの種類になります。
| 種類 | 内容 |
|:-|:-|
| HULFT Integrate | integrate-events-yyyymmdd.log |
| HULFT Transfer | transfer-events-yyyymmdd.log |
| ファイル イベント ジョブ | job-file-events-yyyymmdd.log |
| スケジュール ジョブ | job-schedule-events-yyyymmdd.log |
| HULFT Transfer ジョブ | job-transfer-events-yyyymmdd.log |
| システムイベント | audit-system-events-yyyymmdd.log |
| ログイン履歴 | audit-user-login-history-yyyymmdd.log |


HULFT Squareについて紹介している、下記の記事とウェブサイトもあわせてご覧ください。

+ [**HULFT SquareでAmazon S3のバケットにファイルを格納してみた（比較編）**](https://qiita.com/sugimon/items/89c2056abf957c5d113d "Qiita")

**■ HULFT Square リリースノート**

https://www.hulft.com/help/ja-jp/HULFTSquare/Content/TOP/releasenote.htm

**■ HULFT Square マニュアル：アプリケーション**

https://www.hulft.com/help/ja-jp/HULFTSquare/Content/HULFT_Square/HS_Applications/square_applications.htm

**■ シナリオ：アプリケーションをカスタマイズして監査ログを保管しよう**

https://www.hulft.com/help/ja-jp/HULFTSquare/Content/TOP/Tutorial/tutorial_application_customize.htm


# 今回やること
+ **HULFT Squareの設定**
  + アプリケーションの設定
  + ディレクトリの作成
  + プロジェクトの編集
+ **スクリプトの実行**


まずHULFT Square のアプリケーションストア **「App Square」** から共通データ加工処理として提供されているアプリケーションのダウンロードと、今回使用するアプリケーションである<code>ZIP Audit logs</code>の内容を確認し、既存プロジェクトの<code>S3_demo</code>へスクリプトのコピーを行います。
続いて監査ログの保管先ワークスペースの確認を行い、出力したいワークスペースに<code>hsq-logs</code>ディレクトリと<code>2023</code>ディレクトリを作成します。
最後にスクリプトをコピーした<code>S3_demo</code>プロジェクトの編集を行っていきます。スクリプト変数のワークスペースと、ZIP圧縮処理で出力先のディレクトリーを編集します。
そのまま完成したスクリプトを実行し、作成されたZipファイルの確認まで行っていきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/95ba4acf-55da-e05d-fd84-7d4e8a24707a.png)


# HULFT Squareの設定
### ①アプリケーションの設定
上部のアイコンから **「App Square」** もしくは、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/d51bcb04-87cf-e89a-31c1-d6aaa721bfd6.png)
**[メイン] > [アプリケーション]** を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/aafa7543-1347-0a2c-dad4-370519a51854.png)

アプリケーションとして用意されている`ZIP Audit logs`から **[アプリケーションを開く]** を選択します。

:::note warn
使用するには **App Square** から使いたいアプリケーションを事前にインストールする必要があります。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/a1f83e7a-8dbe-2216-2185-189af25a0a4b.png)
**[同梱スクリプトを見る]** を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/16d9f274-8715-1e8a-48cc-baeea0cb96f1.png)
**「詳細」** から、アプリケーションの内容を確認することが出来ます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/3412de3e-aca7-621c-be53-ee78fa0e4083.png)
**[Projectへコピーする]** を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/e430730f-947b-a626-996f-537ca33b833a.png)
**[スクリプト名]** に`ZIP_directories`を指定し、**[コピー先]** に`S3_demo`を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/3f059875-9408-dd85-46dd-4cc97265ef41.png)
スクリプトのコピーが成功したことを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/348b39b7-3400-e13c-b676-39f5ef958168.png)

:::note
**Point**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/8fd8718f-489f-aff5-de17-9197882d3063.png)
**[アプリケーション] > [ZIP Audit logs] > [スクリプトとリソース] > [詳細]** には、スクリプトの詳細についても記載されているため、カスタマイズをする際のポイントを確認することが出来ます。
:::


### ②ディレクトリの作成
**[設定] > [監査ログ]** から、今回のスクリプトで使用する保管先ワークスペースが`Audit_Log2`であることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/71a88779-e5ab-bec3-f25a-61e95f09008d.png)
**[ワークスペース]** に`hsq_test`を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/5fe83feb-ab5e-c984-6beb-f99cc9cc7f28.png)
**[メイン] > [サービス] > [ストレージ]** を選択し、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/7cf9b876-4eaa-3a4d-0e9d-7ff1c26ce14b.png)
**[新しいディレクトリー]** を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/05346915-9b63-29f3-a004-2ceb2637b03b.png)
`hsq-logs`というディレクトリーを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/3c425fc1-51a4-5448-018e-db0c9eef9ef8.png)
さらに`hsq-logs`ディレクトリー配下にも、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/82fdd19d-8a5f-1050-c970-3644e9cb6388.png)
新規ディレクトリー`2023`を作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/7bb87f87-95e2-e5b9-8973-1199a1370eb4.png)

:::note
**Point**
「保管先ワークスペース」はスクリプトの編集時に使用するのでメモしておきます。
:::

### ③プロジェクトの編集
**[メイン] > [DATA INTEGRATION] > [プロジェクト]** を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/a864180c-539e-c11a-381d-eede4ac21158.png)
`S3_demo`の **[プロジェクトを開く]** ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/18d122ea-4bf9-d9da-7244-af8312459b20.png)
``ZIP_directories``スクリプトの編集を行っていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/451fe8ea-9880-c572-cf71-251145ab5550.png)
スクリプト変数 `Workspaces_Name` を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/98f6de4d-263d-0ee1-79a5-0d0e47265418.png)
初期値を`Audit_Logs`から保管先である`Audit_Log2`に変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/bdb3497b-dfa3-8398-477a-08154f719751.png)
続いて **「zip(pre)」** の編集を行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/49f0b33a-91ad-cdf9-2ecf-f44ce30b40e6.png)
**[出力先]** の`${Workspaces_Name}`を`hsq_test`に変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/68142311-5c4c-665f-cdd3-2221b992ef62.png)
最後に **「zip(now)」** の編集を行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/54240b6d-7235-f9f8-f129-f31d41b8f102.png)
**[出力先]** の`${Workspaces_Name}`を`hsq_test`に変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/02ced912-a073-09cf-5f4c-8d0264ad3af3.png)

これでスクリプトの編集は完了です。

:::note
**Point**
**「出力先」** のパスを先ほど作成したディレクトリに合わせて変更します。
:::

# スクリプトの実行
それでは実際に処理を実行して、結果をみてみましょう。
まずはツールバーから **[スクリプトの実行]** ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/9d2ecf86-dfa8-ad27-4bd1-33556bf35422.png)
「スクリプトの実行」ダイアログから、処理が正常に成功したことが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/a561177d-1e5b-97a4-b234-b3a0e824f732.png)
先ほど作成した`/hsq_test/hsq-logs/2023`にZIPファイルが配置されていることが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/2053a20b-c390-9ca5-4be2-597dc9bd840e.png)
作成した`hsq-logs202309.zip`をダウンロードし、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/6b9c68aa-75b6-99d2-760d-1bc8c0a40b0f.png)
そのまま解凍をします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/499a4fb3-d64d-0685-7e40-0a5e7226c790.png)
その中の **[hsq-logs202309] > [09] > [24] > [audit-system-events-20230924]** から、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/64352ea3-2004-0ed6-7215-2596845f6212.png)
2023年9月24日に行われた、ユーザーによる設定の変更が確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/4c67b5b7-ddec-f412-9572-7ec335423121.png)

監査ログはファイルごとにダウンロードする必要がありましたが、実行月の1か月分の監査ログをまとめたZIPファイルの作成と指定したワークスペースのストレージへの保管が可能になったことで、システムの利用状況の把握につながり業務の効率化やセキュリティ向上が見込まれます。
なお、`Audit_Log2`には1か月分のログしかありませんでしたが、**ZIP Audit logs** の処理として実行月の前月分と当月分をそれぞれ1ヶ月分まとめてZipで保存できるため、より管理が容易になると思います。


# 最後に
いかがでしたでしょうか。0からデータ加工処理を作成すると複雑になってしまうところが、アプリケーション機能を活用しインストールするだけですぐに簡単かつ柔軟に活用できるようになりました！
皆様もぜひ使ってみてはいかがでしょうか。

このブログでは、今後も様々なTopics記事や接続検証等、皆さんの参考になるような記事を投稿していきたいと思います！
ここまで読んでいただきありがとうございました。それでは、また！:raised_hand: