HULFT10 for Container Services でHULFT Squareのスクリプト実行してみた

# はじめに

こんにちは、すぎもんです。:smiley:

HULFT10 for Container Services では WebAPI リクエストの発行に対応したことにより、外部サービスとシームレスに連携が可能となりました。

今回はそんな HULFT10 for Container Services のジョブ起動情報を使って、配信成功時に HULFT Square のサービスが実行される方法についてご紹介します。

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

**■ HULFT10 製品紹介ページ**

https://www.hulft.com/software/hulft-10#hulft10-for-container-services

**■ HULFT10 for Container Services （コンテナ版HULFT）の環境構築をしてみた**

https://qiita.com/sugimon/items/e589e654f7bb38825550

**■ HULFT10 for Container ServicesでWebAPI による配信要求をしてみた**

https://qiita.com/sugimon/items/a841645df7fa21160ed8

**■ HULFT10 for Container Services で Amazon EFS内の実ファイルを確認してみる**

https://qiita.com/sugimon/items/8de650df0632825d70ff


# 今回やること

最初に実行する為のサービスの作成とアクセストークンの発行を HULFT Square で行っていきます。
完了したら HULFT10 for Container Services で、ファイル転送処理の前後でWebAPIリクエストを発行するためのジョブ起動情報の作成を行います。
次に作成したジョブ起動情報を [正常時ジョブID] に追加する為、配信管理情報の編集を行います。
最後に配信要求を実施し、HULFT10 for Container Services と HULFT Square で実行結果の確認を行います。

それでは早速やってみましょう！


# 実施手順

**＜HULFT Square 側の設定＞**
　① [スクリプトの作成（過去記事）](https://qiita.com/sugimon/items/3d3e407381298ac18312#%EF%BC%91%E5%A4%96%E9%83%A8%E3%81%8B%E3%82%89%E3%81%AEhttp%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%81%A7%E5%AE%9F%E8%A1%8C%E3%81%99%E3%82%8B%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%AE%E4%BD%9C%E6%88%90)
　② [APIプロジェクトの作成（過去記事）](https://qiita.com/sugimon/items/3d3e407381298ac18312#%EF%BC%92api%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E4%BD%9C%E6%88%90)
　③ [APIクライアントの作成（過去記事）](https://qiita.com/sugimon/items/3d3e407381298ac18312#%EF%BC%93api%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E4%BD%9C%E6%88%90)
　④ [REST APIジョブの作成（過去記事）](https://qiita.com/sugimon/items/3d3e407381298ac18312#%EF%BC%94rest-api%E3%82%B8%E3%83%A7%E3%83%96%E4%BD%9C%E6%88%90)
　⑤ アクセストークンの発行

**＜HULFT10 for Container Services 側の設定＞**
　① ジョブ起動情報の作成
　② 配信管理情報の編集
　③ 配信要求の実行

 **＜実行結果の確認＞**
　① HULFT10 for Container Services の配信履歴の確認
　② HULFT Square のログの確認


## HULFT Square 側の設定

先ずは HULFT Square でサービスの作成と、アクセストークンの発行を行う必要があります。

### ①～④ サービスの作成

下記の記事とマニュアルを参考にサービスの作成を行ってください。

:::note
**Bearer認証でREST APIジョブのエンドポイントを呼び出してみよう**
https://www.hulft.com/help/ja-jp/HULFTSquare/Content/TOP/Tutorial/tutorial_Bearer.htm
:::

:::note
**HULFT Square で作成したサービスを Web APIとして公開して、外部サーバから HTTPリクエストで実行してみた**
https://qiita.com/sugimon/items/3d3e407381298ac18312
:::

### ⑤ アクセストークンの発行

次にアクセストークンの発行を行っていきます。

**[個人設定] > [アクセストークン]** から **「アクセストークンを生成」** を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/a4bfab61-0b1c-b941-6bf4-4cf1e8e0f34c.png)

「**<font color="Red">アクセストークン</font>**」をコピーして控えておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/609686b3-53ce-2b45-6242-1ab2e716549b.png)

次に **[ジョブ] > [REST APIジョブ]** から自動生成された **<font color="Red">URL</font>** をコピーして控えておきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/fc6faa6b-28d3-9048-b243-bba7a066ef0f.png)

## HULFT10 for Container Services 側の設定

続いて、先ほど HULFT Square で作成したサービスをジョブ起動情報として登録を行っていきます。


### ① ジョブ起動情報の作成

**[ホーム] > [Main] > [管理情報] > [ジョブ起動情報]** から新規作成ボタンを押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/06d5f61e-b631-8ebc-7a81-c1a53955b629.png)

**[ジョブID] と [表示名]** に任意の名前を入力します。設定値を明快にするため、今回は **[ジョブID] と [表示名]** の名称を統一しています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/999e94c1-e3b4-4322-ee87-8a26bc5bc72d.png)

**[ジョブ] > [ステップ]** 画面で以下の値を設定します。設定値を明快にするため、**[ステップ]** と前述の **[ジョブID]** の名称を統一しています。

| 項目名 | 設定内容 | 備考 |
|:-|:-|:-|
| ステップ | **<font color="blue">csvread</font>** | 起動するジョブのステップ名称 |
| URL | HULFT Squareで取得した <br> *<font color="Red">URL</font>* を指定 | APIエンドポイントのURLを <br> 指定してAPI連携を行う |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/2a31795c-263e-73f7-2dbe-dafdcaf0efe7.png)

:::note warn
「ステップ」は判別しやすくなるよう前述の「ジョブID」と名称を統一してます。
:::

**[メソッド]** には「<font color="Red">**GET**</font>」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/b0d33277-742f-5613-6c7d-eb175da34d3b.png)

**[ヘッダー]** に以下の値を設定し、**[保存]** を押下します。

| 項目名 | 設定内容 |
|:-|:-|
| ヘッダー名 | Authorization |
| ヘッダー値 | Bearer *<font color="Red">AccessToken</font>* |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/13bf1a10-2a36-7469-d3ae-614fadb1d8f1.png)

:::note
**POINT**
*<font color="Red">AccessToken</font>* には HULFT Square で発行したアクセストークンを入力します。
:::


### ② 配信管理情報の編集

**[ホーム] > [Main] > [管理情報] > [配信管理情報]** から、ジョブ起動情報の登録を行うファイルIDの「**<font color="blue">LOOPBACK_ID</font>**」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/4f5fba19-4b5c-dc39-ff35-319c33917afb.png)


**[ジョブ] > [正常時ジョブID]** に先ほど作成したジョブ起動情報の「**<font color="blue">csvread</font>**」を指定し、**[保存]** を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/b705f53a-a8bf-62b1-7003-30f65541b71b.png)

### ③ 配信要求の実行

**[要求発行] > [配信要求]** を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/ec66fae9-6b17-ef87-55aa-8aef8087d6cc.png)

**[ファイルID]** に先ほどジョブを登録したファイルIDを指定し、**[配信要求を発行]** を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/511e9b78-c0ab-50a9-eba1-d0f7f658a90c.png)

**[発行状況トースト]** から配信要求の発行に成功したことを確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/a6719c78-33c1-43bf-2200-79b77b2c850c.png)

## 実行結果の確認

### ① HULFT10 for Container Services の配信履歴の確認

**[ホーム] > [Main] > [状況照会] > [配信履歴]** から「**<font color="blue">LOOPBACK_ID</font>**」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/61dcb604-a20c-c52f-084a-ff502b870192.png)

**[ジョブステップ]** のステータスが **<font color="Red">“200”</font>** であることから、正常に実行されたことがわかります。

:::note


ステータスは HULFT Square の「**APIプロジェクト**」で設定した値が反映されますが、デフォルトではスクリプトの実行が成功した場合、**<font color="Red">”200”</font>** が値として返ってきます。
設定の詳細については、下記のURLをご確認ください。
**https://www.hulft.com/help/ja-jp/HULFTSquare/Content/HULFT_Square/HS_API/api_projects.htm**
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/addd146b-25b7-2d3e-788a-794515494498.png)

### ② HULFT Squareのログの確認

実際にスクリプトが実行されているか、HULFT Square 管理画面でも確認してみます。
**[モニタリング] ＞ [アプリケーション] ＞ [HULFT Integrate]** から実行履歴を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/59ac2e90-ff99-38e6-5e15-2d63b7b164ce.png)


実行履歴の詳細から、作成した「**<font color="blue">csv_resd_script</font>**」のスクリプトが実行され、3行のデータが抽出できたことが確認できました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/e636d84b-deaa-3d0a-1b99-2b9298d2504a.png)

**[監査] > [REST APIジョブアクセスログ]** からも成功したことが確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/e13dd867-126a-b675-49f7-dbe0060fbdc1.png)


# Appendix

コマンドプロンプトを起動し、curl コマンドで HULFT Square で作成したサービスを HTTPリクエストで実行してみます。

:::note
**コマンドプロンプトで実行する際のコマンドの例**
`curl -k -i -X POST -c /tmp/cookie.txt -H “Authorization: Bearer AccessToken” URL
`

**<font color="Red">“AccessToken”</font>** には HULFT Square で発行したアクセストークンの値を指定します。
**<font color="Red">“URL”</font>** には HULFT Square で取得した GETメソッドの URL を指定します。
:::

※ 実行例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/fbb216f8-886a-f72e-915e-d46aa56f9fd3.png)

:::note warn
ご利用の環境によってオプション等のコマンドは変わります。
:::

レスポンスコードの値が **<font color="Red">“200 (OK)”</font>** であることから、正常に実行されたことがわかります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/2ae8957f-b45a-1b73-8d65-8627e428fd87.png)

:::note
レスポンスコードの設定については、下記のマニュアルをご参照ください。
**https://www.hulft.com/help/ja-jp/HULFTSquare/Content/HULFT_Square/HS_API/api_projects.htm**
:::


# 最後に

HULFT10 for Container Services のジョブ起動で HULFT Square のサービスを実行してみましたが、いかがでしたでしょうか。
外部サービスとシームレスに連携が可能となった HULFT10 for Container Services を皆様もぜひためしてみてください。

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