Sublime Textで「保存=デプロイ」を実現する:クラウド開発の爆速化術
こんにちは。開発環境の設計を愛してやまない、あるエンジニアです。
皆さんは、クラウドネイティブな開発をする際、「ローカルで書いて、Gitにプッシュして、CI/CDが走り出すのを待つ」という手順に、少しだけ「遠いな」と感じたことはありませんか?もちろん、堅牢な開発においてCI/CDは不可欠です。しかし、プロトタイピングやちょっとした関数の調整において、そのオーバーヘッドは思考のフローを分断します。
今回は、世界で最も軽快なエディタである「Sublime Text」のBuild Systemsをハックし、「Ctrl+S(保存)」と同時にクラウドへ関数をデプロイし、実行ログをエディタ内に表示させるという、魔法のような環境を構築する方法を伝授します。
—
1. なぜ「Build Systems」を使うのか?
Sublime Textの`Build System`は、単にプログラムを実行する機能ではありません。これは「エディタが外部コマンドを制御するためのインターフェース」です。
通常、IDEではターミナルを開き、コマンドを打ち、レスポンスを待つという手間が発生します。しかし、Build Systemをカスタマイズすれば、以下のプロセスが「保存」という一つの動作に凝縮されます。
1. バリデーション: 保存時にLintを通す。
2. パッケージング: コードをZIP化する。
3. デプロイ: AWS CLIやCloud Functions APIを叩く。
4. フィードバック: 実行結果やエラーログをSublime Textのコンソールに即時表示する。
このループを確立すれば、あなたは「クラウドという巨大なインフラ」を「自分のローカル関数」のように扱えるようになります。
—
2. 実践:AWS Lambdaデプロイ・システムの構築
ここでは、AWS Lambdaを想定した`.sublime-build`の設定例を紹介します。
ステップ1: ビルドシステムの作成
Sublime Textのメニューから `Tools` > `Build System` > `New Build System…` を選択し、以下のJSONを記述してください。
{
// ビルドシステムの名前
“name”: “DeployToLambda”,
// シェル経由で実行(環境変数の読み込みやパス解決に必要)
“shell_cmd”: “zip -r function.zip . && aws lambda update-function-code –function-name my-lambda-func –zip-file fileb://function.zip”,
// 実行結果をSublime Textの下部パネルに表示するための正規表現(エラー箇所へのジャンプ用)
“file_regex”: “^[ ]File \”(…?)\”, line ([0-9])”,
// 成功・失敗時の通知用(Linux/macOSの場合)
“variants”: [
{
“name”: “Run and Log”,
“shell_cmd”: “aws lambda invoke –function-name my-lambda-func response.json && cat response.json”
}
]
}
ステップ2: セキュリティの鉄則(APIキーの管理)
ここで最も重要なのは、「APIキーをファイルに直書きしない」ことです。
Sublime TextのBuild Systemは、OSの環境変数を継承します。`.bash_profile` や `.zshrc` に `AWS_ACCESS_KEY_ID` などを設定しておけば、エディタの設定ファイルはクリーンに保たれます。
.zshrc などに記述
export AWS_PROFILE=my-developer-profile
こうすることで、万が一設定ファイルをGitHub等で共有しても、機密情報が流出するリスクをゼロにできます。
—
3. なぜこの設定が「現場」で最強なのか?
この構築の真骨頂は、「思考のコンテキストスイッチを最小化できる」点にあります。
- 即時フィードバック: 通常のCI/CD環境では「デプロイ完了まで30秒〜1分」かかることが一般的です。しかし、CLI経由で直接プッシュすれば、数秒でクラウド上のコードが更新されます。
- 集中力の維持: Sublime Textから手を離さずに作業が完結するため、脳が「エディタモード」から「ターミナルモード」へ切り替わるストレスがありません。
—
4. 最初の一歩:HelloWorldの動作確認
まずは、極めて小さなスクリプトで試してみましょう。
1. 適当なファイルを作成: `lambda_function.py` を作成します。
2. ビルドの選択: `Tools` > `Build System` から、先ほど作成した `DeployToLambda` を選択します。
3. 実行: `Ctrl + B`(macOSなら `Cmd + B`)を押してください。
下部のパネルに `aws lambda` コマンドの出力結果が表示されれば成功です!もしエラーが出たとしても、`file_regex` の設定のおかげで、エラー行をクリックするだけで即座にソースコードの該当箇所へジャンプできます。
—
先輩エンジニアからのアドバイス
「ツールは、使う側の意思に従うべきだ」というのが私の信条です。
最初は少し複雑に見えるかもしれませんが、一度この「保存=クラウド反映」のパイプラインを作ってしまうと、もう元の環境には戻れません。開発効率とは、単に速く打つことではなく、「作業の断絶をどれだけ排除できるか」にあります。
ぜひ、今日からあなたのSublime Textを「クラウドを操る魔法の杖」へと進化させてみてください。もし設定で詰まることがあれば、いつでもまた聞きに来てくださいね。あなたの開発ライフが、よりクリエイティブで快適なものになることを願っています!