[CAIレシピ] API Managerを利用したプロセスの実行


## はじめに

この記事では次のポイントを確認します。

- API Managerとは
- Managed APIの作成と実行

なお、この記事は次の記事の内容を理解していることを前提としています。

- [はじめてCAIを使う際に](https://qiita.com/shunsuzu/private/12b8dbd08a30efa0003a)
- [プロセスの作成と実行(匿名認証と基本認証)](https://qiita.com/shunsuzu/private/01d91caedb92bd7781ea)

## API Managerとは

API Manager(`APIM`)を利用して、Managed API(`管理対象API`)を作成することで次のような設定・機能を利用できます。

- 実行を許可するIPアドレスの指定
- 各認証方法のサポート(基本認証・OAuth 2.0認証・JSON Webトークン認証)
- 実行履歴の分析
	- 実行元IPアドレスの確認
	- 実行時の証方法の確認
	- 実行に要した時間の確認
	- 過去6ヶ月を対象とした実行履歴のダウンロード

上記機能のうち特に着目したい機能が __過去6ヶ月を対象とした実行履歴のダウンロード__ です。Managed APIを作成せずに、CAIプロセスをクラウドサーバーにデプロイしている場合、次の時間経過後、アプリケーション統合コンソールからログを参照できなくなります。

- 正常終了ステータス : 24時間
- エラー終了ステータス : 72時間
- 一時停止ステータス : 7日

CAIプロセスがエラーで終了していたとしても、例えばお正月休み中にログが消失してまうので、年明けの出社時に異常終了プロセスがあるか？を管理画面から確認できない状態となってしまいます。
Operational Insightを利用することで過去のCAIプロセス実行情報を参照できますが、実行統計は平均値のみ確認できる仕様となっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/b77e39c9-c0a8-23da-b638-cc0f48a4f3c2.png)

Managed APIを実行していると過去6カ月の実行情報を平均値ではなく、Managed APIの実行ステータスや処理時間などを個別に参照できるので、お正月休みも安心して過ごせることでしょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/889fff46-394c-ad1f-a592-07dca3410e5a.png)

## Managed APIの作成と実行

### Managed APIの作成手順

今回は[[CAIレシピ] プロセスの作成と実行(匿名認証と基本認証)](https://qiita.com/shunsuzu/items/01d91caedb92bd7781ea)で作成したCAIプロセス __recipe-pcb-HelloWorld__ を対象にManaged APIを作成する手順を確認します。

1. IICSにログイン、 __API Managerページ__ に切り替えます。
1. __API Manager__ の画面に始めてアクセスすると次のような __APIドメイン名__ の構成画面が表示されると思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/2bfe3e05-4c6c-6b3f-84a9-aa27c65ee0ca.png)
APIドメイン名は、Managed APIを実行する際のURLの一部に利用されます。特に要件が無い場合は、規定値のまま __保存__ をクリックします。規定値には組織のOrgIDが含まれます(\<OrgID\>.com という形式)。
1. __APIレジストリ__ タブから __recipe-pcb-HelloWorld__ を探して右クリック、__管理対象APIの作成__ を選択します。今回は __プロトコル__=__REST__ を対象にManaged APIを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/b77c16f5-d47e-9f61-da54-134c33ed967d.png)
1. __作成__ をクリックしてManaged APIを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/56d2e189-7a95-0fd0-df54-ff677ee35908.png)

1. 正常にManaged APIが作成されると、一覧のステータスが __アクティブ__ に変わります。
右クリックして編集を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/c24ffd6b-38f7-b36d-9f51-7fd7423236d9.png)
1. 全般タブでは、Managed APIの概要を確認できるほか、認証方法を変更することなどもできます。
API URLから管理対象をREST APIとして実行する時に必要となるURLを確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/a40a45d7-7416-b2d8-c471-5af8aefcd79b.png)


### Managed APIの実行

Managed APIを基本認証として実行する場合、確認したAPI URLを指定して次のように実行します。

```:基本認証としてManaged APIを実行する
// curl コマンド
curl -u username:password https://<IICS・APIMサーバー>/t/cai.recipe.com/recipe-pcb-HelloWorld

// 実行結果
{"out":"Hello World"}
``` 

### Managed API実行結果の確認
Managed APIを実行すると __分析__ - __アクティビティログ__ からManaged APIの実行結果として、次のような情報を確認できます(括弧内の記載は各列の補足)。
- タイムスタンプ(Managed APIの実行日時)
- API名(実行したManaged APIの名前)
- プロトコル(実行時に利用されたプロトコル、REST or SOAP)
- HTTP応答(実行結果)
- IPアドレス
- 継続時間(実行時間)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/5215ba52-b9bf-deeb-dbd1-5c5efa978037.png)





## 参照

- [Qiita - IICS CAIの実装レシピ - マスターページ](https://qiita.com/shunsuzu/items/3d1971ef6e3b993516aa)