Automation Pilot を使った Cloud Foundry 上のアプリの夜間停止と再起動の構築手順
Share

English Version

はじめに

SAP BTPのCloud Foundry環境で稼働するカスタムアプリケーションですが、リソース最適化の観点から夜間は停止させたいというケースも考えられます。そこで、BTP上で提供されるローコード/ノーコードの運用自動化サービスであるAutomation Pilot を活用して、「夜間にアプリを停止し、朝に再起動する」ための構築手順を紹介します。

想定読者は、Cloud FoundryやBTPには馴染みがあるが、Automation Pilotを初めて利用する方となっています。

1. CatalogとInputの作成

最初にCatalogを作成します。

  • Catalog: CommandとInputをまとめるフォルダのような単位で、プロジェクトごとにまとめて管理できます。

今回は ‘Sample’ という名前を付けます。

Screenshot 2025-08-17 at 21.59.18.png

 次に、Cloud Foundryアプリを操作するためのInputを作成します。

  • Input: Commandで使う設定値をKey-Value形式でまとめて管理できます。

Input名は ‘CfAppOperation’ とします。

Screenshot 2025-08-17 at 22.03.22.png

Inputには、認証情報と対象アプリを特定するための情報を登録します。

  • user : BTPのテクニカルユーザー名
  • password : ユーザーのパスワード (Sensitive設定ON推奨)
  • region : Cloud Foundryリージョン名 (例:  cf-eu10)
  • subAccount : サブアカウント名
  • resourceGroup : スペース名
  • resourceName : アプリケーション名 (例. cap-js-bookshop-srv)

このようにInputとして一度登録しておくと、停止・再起動のCommand実行時に毎回入力する手間が省けます。

Screenshot 2025-08-17 at 22.11.05.png

2. 停止Command の作成

次に、アプリを停止するためのCommandを作成します。

  • Command: Automation Pilot における実行可能な処理の単位で、開始時にInput Keysを受け取り、終了時にOutput Keysを返します。Commandは他のCommandを順に組み合わせて構成されます。

作成するCommand名を ‘StopCfApp’ とし、Catalogとして先ほどの ‘Sample’ を指定します。

Screenshot 2025-08-17 at 22.12.23.png

CommandにExecutorを追加します。

  • Executor: Commandの中で利用される一つあるいは複数のCommandを含んだラッパーです。対象Commandを正しく実行できるようにInput Keysに値を与える必要があり、その値は直接指定するかDynamic Expressionで参照できます。

Screenshot 2025-08-17 at 22.12.49.png

Executorは’StopApplication’というエイリアスを設定し、事前定義済みの ‘applm-sapcp’の’StopCfApp’ を選択します。

Screenshot 2025-08-17 at 22.14.33.png

‘StopApplication’で表示されている ‘applm-sapcp:StopCfApp:1’ をクリックして、情報を見てみます。

Screenshot 2025-08-18 at 13.02.49.png

InputとOutputのKey-Valueの定義がそれぞれ確認できます。これらの情報をもとに、後述のInput KeysとOutput Keysを設定します。

Screenshot 2025-08-18 at 13.03.06.png

先ほどのページに戻り、Input Keysを定義します。passwordはSensitive設定ONが推奨です。

Screenshot 2025-08-18 at 15.29.44.png

最終的に、以下の6つのKeyをInput Keysとして設定します。

Screenshot 2025-08-18 at 15.27.54.png

先ほど作成したInput Keysを’StopApplication’のParametersとDynamic Expressionで紐付けます。

Screenshot 2025-08-17 at 22.21.42.png

続いて、Output Keysを定義します。

Screenshot 2025-08-18 at 10.44.57.png

最終的には下記のようなOutput Keysを作成します。

Screenshot 2025-08-18 at 13.10.33.png

Output Keysも同様に、StopApplicationの出力とDynamic Expressionで紐付けます。

Screenshot 2025-08-18 at 10.46.34.png

下記のようになります。

Screenshot 2025-08-18 at 10.47.49.png

3. 動作確認

ここまでで、停止用Commandが完成しました。画面右上の Trigger ボタンから実行し、結果を確認します。

Screenshot 2025-08-18 at 13.13.31.png

実行結果画面の Output > Show をクリックすると、対象アプリ(例: cap-js-bookshop-srv)が停止されたことが確認できます。エラーが出た場合は、Input設定、権限、値の紐付けなどを再確認してください。

Screenshot 2025-08-18 at 10.53.35.png

4. スケジュール設定

次に、この停止Commandを自動的に定期実行するためにスケジュール設定を行います。

Screenshot 2025-08-18 at 10.53.59.png

スケジュール対象として、’StopCfApp’を選択します。

Screenshot 2025-08-18 at 10.57.00.png

ここでは、東京のタイムゾーンで毎日22時に実行するように設定します。

Screenshot 2025-08-18 at 11.04.04.png

‘StopCfApp’をスケジュールできました。

Screenshot 2025-08-18 at 11.04.31.png

5. 再起動Commandの設定

朝の稼働時間にアプリを再起動させるため、停止と同様の手順で再起動Commandを設定します。

ここでは事前定義済みの ‘applm-sapcp:RestartCfApp‘ を利用します。停止時と同様にInputを紐付け、スケジュールを「毎日朝7時」などに設定すれば、夜間停止したアプリを自動的に再起動するようになります。

Screenshot 2025-08-18 at 15.33.34.png

Screenshot 2025-08-18 at 15.34.31.png

終わりに

本記事では、Automation Pilotを使ってCloud Foundry上のアプリを夜間停止し、朝に再起動させる手順を紹介しました。ポイントは以下の通りです。

  • Inputとして認証情報とアプリ情報を管理
  • 事前定義済みCommand(StopCfApp / RestartCfApp)を利用
  • 値の紐付けを行う
  • スケジューリング機能で定期実行

今回は再現性の担保の観点から一つ一つGUIで設定して行きましたが、生成AI機能を活用することでより効率的にCommandの作成ができます。

また、応用として、停止・再起動のメール通知、対象アプリケーションの拡充なども可能です。

日々の運用を効率化する第一歩として、ぜひ試してみてください!

 

 English VersionはじめにSAP BTPのCloud Foundry環境で稼働するカスタムアプリケーションですが、リソース最適化の観点から夜間は停止させたいというケースも考えられます。そこで、BTP上で提供されるローコード/ノーコードの運用自動化サービスであるAutomation Pilot を活用して、「夜間にアプリを停止し、朝に再起動する」ための構築手順を紹介します。想定読者は、Cloud FoundryやBTPには馴染みがあるが、Automation Pilotを初めて利用する方となっています。1. CatalogとInputの作成最初にCatalogを作成します。Catalog: CommandとInputをまとめるフォルダのような単位で、プロジェクトごとにまとめて管理できます。今回は ‘Sample’ という名前を付けます。 次に、Cloud Foundryアプリを操作するためのInputを作成します。Input: Commandで使う設定値をKey-Value形式でまとめて管理できます。Input名は ‘CfAppOperation’ とします。Inputには、認証情報と対象アプリを特定するための情報を登録します。user : BTPのテクニカルユーザー名password : ユーザーのパスワード (Sensitive設定ON推奨)region : Cloud Foundryリージョン名 (例:  cf-eu10)subAccount : サブアカウント名resourceGroup : スペース名resourceName : アプリケーション名 (例. cap-js-bookshop-srv)このようにInputとして一度登録しておくと、停止・再起動のCommand実行時に毎回入力する手間が省けます。2. 停止Command の作成次に、アプリを停止するためのCommandを作成します。Command: Automation Pilot における実行可能な処理の単位で、開始時にInput Keysを受け取り、終了時にOutput Keysを返します。Commandは他のCommandを順に組み合わせて構成されます。作成するCommand名を ‘StopCfApp’ とし、Catalogとして先ほどの ‘Sample’ を指定します。CommandにExecutorを追加します。Executor: Commandの中で利用される一つあるいは複数のCommandを含んだラッパーです。対象Commandを正しく実行できるようにInput Keysに値を与える必要があり、その値は直接指定するかDynamic Expressionで参照できます。Executorは’StopApplication’というエイリアスを設定し、事前定義済みの ‘applm-sapcp’の’StopCfApp’ を選択します。’StopApplication’で表示されている ‘applm-sapcp:StopCfApp:1’ をクリックして、情報を見てみます。InputとOutputのKey-Valueの定義がそれぞれ確認できます。これらの情報をもとに、後述のInput KeysとOutput Keysを設定します。先ほどのページに戻り、Input Keysを定義します。passwordはSensitive設定ONが推奨です。最終的に、以下の6つのKeyをInput Keysとして設定します。先ほど作成したInput Keysを’StopApplication’のParametersとDynamic Expressionで紐付けます。続いて、Output Keysを定義します。最終的には下記のようなOutput Keysを作成します。Output Keysも同様に、StopApplicationの出力とDynamic Expressionで紐付けます。下記のようになります。3. 動作確認ここまでで、停止用Commandが完成しました。画面右上の Trigger ボタンから実行し、結果を確認します。実行結果画面の Output > Show をクリックすると、対象アプリ(例: cap-js-bookshop-srv)が停止されたことが確認できます。エラーが出た場合は、Input設定、権限、値の紐付けなどを再確認してください。4. スケジュール設定次に、この停止Commandを自動的に定期実行するためにスケジュール設定を行います。スケジュール対象として、’StopCfApp’を選択します。ここでは、東京のタイムゾーンで毎日22時に実行するように設定します。’StopCfApp’をスケジュールできました。5. 再起動Commandの設定朝の稼働時間にアプリを再起動させるため、停止と同様の手順で再起動Commandを設定します。ここでは事前定義済みの ‘applm-sapcp:RestartCfApp’ を利用します。停止時と同様にInputを紐付け、スケジュールを「毎日朝7時」などに設定すれば、夜間停止したアプリを自動的に再起動するようになります。終わりに本記事では、Automation Pilotを使ってCloud Foundry上のアプリを夜間停止し、朝に再起動させる手順を紹介しました。ポイントは以下の通りです。Inputとして認証情報とアプリ情報を管理事前定義済みCommand(StopCfApp / RestartCfApp)を利用値の紐付けを行うスケジューリング機能で定期実行今回は再現性の担保の観点から一つ一つGUIで設定して行きましたが、生成AI機能を活用することでより効率的にCommandの作成ができます。また、応用として、停止・再起動のメール通知、対象アプリケーションの拡充なども可能です。日々の運用を効率化する第一歩として、ぜひ試してみてください! Read More Technology Blog Posts by SAP articles 

#SAPCHANNEL

By ali