🌍
概念 #n8n #ユースケース #環境変数 #マルチ環境 #ステージング #デプロイ #セキュリティ 📚 n8nワークフロー自動化

環境変数で本番・ステージングを切り替える

n8nの環境変数・Variables機能を使い、同一ワークフローが本番・ステージング・開発環境で異なるエンドポイント・認証情報を参照するように設定する手順。

ユースケース概要

開発・ステージング・本番で異なるAPIエンドポイント・データベース・Slackチャンネルを使い分けるために、n8nのVariables機能と環境変数を組み合わせて環境ごとの設定を管理する。

解決する課題: ワークフローに直書きされた本番URL・DBホストを環境ごとに書き換えるリスクをなくし、コードは同じで設定だけを切り替える

環境設定の方法(3パターン)

パターン1: n8n Variables(推奨)

n8n管理画面内で環境変数を管理する。

Settings → Variables → Create Variable
KeyValue(dev)Value(prod)
API_BASE_URLhttps://api-dev.example.comhttps://api.example.com
DB_HOSTdev-db.internalprod-db.internal
SLACK_CHANNEL#dev-alerts#prod-alerts
LOG_LEVELdebugerror

ワークフロー内での参照:

URL: {{ $vars.API_BASE_URL }}/v1/orders

パターン2: .envファイル(セルフホスト)

# .env(開発環境)
N8N_ENV=development
API_BASE_URL=https://api-dev.example.com
DB_HOST=localhost
SLACK_CHANNEL=#dev-alerts

# .env(本番環境)
N8N_ENV=production
API_BASE_URL=https://api.example.com
DB_HOST=prod-db.internal
SLACK_CHANNEL=#prod-alerts

ワークフロー内での参照:

URL: {{ $env.API_BASE_URL }}/v1/orders

パターン3: External Secrets(エンタープライズ)

HashiCorp VaultやAWS Secrets Managerで一元管理する。

Settings → External Secrets → Add Provider

参照:

{{ $secrets.API_KEY }}

具体的な設定例

HTTP Requestノードの環境別URL切り替え

URL: {{ $vars.API_BASE_URL }}/v1/orders
Headers:
  Authorization: Bearer {{ $vars.API_KEY }}

開発と本番で同じワークフローを使い、Variablesだけを環境ごとに変える。

Slack通知の送信先切り替え

Channel: {{ $vars.SLACK_CHANNEL }}

開発環境では #dev-test に通知し、本番では #production に送る。

DB接続の切り替え

PostgreSQLノードのCredentialを環境別に作成しておく:

  • PostgreSQL - Development
  • PostgreSQL - Production

n8n VariablesでCredential名を切り替えるよりも、Credentialを直接環境別に選択する方が安全。

デプロイ時の確認チェックリスト

□ Variables が本番値に設定されているか
□ Credentialが本番用のものを指しているか
□ Error WorkflowのSlack通知先が本番チャンネルか
□ Schedule Triggerの時刻がJST/UTCどちらで設定されているか
□ Webhookのパスが本番用のものか(テスト用パスを使っていないか)

ポイント・注意事項

  • n8n VariablesはGitのSource Controlに含まれる。本番の実際の値は環境変数(.env)か外部Secretsで上書きする運用が安全
  • $env は実行環境のOS環境変数を参照する。Docker/ECS等のコンテナ環境ではコンテナの環境変数を設定する
  • テスト・デバッグ中にVariablesを本番値に変更しないよう、開発者各自がローカルのn8nインスタンスを持つことを推奨する

関連機能

  1. 1. 🔄n8n概要 - ワークフロー自動化プラットフォーム
  2. 2. ⚙️n8nワークフローの基本(ノード・コネクション・実行)
  3. 3. n8nトリガーの種類(Webhook・スケジュール・イベント)
  4. 4. 🔀n8nロジック制御(フィルター・条件分岐・ループ・マージ)
  5. 5. 🌐n8n HTTP Request・API連携
  6. 6. 🔗n8n主要インテグレーション(Slack・Gmail・GitHub)
  7. 7. 🛡️n8nエラーハンドリング・デバッグ
  8. 8. 🤖n8n AI・LLMエージェント(Chain・Agent)
  9. 9. 💻n8n Codeノード・カスタム処理
  10. 10. 🏢n8nエンタープライズ機能(ソース管理・シークレット・チーム管理)
  11. 11. 🌤️毎朝SlackにAIで天気・ニュースを通知する
  12. 12. 📊GitHubのPRをGoogleシートに自動記録する
  13. 13. 📧新規ユーザー登録時にWelcomeメールを自動送信する
  14. 14. 💳StripeのWebhookで決済完了を検知して処理する
  15. 15. 📈スケジュールトリガーで週次レポートを自動生成する
  16. 16. 🎫Gmailトリガーでサポートメールを自動Notionチケット化する
  17. 17. 🎯条件分岐でリード属性に応じて担当者を振り分ける
  18. 18. 📨ループ処理でリストを走査し一括メール送信する
  19. 19. 📋複数APIのデータをマージして統合レポートを作成する
  20. 20. 🗄️外部REST APIからデータを取得してDBに保存する
  21. 21. 🔍GraphQL APIでGitHubのIssueを取得・加工する
  22. 22. 🔐Bearer認証付きAPIを呼び出してデータ同期する
  23. 23. SlackとNotionを連携したチームタスク管理フロー
  24. 24. 🤝GmailとHubSpotを連携したCRM自動化フロー
  25. 25. 🚀GitHubデプロイイベントをSlackに通知する
  26. 26. 🚨APIエラー発生時にSlackへアラートを送る
  27. 27. 🔁リトライ付きの堅牢なデータ同期フローを構築する
  28. 28. 📝エラーログをAirtableに自動記録する
  29. 29. 🤖LLMを使ったカスタマーサポート自動応答ボット
  30. 30. 🔎ドキュメントRAG検索システムを構築する
  31. 31. 📬AIでメール内容を自動分類・ルーティングする
  32. 32. 🔧JavaScriptで複雑なデータ変換処理を実装する
  33. 33. 📄npmライブラリを使ったPDF自動生成フロー
  34. 34. ✔️カスタムバリデーションロジックをCodeノードで実装する
  35. 35. 🗂️Gitでワークフローをバージョン管理する
  36. 36. 🌍環境変数で本番・ステージングを切り替える
  37. 37. 👥チームでのワークフロー共同管理フロー
  38. 38. 📋AIで履歴書を自動スクリーニング・スコアリングする
  39. 39. 🧾請求書PDFをOCRで自動データ入力・会計ソフト登録する
  40. 40. 📱ブログ記事→SNS自動投稿パイプラインを構築する
  41. 41. 📦Shopify注文処理を完全自動化する(在庫・配送・顧客通知)
  42. 42. 🔔予約リマインダーを自動送信してノーショーを削減する
  43. 43. 📊経営ダッシュボードを毎朝Slackに自動配信する
  44. 44. 🔭競合情報を自動収集してWeeklyレポートにまとめる
  45. 45. 🎉新入社員オンボーディングを完全自動化する

出典: https://docs.n8n.io/source-control-environments/environments/