lizard run

プロジェクトシークレットとサービスシークレットを注入した状態で、ローカルでコマンドを実行します。

run が注入するもの

lizard run はプロジェクトのシークレットを読み込み、その上にサービスのシークレットを重ねて、それらを環境に入れた状態で手元のマシンでコマンドを実行します。

  • アプリサービスの場合は、保存されている値を注入します。${{postgres.DATABASE_URL}} のような参照は、解決された値ではなく、その文字列のまま渡されます。PORT や LIZARD_* などのプラットフォーム変数は注入されません。
  • アドオン(--service postgres、--service redis、--service s3)の場合は、DATABASE_URL などのアドオンの実際の接続値を注入します。

そのため、マイグレーションやデータベースクライアントをローカルで実行するときは、--service にはそれを参照するアプリではなく、アドオンを指定してください。

実行中のサービスへの lizard ssh は無効になっています(API は 403 “Shell access to services is disabled” を返します)。実行中のアプリが受け取る内容を確認するには、次を使います:

確認する内容コマンド
空の参照lizard logs --build --service api(ビルドログは、空の値に解決されたすべての ${{…}} 参照について警告します)
保存されている値lizard secrets list --service api --show
アドオンの実際の接続値lizard run --service postgres -- printenv DATABASE_URL

使い方

lizard run [flags] -- <command>

フラグ

フラグ説明
-s, --service <name>環境変数を注入する対象のサービス(既定はリンク済みのサービス)
--no-serviceサービス環境変数を注入せず、プロジェクトシークレットのみを注入する
-p, --project <id>プロジェクト(既定はリンク済みのプロジェクト)

例

Managed Postgres に対してマイグレーションを実行する

lizard run --service postgres -- node scripts/migrate.js

注入された環境変数を表示する

lizard run --service postgres -- printenv DATABASE_URL

アプリの保存済みシークレットを使ってローカルツールを実行する

lizard run --service api -- node scripts/report.js

関連項目

  • lizard ssh:サービスへのシェルアクセスが無効になっている理由と、その代わりに使うもの
  • lizard secrets:run が注入する値の一覧表示と設定
  • 変数:プロジェクト変数とサービス変数の定義方法および参照方法
  • Pythonアプリホスティング:デプロイ済みデータベースに対して manage.py やその他のフレームワークツールを実行する方法

更新日