環境変数の管理とデフォルト値の設定方法
スクリプトやプログラムが実行される際に環境変数が必要となるケースが頻繁にあります。しかし、環境変数が設定されていなかったり、設定されていることに気づいていないユーザーが存在する場合、スクリプトが正しく動作しない可能性があります。そのため、環境変数が存在するかどうかを確認し、必要に応じてデフォルト値を設定する仕組みを導入することが重要です。
以下に、環境変数を確認する仕組みをシェルスクリプトとTypeScriptで実装する例を示します。
シェルスクリプトの例
#!/bin/bash
# 環境変数を確認する関数
check_environment_variable() {
local env_variable_name="$1"
# 環境変数の値を取得
local env_variable_value="${!env_variable_name}"
# 環境変数が未設定の場合
if [ -z "$env_variable_value" ]; then
echo "ENV '$env_variable_name' を設定ください."
exit 1
fi
}
# ビルドプロセス
build() {
check_environment_variable "REGISTRY_PATH"
check_environment_variable "CI_PIPELINE_ID"
# ここに追加の処理を記述
}
# 実行例
build
上記の例では、check_environment_variable
関数を使用して環境変数が設定されているかどうかをチェックします。未設定の場合、エラーメッセージを出力してスクリプトを終了します。
TypeScriptの例
const showedEnvLog: string[] = [];
// 環境変数を取得する関数
export function getEnv<T = string>(keyName: string, defaultValue?: T): T {
const envValue = process.env[keyName] as T;
if (!envValue) {
if (defaultValue == undefined) {
const errorLog = `環境変数 ${keyName}: 未設定です。設定してください`;
console.error(errorLog);
throw new Error(errorLog);
} else {
console.warn(`環境変数 ${keyName}: 未設定 (デフォルト値使う: ${defaultValue})`);
showedEnvLog.push(keyName);
return defaultValue;
}
}
if (!showedEnvLog.includes(keyName)) {
console.info(`環境変数 ${keyName}: ${envValue}`);
showedEnvLog.push(keyName);
}
return envValue;
}
// 実行関数
export function run() {
const MAX_STEP_FUNCTION_LOOP_COUNT = getEnv("MAX_STEP_FUNCTION_LOOP_COUNT", 100);
const AAA = getEnv("AAA", 100);
// ここに追加の処理を記述
}
このTypeScriptの例では、getEnv
関数を使って環境変数を取得します。未設定の場合はエラーをスローするか、デフォルト値を使用します。環境変数の使用状況をログに記録する仕組みも含まれています。
結論
環境変数の存在を確認し、デフォルト値を設定する仕組みを取り入れることで、スクリプトやプログラムの信頼性を向上させることができます。特にチーム開発では、環境設定のミスを減らし、開発効率を高めるための重要なステップとなります。
ぜひこの方法を参考にして、プロジェクトに適用してみてください。