Slack通知をHULFT10 for Container Servicesでしてみた

# はじめに
こんにちは、すぎもんです:smile:
今回は、HULFT10でファイル転送した際にSlackにメッセージを出力してユーザに通知するということをやってみます。

# 今回やること
Slackアプリを作成し、通知するSlackのチャンネルに作成したアプリを追加します。
HULFT10 for Container Servicesの管理画面からジョブ起動情報と配信管理情報を設定し、配信要求を実施します。ファイルの配信が成功し、Slackにメッセージが書き込まれていることを確認します。

# 実施手順
**＜Slack側の設定＞**
**① Slackアプリの作成**
Slackにメッセージを出力するアプリを作成します。
**② Slackチャンネルへアプリの追加**
作成したアプリをSlackのチャンネルに追加します。

**＜HULFT10 for Container Servicesの設定＞**
**③ ジョブ起動情報の設定**
HULFT10でジョブ起動情報を新規作成します。
**④ 配信管理情報の設定**
HULFT10で作成したジョブ起動情報を配信管理情報に設定します。
**⑤ 配信要求**
HULFT10で配信要求を実施します。
**⑥ Slack通知の確認**
Slackにメッセージが書き込まれていることを確認します。

# Slack側の設定
### ① Slackアプリの作成
Slackで「App」の「＋アプリを追加する」をクリックします。
<img width="200" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/b5fc7f00-54f0-8957-710f-231b6d5fde08.png">

右上の「Appディレクトリ」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/4db94119-1eec-df5b-d0e6-69a0d1bbdbcb.png)

Slackアプリを構築します。
右上の「Build」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/81cd8f90-c94a-0e3c-6400-e8eca7ce1b14.png)

Slackアプリに追加するツールを選択します。
「Incoming Webhooks」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/f6a720bf-edab-89a3-cd25-400b5834af98.png)

:::note 
上記のSlackアプリに追加可能なツールの概要は以下の通りです。
<dl>
  <dt>Incoming Webhooks</dt>
  <dd>外部ソース連携してSlackにメッセージ投稿</dd>
  <dt>Interactive Components</dt>
  <dd>ボタンや選択メニューなどのユーザー操作追加</dd>
  <dt>Slash Commands</dt>
  <dd>Slackアプリにコマンド追加</dd>
  <dt>Event Subscriptions</dt>
  <dd>Slackのアクティビティに対して反応する設定</dd>
  <dt>Bots</dt>
  <dd>ユーザーからメッセージ応答できるBot追加</dd>
  <dt>Permissions</dt>
  <dd>Slackアプリとの連携用のアクセス権設定</dd>
</dl>
:::

Slackアプリを作成します。
「Create an App」をクリックします。
<img width="300" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/11c59827-8bfc-e25d-68eb-0cef801db6ed.png">

アプリ名「SalesContents」とワークスペースを指定して「Create App」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/08d7371c-1255-d39f-f35f-c5449f36e437.png)

ワークスペースに新たにWebhookを追加します。
「Add New Webhook to Workspace」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/d9ee3045-1e58-9507-0568-ab402c292f7c.png)

着信Webhookを有効にするため、「On」に変更します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/28be74db-b1fb-2a09-52ca-4935087a0857.png)

チャンネルを指定し、「許可する」をクリックします。
<img width="350" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/e25aeb8d-2fbf-6eaf-5c49-e2fbcf5b879d.png">

「Copy」ボタンをクリックして追加されたWebhook URLをコピーします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/ce4e980a-2607-bd84-b7eb-f77f3879ed1f.png)

:::note 
コピーしたWebhook URLはこの後の設定で使用するので、メモしておいてください。
:::

作成したSlackアプリを配布します。
メニューの「Basic Information」を選択し、「Distribute App」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/ef630f15-8ca5-a85c-27f1-8b6022fccfad.png)

### ② Slackチャンネルへアプリの追加
Slackでアプリを追加するチャンネル名をクリックします。
<img width="150" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/a133cffc-c2ff-a481-ffe1-117f8dbfd99c.png">

「インテグレーション」タブの「App」の「アプリを追加する」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/1366f7c5-b12e-3dd5-2cf5-5c9414d269f7.png)

検索バーに文字を入力してアプリを検索します。追加するアプリの「追加」ボタンをクリックします。
<img width="300" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/9d78eac8-f48a-c8f5-cc1e-63050dd4e898.png">

チャンネルにアプリが追加されたことが通知されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/ed7ae1e4-74f3-7387-f3e1-71130eee6ac3.png)

# HULFT10 for Container Services側の設定
### ③ ジョブ起動情報の設定
HULFT10の管理画面にログインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/9b93fef2-8638-334f-8672-88b0a8b19a75.png)

ログイン後の管理画面トップページは以下になります。
メニューの「ジョブ起動情報」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/70b294b7-a855-0ef2-7325-9901af0fcc75.png)

「ジョブ起動情報」画面右上の新規作成ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/ab307161-5a8a-e7d0-4fee-b2af8c2087b8.png)

ジョブ起動情報は下記の通り設定しています。
　　ジョブID　　：　Slack_Notice
　　表示名　　　：　Slack Notice 
　　ステップ１　：　Slack通知
　　URL　 　　　：　（起動するジョブのURL）
　　メソッド　　：　POST 
　　ヘッダー名　：　Content-type 
　　ヘッダー値　：　application/json 
　　ボディー　　：　{"text":"Hello, World!"}

:::note 
URLには「①Slackアプリの作成」手順でコピーしたWebhook URLを設定します。
:::

:::note 
ボディーに設定した「Hello, World!」がSlackに書き込まれるメッセージになります。
:::

:::note info
ジョブ起動情報の各項目の説明については以下のマニュアルを参照してください。
[HULFT10 スタートアップガイドのジョブ起動情報](https://www.hulft.com/help/ja-jp/HULFT-V10/CONT-SUG/Content/HULFT_CONT_SUG/HULFTSysMngmntInfo/JobInfo.htm?tocpath=1.%20HULFT10%20%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%82%AC%E3%82%A4%E3%83%89%7C1.5%20%E7%94%BB%E9%9D%A2%E9%A0%85%E7%9B%AE%7C1.5.1%20%E7%AE%A1%E7%90%86%E7%94%BB%E9%9D%A2%7C_____3)

:::

設定後に保存ボタンをクリックします。
![ジョブ起動情報新規作成画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/707c5ddf-b1a1-53c4-04f6-0b03b16d45e2.png)

確認のポップアップで「保存」ボタンをクリックします。
<img width="250" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/eeab7a30-64db-cd75-c4bb-0d2cb43eb3a7.png">


ジョブ起動情報が作成されていることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/e6f41613-c3cc-a3e9-ed28-e22c0c6dcb75.png)

### ④ 配信管理情報の設定
メニューの「配信管理情報」をクリックします。
ジョブ起動設定をするファイルIDをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/97866a09-6fb4-daa7-54e9-470fef910775.png)

作成したジョブ起動情報のジョブIDを設定します。
「配信前ジョブID」、「正常時ジョブID」、「異常時ジョブID」の3つが設定可能です。
以下は正常時のみジョブ起動する場合の設定です。
設定後に保存ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/1bb3d711-2316-88e3-d5a7-1ac326e99a4d.png)

確認のポップアップで「上書き保存」ボタンをクリックします。
<img width="250" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/0ceea696-3e5c-abf5-667d-4e5d453666bb.png">

### ⑤ 配信要求
メニューの「配信要求」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/e8e816e1-d156-9568-e645-8df149735bb2.png)

配信要求するファイルIDを入力し、「配信要求を発行」ボタンをクリックします。
<img width="300" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/61c7ea7e-aea4-2227-1fe4-cdccd6b47d61.png">

確認のポップアップで「OK」ボタンをクリックします。
<img width="300" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/d1d101a6-f6f2-98b9-488c-81c7502b764a.png">

メニューの「配信履歴」をクリックします。
配信要求したファイルIDのステータスが「成功」していることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/bd2e469b-ce86-0e2f-d120-7b42a76ce1e0.png)

# 設定後の確認
# ⑥ Slack通知の確認
ジョブ起動情報のボディで設定した内容がSlackに出力されていることを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/bf1e01bf-f889-dcaf-09a8-20af7b94e562.png)

# 最後に
今回は、HULFT10でファイル転送成功時にSlackにメッセージを書き込んでユーザに通知するということをやってみましたが、いかがだったでしょうか。
ジョブの起動はファイル転送成功時だけでなく、転送前や転送異常時に設定することも可能です。

これからも是非チェックいただき、宜しければフォローをお願いします。
ここまで読んでいただきありがとうございました。それでは、また！:raised_hand: