WARP4.8からフローサービス管理コンソールAPI(MC API)が公開されています。
APIの「maintenance」モジュールではフローサービスの設定情報のバックアップやリストアを行うことができます。
バックアップは定期的に行いたいものですが、フローサービス管理コンソールでバックアップを行う場合、ユーザーが毎回画面を開いてバックアップを直接実行する必要があります。
そこで、今回はフローと組み合わせてバックアップを定期的に自動実行させてみます。
まず、フローサービス管理コンソールでMC API実行用のHTTPコネクションを作成します。
URLのlocalhostとなっている部分はWARPがインストールされているサーバーのIPアドレスを指定してください。
次にフローを作成します。
MC APIの各APIを使用するには、まずログインしてセッションIDを取得する必要があるので、ログイン用のフローを作成します。
- RESTコンポーネントの出力ストリーム
フローの作成手順と説明
1. 外部変数セットを作成して、セッションID格納用のリクエスト変数を追加
変数名:sessionId
2. Mapperコンポーネントでユーザー名とパスワードをマッピング
3. RESTコンポーネントでログインAPIを実行
3. RESTコンポーネントでログインAPIを実行
コネクション:MC API実行用コネクション
パス:/mcapi/auth/login
出力:XML
ストリーム:上記画像参照
4. Mapperコンポーネントで出力ストリームのsessionIdを手順1で作成したリクエスト
変数にマッピング
次に、ログアウト用のフローを作成します。
フローの作成手順と説明
1. MapperでRESTコンポーネントのURLパラメーターにリクエスト変数のセッション
IDをマッピング
2. RESTコンポーネントでログアウトAPIを実行
2. RESTコンポーネントでログアウトAPIを実行
コネクション:MC API実行用コネクション
パス:/mcapi/auth/logout
次に、メインのフローを作成します。
- RESTコンポーネントへのマッピング
フローの作成手順と説明
1. サブフローコンポーネントを配置
実行するフロー:ログイン用のフロー
2. Mapperコンポーネントを配置
3. RESTコンポーネントを配置
3. RESTコンポーネントを配置
コネクション:MC API接続用コネクション
パス:/mcapi/maintenance/backup
送信ヘッダー
Content-Type:手順4でマッピング X-As-SessionId:手順4でマッピング
4. Mapperコンポーネントで以下の項目をマッピング
JSON形式のリクエストパラメーター → 入力ストリーム
定数に"変数名:CONTENT_TYPE_JSON 値:application/json"を追加 →
送信ヘッダーのContent-Type
リクエスト変数のsessionId → 送信ヘッダーのX-As-SessionId
5. サブフローコンポーネントを配置
実行するフロー:ログアウト用のフロー
このフローを試しに実行してみると次のような結果が得られます。
{"result":{"status":"success","data":{"fileName":"backup-20140625-164446.zip"}}}
次に、作成したフローを定期的に実行させるためにスケジュールトリガーを作成します。
今回はフローサービス管理コンソールを使用して作成してみます。
スケジュールトリガーの作成手順
1. フローサービス管理コンソールから、設定>トリガー>スケジュールを開く
2. 「新規」ボタンをクリックしてスケジュールトリガーを作成
2. 「新規」ボタンをクリックしてスケジュールトリガーを作成
繰り返し設定:毎日
繰り返し時刻:03:00:00
これで毎日午前3時にバックアップが行われるようになりました。
バックアップファイルは自動では削除されないため、このままでは無制限にファイルが作成されてしまいます。
そこで、バックアップファイルは最大10件とし、それ以上になったら古いファイルから削除する処理をMC APIとフローの組み合わせで作成します。
- バックアップ一覧取得RESTコンポーネントの出力ストリーム
フローの作成手順と説明
1. ログイン
2. RESTコンポーネントでバックアップ一覧取得APIを実行
2. RESTコンポーネントでバックアップ一覧取得APIを実行
出力ストリーム型はXML、ストリームの内容は上記画像参照
3. Mapperコンポーネントで「ループを開始」を「はい」にしてfileNameを出力
4. BranchStartコンポーネントを配置
4. BranchStartコンポーネントを配置
条件式:$prev.ExecuteCount > 10
5. 条件に一致した場合は、RESTコンポーネントでバックアップファイル削除のAPIを
5. 条件に一致した場合は、RESTコンポーネントでバックアップファイル削除のAPIを
実行
6. ログアウト
6. ログアウト
上記のフローをスケジュールトリガーで定期的に実行するようにすれば完成です。
今回作成したフローのように、「ログイン~セッションIDを送信ヘッダーに設定~APIを実行~ログアウト」という流れは、MC APIを実行する際の共通の処理となるので、他のMC APIを実行する際に参考にしてみてください。
今回のブログで使用したフローは以下からダウンロードできます。