環境変数(Bot 単位の設定値・秘密の保管庫)
「環境変数」は、API キー・トークン・通知先のチャンネル ID・連携先 URL など、Bot を動かすうえで使う大切な値を 1 か所にまとめて、安全に保管しておくための画面です。Bot ごとに用意され、登録した値はカスタムコマンドの中から {env.NAME} の形で読み出して使えます。
環境変数とは
Bot を運用していると、次のような「大切な値」「よく使う値」を扱う場面が出てきます。
- 外部サービスの API キー や トークン などの秘密情報
- 通知を送りたい チャンネルの ID、付与・判定したい ロールの ID
- 連携先の URL、機能のオン・オフを表す フラグ など
これらをコマンドの中に直接書き込むと、値を変えるたびにあちこち修正が必要になり、秘密情報が画面に丸見えになる心配もあります。「環境変数」を使うと、こうした値に分かりやすい名前を付けて 1 か所で管理でき、秘密情報は暗号化して安全に保管できます。
画面の開き方
ダッシュボードで Bot を選び、左メニューの「環境変数」を開きます。設定した内容はその Bot にだけ適用され、ほかの Bot には影響しません。
保護レベル: シークレット と 公開
環境変数は、保存方法を シークレット と 公開 の 2 種類から選べます。新規追加時の初期値はシークレット(オン)です。
| 保護レベル | 値の保存方法 | 一覧での表示 | 値のコピー |
|---|---|---|---|
| シークレット(初期値) | サーバー側で暗号化(AES-256-GCM)して保存されます。保存後は一切再表示できません。 | 値の代わりに常にマスクが表示されます(目のアイコンはありません)。 | できません(メニューの「コピー」は無効) |
| 公開 | そのままの文字列で保存されます。 | 値がそのまま表示され、目のアイコンで表示・非表示を切り替えられます。 | できます |
シークレットに指定して保存した値は 二度と再表示できません。後で値を確認する手段はないため、必要な場合は保存前に手元に控えてください。値を取り戻したい場合は、変数を削除して作り直すことになります。
後からシークレットへ昇格する(片道)
公開で保存した値も、1 行ごとの「…」メニューの「シークレット化」であとからシークレットへ切り替えられます。
シークレット化は 片道の操作 です。一度シークレットにすると、元の公開状態に戻すことはできません。値を取り戻したい場合は、変数を削除して作り直してください。
キー名のルール
変数名(キー)には次のルールがあります。
- 1 文字目は 英字(
a–z、A–Z)。 - 2 文字目以降は 英数字 または アンダースコア(
_)。 - 大文字・小文字はどちらも使えます(自動で大文字には変換されません)。
- 長さは 64 文字以内。
- 同じ Bot 内で同名の変数は作れません。
envという名前(大文字・小文字どちらの綴りも)は予約語のため使用できません。
たとえば STRIPE_API_KEY でも stripeApiKey でも、好みの書き方で大丈夫です(参照する側のキー名と完全一致していれば動きます)。
変数を追加する
「環境変数を追加」をクリックする
画面右上の「環境変数を追加」ボタンを押すと、追加用のウィンドウが開きます。
「キー名」と「値」を入力する
キー名は キー名のルール に沿って入力します。
保護レベル(シークレット)を選んで保存する
「シークレット」スイッチで、その値をシークレットとして保存するか、公開で保存するかを選びます。初期値はシークレット(オン) です。
一覧画面でできること
検索・絞り込み・並び替え
ツールバーでは「変数名で検索」による絞り込み、表示種別(「すべて」「シークレット」「公開」)での絞り込み、並び替え(「更新が新しい順」「名前順」)ができます。
1 行ごとのメニュー(編集・更新・コピー・履歴・削除)
各行の右側にある「…」(メニュー)を開くと、次の操作ができます。
| メニュー項目 | 内容 |
|---|---|
| 「編集」 | 変数の保護レベル(公開→シークレットへの昇格を含む)などをまとめて編集します。シークレット変数の値を変更する場合、以前の値は破棄されて新しい値で再暗号化されます。 |
| 「更新」 | 値だけを差し替えます。シークレットの場合、以前の値は破棄され復元できません。 |
| 「コピー」 | 値をクリップボードにコピーします。シークレットでは使えません(項目自体が無効になります)。 |
| 「履歴をみる」 | その変数の操作履歴(作成・値の更新・シークレット化・削除・参照)をタイムラインで表示します。 |
| 「削除」 | 変数を削除します。変数名のタイプ確認による二重チェックが入ります。 |
値の表示・非表示(公開のみ)
公開で保存した変数は、目のアイコンで値の表示・非表示を切り替えられます。シークレット変数には目のアイコンは表示されず、常にマスクされたままです。
履歴(操作のタイムライン)
「履歴をみる」では、その変数に対する「作成」「値を更新」「シークレット化」「削除」「参照」が時系列で表示されます。「参照」は Bot 側で読み出しが行われた最新の記録です。
カスタムコマンドから参照する: {env.NAME}
登録した環境変数は、コマンドビルダーの入力欄から {env.NAME}(NAME は登録した変数名)の形で差し込んで使えます。たとえば STRIPE_API_KEY という名前で登録しておけば、API リクエストノードのヘッダー値などに {env.STRIPE_API_KEY} と書くだけで、その値に置き換わります。
- 中括弧
{}で囲み、env.を付けてから変数名を続けます(例:{env.WEBHOOK_URL})。 BSVAR_で始まる永続変数や{User.name}のような組み込み変数と並ぶ、独立した変数名前空間です(envは予約語)。- シークレット変数も、参照式は公開変数と同じ書き方です。実行時に Bot 側で復号して使われます。
- 環境変数を追加・編集・削除すると、コマンドビルダーの変数ピッカー(
+ 変数)の補完候補もその場で更新されます。
詳しい変数の書き方は 変数と式の使い方 を参照してください。
永続変数(BSVAR_) との使い分け
似た仕組みに「永続変数」(BSVAR_ で始まる変数)があります。役割が違うので、用途で使い分けてください。
環境変数 ({env.NAME}) | 永続変数 ({BSVAR_name}) | |
|---|---|---|
| 主な用途 | 外部サービスへの接続情報・秘密の値・サーバー/チャンネル ID などの設定値 | ポイント・スコア・サーバー設定など、コマンドの実行を通じて読み書きする値 |
| 値を変える人 | 主に管理者(ダッシュボード上で編集) | コマンドの実行を通じて Bot が読み書き |
| 保護 | シークレット指定で暗号化保存できる | 暗号化されず、ダッシュボードで値が見える前提 |
| 参照のしかた | {env.NAME} | {BSVAR_name}(スコープに応じて全体/サーバー/ユーザー) |
次のステップ / 関連ページ
最終更新: