Proposal
Why¶
現在の scripts/ 配下のスクリプトは、Azure 関連パラメーター(SubscriptionId、ResourceGroupName、StorageAccountName)にハードコーディングされたデフォルト値を持つ。これにより、.env ファイルが未配置でもスクリプトが「なんとなく」動いてしまい、誤った環境に対して操作を実行するリスクがある。また、.env のパスが固定されているため、開発環境・本番環境など複数環境の切り替えに対応できない。
What Changes¶
- BREAKING: 全スクリプトの
param()ブロックから Azure 関連パラメーター(SubscriptionId,ResourceGroupName,StorageAccountName)を廃止。設定値は.envファイルからのみ供給する - BREAKING:
Load-EnvSettings関数の仕様変更。.envファイルが存在しない場合は$nullを返すのではなくエラーをスローする。-EnvPathパラメーターを追加し、未指定時はプロジェクトルートの.envをデフォルトで利用する Apply-EnvSettingsを廃止し、新関数Import-EnvParamsに統合。.envの全キーを呼び出し元スコープの変数として直接設定する。PascalCase ↔ SNAKE_CASE のマッピングを不要にする- 各スクリプトで
.envのキー名をそのまま変数として使用する(例:$AZURE_SUBSCRIPTION_ID) .env.exampleのAZURE_LOCATIONなど未使用項目の整理
Capabilities¶
New Capabilities¶
env-path-argument:.envファイルのパスをスクリプト引数-EnvFileで指定できる機能。未指定時はプロジェクトルートの.envをデフォルトで利用する。明示指定・デフォルトを問わず、指定パスに.envが存在しない場合はエラーで終了する。これにより複数環境(開発・本番等)の切り替えを実現する
Modified Capabilities¶
infra-common-helpers:.envファイルが存在しない場合の振る舞いを「$nullを返す」から「エラーで終了」に変更。Load-EnvSettingsに-EnvPathパラメーターを追加。Apply-EnvSettingsを廃止しImport-EnvParamsに統合。各スクリプトの Azure 関連パラメーターを廃止し、.envのキー名を直接変数として使用
Impact¶
- 影響ファイル:
scripts/common/Load-EnvSettings.ps1—Apply-EnvSettings廃止、Import-EnvParams新設、Load-EnvSettingsに-EnvPath追加scripts/Clear-Data.ps1— Azure パラメーター廃止、Import-EnvParams呼び出し、変数名変更scripts/Deploy-StaticFiles.ps1— 同上scripts/New-SasToken.ps1— 同上scripts/Show-Urls.ps1— 同上scripts/common/Connect-AzureStorage.ps1— 引数の変数名変更に伴う呼び出し側の対応.env.example— 不要項目の整理- 破壊的変更:
.envファイルなしでのスクリプト実行ができなくなる。-SubscriptionId等のコマンドライン引数による個別上書きも廃止 - 依存関係: 外部依存の変更なし。PowerShell 共通関数のインターフェイス変更のみ