MC APIを使ってみる(maintenance/backup)

WARP4.8からフローサービス管理コンソールAPI(MC API)が公開されています。
APIの「maintenance」モジュールではフローサービスの設定情報のバックアップやリストアを行うことができます。
バックアップは定期的に行いたいものですが、フローサービス管理コンソールでバックアップを行う場合、ユーザーが毎回画面を開いてバックアップを直接実行する必要があります。
そこで、今回はフローと組み合わせてバックアップを定期的に自動実行させてみます。

まず、フローサービス管理コンソールでMC API実行用のHTTPコネクションを作成します。

blog6.png
URLのlocalhostとなっている部分はWARPがインストールされているサーバーのIPアドレスを指定してください。
次にフローを作成します。
MC APIの各APIを使用するには、まずログインしてセッションIDを取得する必要があるので、ログイン用のフローを作成します。
blog7.png
  • RESTコンポーネントの出力ストリーム
blog11.png

フローの作成手順と説明

1. 外部変数セットを作成して、セッションID格納用のリクエスト変数を追加
   変数名:sessionId
2. Mapperコンポーネントでユーザー名とパスワードをマッピング
3. RESTコンポーネントでログインAPIを実行
   コネクション:MC API実行用コネクション
   パス:/mcapi/auth/login
   出力:XML
   ストリーム:上記画像参照
4. Mapperコンポーネントで出力ストリームのsessionIdを手順1で作成したリクエスト
  変数にマッピング

次に、ログアウト用のフローを作成します。
blog9.png

フローの作成手順と説明

1. MapperでRESTコンポーネントのURLパラメーターにリクエスト変数のセッション
  IDをマッピング
2. RESTコンポーネントでログアウトAPIを実行
   コネクション:MC API実行用コネクション
   パス:/mcapi/auth/logout                                                             
次に、メインのフローを作成します。
blog15.png
  • RESTコンポーネントへのマッピング
blog14.png

フローの作成手順と説明

1. サブフローコンポーネントを配置
   実行するフロー:ログイン用のフロー
2. Mapperコンポーネントを配置
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. 「新規」ボタンをクリックしてスケジュールトリガーを作成
   繰り返し設定:毎日
   繰り返し時刻:03:00:00
blog13.png
これで毎日午前3時にバックアップが行われるようになりました。
バックアップファイルは自動では削除されないため、このままでは無制限にファイルが作成されてしまいます。
そこで、バックアップファイルは最大10件とし、それ以上になったら古いファイルから削除する処理をMC APIとフローの組み合わせで作成します。
blog10.png
  • バックアップ一覧取得RESTコンポーネントの出力ストリーム
blog12.png

フローの作成手順と説明

1. ログイン
2. RESTコンポーネントでバックアップ一覧取得APIを実行
   出力ストリーム型はXML、ストリームの内容は上記画像参照
3. Mapperコンポーネントで「ループを開始」を「はい」にしてfileNameを出力
4. BranchStartコンポーネントを配置
   条件式:$prev.ExecuteCount > 10
5. 条件に一致した場合は、RESTコンポーネントでバックアップファイル削除のAPIを
  実行
6. ログアウト

上記のフローをスケジュールトリガーで定期的に実行するようにすれば完成です。
今回作成したフローのように、「ログイン~セッションIDを送信ヘッダーに設定~APIを実行~ログアウト」という流れは、MC APIを実行する際の共通の処理となるので、他のMC APIを実行する際に参考にしてみてください。
今回のブログで使用したフローは以下からダウンロードできます。
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています

他のキーワードで検索する