よかろうもん!スマートフォン用の表示で見るよかろうもん!アプリからインフラまで幅広くこなすいまどきのクラウドエンジニアが記す技術ブログこの広告は、90日以上更新していないブログに表示しています。2014-03-12OpsWorksでNodejsアプリを動かすときにNODE_ENVが指定できないのを何とかする件AWSOpsWorksのRailsアプリケーションではRAILS_EVNが指定できるにもかかわらず、Nodejsアプリケーションでは、NODE_ENVが指定できず、stagingとproductionで振る舞いを変えたりすることができません。参考にレシピを自分で作成するのもよいのですが、レシピの中でなるべく依存関係が無い状態にしたり、デフォルトのMonit監視設定を変更したりしなければなりません。opsworksで自動で設定される標準設定を書き換えてしまうと、今後AWS側で標準設定の書き換えが行われた時にその変更も取り込んだりしないといけないので、出来る限り設定ファイルの上書きでなくファイル追加などで対応したいところですね。デプロイフックとNodejsのnode-configモジュールを組み合わせるという技です。Developers.IOを参考にするとすぐに理解できるかと思います。環境毎に固有の設定を別ファイルに抜き出しておくことで、自動で環境に応じた設定ファイル読み込めるというものです。今回はこの仕組みを利用して以下の設定ファイルを作成したものとして話を進めます。(本番環境の設定)環境ごとの設定ファイルが出来たことで、デプロイした時に適切なファイルを読み込めるようにすればNODE_ENVを指定できなくても大丈夫ですね。JSONで環境変数を設定しましょう。次はDeployフックです。よかろうもん!』の記事にてデプロイフックのやり方をご紹介しましたね。Nodejsでも同じようにdeployディレクトリ以下にフック処理を記述したファイルを配置しましょう。コピーしてデフォルト値として読み込ませます。読み込まれるようになっているので、これで大丈夫なんですね。上記を見ればすぐにわかりますが、node_envを読み込んで、必要となるファイルをコピーしていますね。JSONの指定だけで、NODE_ENVを指定した時と同じような仕組みを実現できましたね。Meid:interuSonicGardenのサービスインフラ全般の運用/管理から、SKIP2やMessageLeaf等のアプリケーション開発まで手がけるハイブリッドエンジニア。月別アーカイブはてなブログをはじめよう!interuさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。