【Railway】変数の管理

RailwayのパブリックGraphQL APIを介して変数を管理する方法を学びます。

Railwayはこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)

変数の使用

変数は、Railwayのサービス全体で構成とシークレットを管理する方法を提供します。

定義されると、次のシナリオで環境変数としてアプリケーションで利用できるようになります。

  • 各サービスデプロイメントのビルドプロセス。
  • 実行中のサービスデプロイメント。
  • railway run <COMMAND> によって呼び出されるコマンド
  • railway shell によるローカルシェル

Railwayには、プラットフォームの動作を制御できる構成変数の概念もあります。

変数を追加、更新、または削除すると、ステージングされた変更のセットが作成され、適用するにはレビューしてデプロイする必要があります。

サービス変数

個々のサービスにスコープされた変数は、サービスの「変数」タブに移動して定義できます。

サービス変数の定義

サービスの変数タブから、New Variable をクリックしてフォームフィールドに変数を入力するか、RAW Editor を使用して .env またはjson形式のファイルの内容を貼り付けます。

共有変数

共有変数は、同じプロジェクト内の複数のサービス間で変数の重複を減らすのに役立ちます。

共有変数の定義

プロジェクト設定 -> 共有変数ページから、環境を選択し、変数名と値を入力して、Add をクリックします。

共有変数の使用

共有変数を使用するには、プロジェクト設定 -> 共有変数メニューから共有ボタンをクリックし、共有するサービスを選択するか、サービス自体の変数タブにアクセスして「共有変数」をクリックします。

サービスに共有変数を追加すると、サービスに参照変数が作成されます。

参照変数

参照変数は、他のサービス、共有変数、または同じサービスの変数でさえも参照して定義される変数です。

参照変数を使用する場合、Railway提供の変数にもアクセスできます。

参照変数を定義するときは、Railwayのテンプレート構文が使用されます。

共有変数の参照

共有変数を参照するには、次の構文を使用します。

  • ${{ shared.VARIABLE_KEY }}

  • プロジェクトに API_KEY という名前の共有変数が定義されており、APIキーをサービスで利用できるようにする必要があります。サービスの変数タブに移動し、次の値を持つ変数を追加します。
    • API_KEY=${{shared.API_KEY}}

別のサービスの変数を参照する

別のサービスの変数を参照するには、次の構文を使用します。

  • ${{SERVICE_NAME.VAR}}

  • データベースサービスに DATABASE_URL という変数が設定されており、データベースへの接続文字列が含まれています。データベースサービス名は Clickhouse です。
  • この接続文字列をプロジェクトの別のサービスで利用できるようにする必要があります。接続文字列が必要なサービスの変数に移動し、次の値を持つ変数を追加します。
    • DATABASE_URL=${{ Clickhouse.DATABASE_URL }}
  • フロントエンドサービスはバックエンドにリクエストを送信する必要があります。フロントエンドコードでバックエンドURLをハードコーディングしたくありません。フロントエンドサービス設定に移動し、バックエンドURLのRailway提供変数を追加します。
    • API_URL=https://${{ backend.RAILWAY_PUBLIC_DOMAIN }}

同じサービスの変数を参照する

同じサービスの変数を参照するには、次の構文を使用します。

  • ${{ VARIABLE_NAME }}

  • サービスにAPIエンドポイントを構築するために必要な変数(BASE_URLAUTH_PATH)が既に定義されており、それらを組み合わせて単一の変数を作成したいとします。サービス変数に移動し、同じサービスの他の変数を参照する新しい変数を追加します。
    • AUTH_ENDPOINT=https://${{ BASE_URL }}/${{ AUTH_PATH }}

オートコンプリートドロップダウン

Railwayダッシュボードは、参照変数の作成に役立つように、名前と値の両方のフィールドにオートコンプリートドロップダウンを提供します。

シールされた変数

Railwayは、セキュリティを強化するために変数値のシール機能を提供します。変数がシールされると、その値はビルドとデプロイメントに提供されますが、UIには表示されず、APIを介して取得することもできません。

変数のシール

既存の変数をシールするには、変数の右側にある3つの点のメニューをクリックし、「シール」オプションを選択します。

シールされた変数の更新

シールされた変数は、通常の変数と同様に3つの点のメニューの編集オプションをクリックすることで更新できますが、Raw Editorを介して更新することはできません。

注意事項

シールされた変数はセキュリティ第一の機能であり、いくつかの制約があります。

  • シールされた変数はシール解除できません。
  • シールされた変数値は、CLIを介して railway variables または railway run を使用しても提供されません。
  • PR環境の作成時にシールされた変数はコピーされません。
  • 環境の複製時にシールされた変数はコピーされません。
  • サービスの複製時にシールされた変数はコピーされません。
  • 環境の変更を同期する際、シールされた変数は差分の一部として表示されません。
  • シールされた変数は外部統合と同期されません。

Railway提供の変数

Railwayは、開発業務を支援するために多くの変数を提供しています。一般的に使用される変数には、次のものがあります。

  • RAILWAY_PUBLIC_DOMAIN
  • RAILWAY_PRIVATE_DOMAIN
  • RAILWAY_TCP_PROXY_PORT

完全なリストについては、変数リファレンスページを確認してください。

複数行の変数

変数は複数行にまたがることができます。変数値入力フィールドで Control + Enter(Macでは Cmd + Enter)を押して改行を追加するか、Raw Editorで改行を入力するだけです。

サービスでの変数の使用

変数は、ランタイム時に環境変数として利用できます。アプリケーションで使用するには、言語に適したインターフェイスを使用して環境変数を取得するだけです。

たとえば、nodeアプリでは -

process.env.VARIABLE_NAME;

ローカル開発

Railway CLIを使用すると、Railwayプロジェクトで構成された環境変数を使用してローカルでコードを実行できます。

  • Railway CLIがインストールされ、プロジェクトにリンクされていることを確認します
  • ターミナルで、railway run <run command> を実行します -> 例:railway run npm run dev

CLIの使用に関する詳細については、CLIガイドを確認してください。

Dockerfileでの変数の使用

Dockerfileで変数を使用する方法については、Dockerfileガイドを参照してください。

Herokuから変数をインポートする

サービス変数ページのコマンドパレットを使用して、既存のHerokuアプリから変数をインポートできます。Herokuアカウントを接続した後、Herokuアプリのいずれかを選択すると、構成変数が現在のサービスと環境に追加されます。

Dopplerを使用したシークレット管理

Dopplerの友人たちは、DopplerのシークレットをRailwayのプロジェクトに簡単に同期できる統合を維持しています。

Doppler Docs統合で、DopplerをRailwayで使用する方法についての説明を入手できます。

Railwayはこちら (←このリンクから登録すると20ドル分のクレジットがもらえます)

Read more

リアルタイム投票アプリ5選【ライブ配信やイベントで】

リアルタイム投票アプリ5選【ライブ配信やイベントで】

ウェビナーやセミナー、社内研修を実施する際、「参加者が受け身になってしまう」「質問がなかなか出てこない」といった課題を感じたことはないでしょうか。 オンラインでの情報発信が当たり前になった今、一方的な配信だけでは参加者の満足度を高めることが難しくなっています。そこで注目されているのが、リアルタイムで参加者の意見を集約し、その場で結果を共有できる投票・質問ツールです。 本記事では、ライブ配信やイベント、研修などで活用できるリアルタイム投票アプリを5つ厳選してご紹介します。 リアルタイム投票でつながる参加者とイベント リアルタイム投票やQ&A機能を使うと、視聴者や参加者の意見を即座に集計・表示できます。講義や会議の進行を妨げず、参加者全員が自分の意見を簡単に表明できる仕組みです。 従来の挙手による質疑応答では、発言しづらいと感じる参加者も少なくありません。特にオンラインイベントでは、カメラがオンになっていることへの抵抗感や、大人数の前で質問することへのハードルが存在します。 しかし、スマートフォンから匿名で投票やコメントができる仕組みがあれば、参加者は気軽に自分の意見を伝えら

By 阿部 隼也
質問受付ツールの選び方とおすすめ5選を紹介

質問受付ツールの選び方とおすすめ5選を紹介

セミナーや講演会、社内研修などで「質問はありませんか?」と投げかけても、なかなか手が挙がらない経験はないでしょうか。参加者に有益な情報を提供しても、疑問や意見が共有されないまま終わってしまうのは、主催者にとっても参加者にとっても大きな機会損失です。 こうした課題を解決するために注目されているのが「質問受付ツール」です。参加者がスマートフォンから匿名で質問を投稿できるため、発言への抵抗感が下がり、活発なコミュニケーションが生まれます。 本記事では、質問受付ツールの基本機能から、実際に役立つおすすめツール5選、そして選定時に押さえておきたいポイントまで、実務に活かせる情報をまとめて解説します。 質問受付の現場課題 イベントやセミナーの運営で最も頭を悩ませる問題の一つが、参加者からの質問をいかに引き出すかという点です。質問タイムを設けても、会場がシーンと静まり返ってしまい、仕方なく「それでは時間になりましたので」と締めくくる光景は珍しくありません。 この背景には、日本特有の文化的要因も関係しています。大勢の前で発言することへの恥ずかしさ、自分の質問が的外れではないかという不安、他

By 阿部 隼也
オンラインセミナーアプリの選び方。参加者エンゲージメントを高めるポイント

オンラインセミナーアプリの選び方。参加者エンゲージメントを高めるポイント

近年、オンラインセミナーの活用が急速に広がっています。会場のコストや移動時間を気にすることなく、全国・世界中から参加者を集められる点は大きな魅力です。 しかし、せっかく開催しても 「参加者が途中で離脱してしまう」 「ただ見ているだけで反応が薄い」 といった課題を抱えている企業も少なくありません。 本記事では、参加者のエンゲージメントを高め、成果につながるオンラインセミナーアプリの選び方と、実務に役立つ具体的なポイントを解説します。 参加者とのつながりを生むオンライン環境の設計 オンラインセミナーにおける最大の課題は、画面越しの距離感です。会場で直接顔を合わせる機会がないからこそ、参加者が「ただ見ているだけ」にならないような仕組みが求められます。適切なツールと機能選びが、参加者のエンゲージメントを左右します。 従来のオフラインセミナーでは、会場の雰囲気や参加者同士の反応が自然と生まれましたが、オンラインではそうした「空気感」が伝わりにくくなります。だからこそ、双方向のコミュニケーション機能や、参加者の行動データを活用した設計が重要になるのです。 エンゲージメントを高

By 阿部 隼也
参加者の質問を効率的に管理!ZoomウェビナーQ&A機能の使い方を徹底解説

参加者の質問を効率的に管理!ZoomウェビナーQ&A機能の使い方を徹底解説

オンラインでのセミナーやイベントが日常化する中で、Zoomウェビナーを活用している企業が増えています。しかし、ウェビナーの開催で意外と頭を悩ませるのが「参加者からの質問をどう管理するか」という点ではないでしょうか。 セミナーが盛り上がり、次々と質問が寄せられるのは嬉しいことです。一方で、質問が多すぎて整理しきれない、どの質問に優先的に答えるべきか判断に迷う、といった課題も生じます。こうした問題を解決するために役立つのが、ZoomウェビナーのQ&A機能です。 本記事では、ZoomウェビナーのQ&A機能の基本的な使い方から、参加者の質問を効率的に管理する実践的なテクニックまで、詳しく解説していきます。 ZoomウェビナーのQ&A機能とは ZoomウェビナーのQ&A機能は、ウェビナー開催中に参加者が質問を投稿し、主催者側が回答を行うための専用機能です。この機能を使うことで、質問と回答がスレッド形式で整理され、効率的なコミュニケーションが可能になります。 チャット機能との違い Zoomには「チャット機能」もあるため、「Q&A機能とチャット機能の違いは何か」と疑問に思う方も多いで

By 阿部 隼也