Terraform でスクリプトを実行する
CelerData は、Terraform を介してスクリプトの実行をサポートしています 。
また、OpenAPI を使用してクラスター用の実行可能なスクリプトを宣言することもできます。詳細については、 Declare scripts for a cluster を参照してください。
リクエストパラメータ
パラメータ | タイプ | 説明 |
---|---|---|
cluster_id | STRING | CelerData クラスターの ID。 |
run_scripts_parallel | BOOLEAN | スクリプトを並行して実行するかどうか。 有効な値: true と false 。 デフォルト値: false 。 |
scripts | ARRAY | 実行するスクリプトのリスト。 最大 20 個のスクリプトを指定できます。 |
scripts.script_path | STRING | 実行するスクリプトの S3 URI。 S3 URI は次の形式のいずれかです:
|
scripts.logs_dir | STRING | スクリプト実行結果が保存されるパス。 パスは次の形式のいずれかです:
|
次の点に注意してください:
- すべてのスクリプトはデフォルトユーザーによって実行されます。 root ユーザーの権限を適用したい場合は、Sudo を使用してください。
- 指定されたすべてのスクリプトの実行に許可される最大時間は 5 分です。
- 一度に最大 20 個のスクリプトを実行できます。
- 異常に実行されるスクリプトはクラスターのデプロイに失敗を引き起こします。したがって、指定されたスクリプトが正常に実行できることを確認してください。
- CelerData クラスターがデプロイされるすべての EC2 インスタンスに関連付けられたインスタンスプロファイルが、スクリプトおよびログファイルで指定されたバケットおよびキーに対して必要な読み取りまたは書き込み権限を持っていることを確認してください。
- リクエストパラメータ
scripts
で指定されたスクリプトのリストは異なるパスに配置でき、スクリプト実行時に生成されるログファイルはスクリプトのパスに類似したパスに保存されます。 - 各スクリプトの実行により、xxx-stderr.log および xxx-stdout.log の 2 つのログファイルが生成されます。
スクリプトの実行
すべてのスクリプトは、実行プロセス中に次の環境変数を使用できます:
環境 変数 | 説明 |
---|---|
CELERDATA_CLUSTER_ID | CelerData クラスターの ID。 |
CELERDATA_CLUSTER_NAME | CelerData クラスターの名前。 |
CELERDATA_ACCOUNT_ID | CelerData クラウドアカウントの ID。 |
STARROCKS_INSTANCE_TYPE | EC2 インスタンスで実行される StarRocks プロセス。 有効な値: FE と BE 。 |
STARROCKS_INSTANCE_CONF_PATH | EC2 インスタンスで実行される StarRocks プロセスの設定ファイルの保存パス: /xxx/xxx/fe/conf/fe.conf または /xxx/xxx/be/conf/be.conf。 |
クラスター展開のための初期化スクリプト
リクエストパラメータ scripts
で指定されたスクリプトのリストは、EC2 インスタンスが起動した後、クラスター展開の開始時と終了時にそれぞれ実行されます。
-
クラスター展開の開始時:
-
すべてのスクリプトは
source
コマンドによって一度実行されます。 -
各スクリプトで
on_deployment_started
メソッドが呼び出されます。このメソッドがスクリプトに存在しない場合、スクリプトはデフォルトで正常に実行されたと見なされます。 -
各スクリプトのログファイルが生成され、次のパスに保存されます:
<s3_logs_dir>/<cluster_name>-<cluster_id>/<host_ip>/on-deployment-started/<script_path>-<run_timestamp_ms>-stdout.log
<s3_logs_dir>/<cluster_name>-<cluster_id>/<host_ip>/on-deployment-started/<script_path>-<run_timestamp_ms>-stderr.log
-
-
クラスター展開の終了時:
-
すべてのスクリプトは
source
コマンドによって一度実行されます。 -
各スクリプトで
on_deployment_completed
メソッドが呼び出されます。このメソッドがスクリプトに存在しない場合、スクリプトの実行結果は前のステップでsource
コマンドによって返された結果に依存します。 -
各スクリプトのログファイルが生成され、次のパスに保存されます:
<s3_logs_dir>/<cluster_name>-<cluster_id>/<host_ip>/on-deployment-completed/<script_path>-<run_timestamp_ms>-stdout.log
<s3_logs_dir>/<cluster_name>-<cluster_id>/<host_ip>/on-deployment-completed/<script_path>-<run_timestamp_ms>-stderr.log
-
一度限りの実行のためのアドホックスクリプト
リクエストパラメータ scripts
で指定されたスクリプトのリストは、API コールによって実行されます。
-
各スクリプトは /bin/bash を介して実行されます。
-
各スクリプトのログファイルが生成され、次のパスに保存されます:
<s3_logs_dir>/<cluster_name>-<cluster_id>/<host_ip>/<script_path>-<run_timestamp_ms>-stdout.log
<s3_logs_dir>/<cluster_name>-<cluster_id>/<host_ip>/<script_path>-<run_timestamp_ms>-stderr.log