変数とデータ

環境変数(Bot 単位の設定値・秘密の保管庫)

「環境変数」は、API キー・トークン・通知先のチャンネル ID・連携先 URL など、Bot を動かすうえで使う大切な値を 1 か所にまとめて、安全に保管しておくための画面です。Bot ごとに用意され、登録した値はカスタムコマンドの中から {env.NAME} の形で読み出して使えます。

環境変数とは

Bot を運用していると、次のような「大切な値」「よく使う値」を扱う場面が出てきます。

  • 外部サービスの API キートークン などの秘密情報
  • 通知を送りたい チャンネルの ID、付与・判定したい ロールの ID
  • 連携先の URL、機能のオン・オフを表す フラグ など

これらをコマンドの中に直接書き込むと、値を変えるたびにあちこち修正が必要になり、秘密情報が画面に丸見えになる心配もあります。「環境変数」を使うと、こうした値に分かりやすい名前を付けて 1 か所で管理でき、秘密情報は暗号化して安全に保管できます。

画面の開き方

ダッシュボードで Bot を選び、左メニューの「環境変数」を開きます。設定した内容はその Bot にだけ適用され、ほかの Bot には影響しません。

保護レベル: シークレット と 公開

環境変数は、保存方法を シークレット公開 の 2 種類から選べます。新規追加時の初期値はシークレット(オン)です。

保護レベル値の保存方法一覧での表示値のコピー
シークレット(初期値)サーバー側で暗号化(AES-256-GCM)して保存されます。保存後は一切再表示できません。値の代わりに常にマスクが表示されます(目のアイコンはありません)。できません(メニューの「コピー」は無効)
公開そのままの文字列で保存されます。値がそのまま表示され、目のアイコンで表示・非表示を切り替えられます。できます

シークレットに指定して保存した値は 二度と再表示できません。後で値を確認する手段はないため、必要な場合は保存前に手元に控えてください。値を取り戻したい場合は、変数を削除して作り直すことになります。

後からシークレットへ昇格する(片道)

公開で保存した値も、1 行ごとの「…」メニューの「シークレット化」であとからシークレットへ切り替えられます。

シークレット化は 片道の操作 です。一度シークレットにすると、元の公開状態に戻すことはできません。値を取り戻したい場合は、変数を削除して作り直してください。

キー名のルール

変数名(キー)には次のルールがあります。

  • 1 文字目は 英字(azAZ)。
  • 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}(スコープに応じて全体/サーバー/ユーザー)

次のステップ / 関連ページ

最終更新:

目次