IronWorker を使用していくつかの一般的なサービスを実行することを検討していますが、ワーカー自体がどの環境で実行されているかを知る方法があるかどうか疑問に思っています。たとえば、メインのコード ベースでは、サーバー変数 ENV を「開発」、「ステージング」、または「運用」のいずれかに設定します。この変数に基づいて、アプリはどの構成ファイルをロードするかを認識します (dirs config/development、config/staging、および config/production 内の構成ファイルを介して)。ワーカーに同様の設定をしたいと思います。
CLI 経由でワーカーをアップロードすると、次のことができることに気付きました。
iron_worker upload workers/example/hello_world --env ステージング
これにより、dev、staging、および production キーを含む 1 つの iron.json 構成ファイルを持つことができます。例えば、
{
"production": {
"token": "AAAAAAAAAAAAAAAAAAAAAAAAAAA",
"project_id": "000000000000000000000001"
},
"staging": {
"token": "BBBBBBBBBBBBBBBBBBBBBBBBBB",
"project_id": "000000000000000000000002"
},
"development": {
"token": "CCCCCCCCCCCCCCCCCCCCCCCCCC",
"project_id": "000000000000000000000003"
},
"test": {
"token": "DDDDDDDDDDDDDDDDDDDDDDDDDD",
"project_id": "000000000000000000000004"
}
}
ただし、ワーカー自体ではcliから環境変数にアクセスできないため、ワーカーがいくつかの構成変数をロードする必要がある場合、どのディレクトリを調べるかわかりません。
ここのドキュメントhttp://dev.iron.io/worker/reference/dotworker/では、.worker ファイルで環境変数を設定できることが示されていますが、これは、環境ごとに個別のワーカー ファイルが必要であることを意味します。そして(おそらく?)デプロイ先の環境に応じてそれらを交換します。