Deno 2.1 から --allow-env
のパラメーターの指定に、部分的にワイルドカードを使えるようになりました。
特定のサービスに関係する環境変数は特定の接頭辞 (prefix) を持っていることが多いです。
例えば AWS の各種サービスを使う場合は AWS_ACCESS_KEY_ID
, AWS_SECRET_ACCESS_KEY
, AWS_REGION
といった環境変数を利用します (接頭辞
AWS_
が共通)
例えば Supabase を使う場合は SUPABASE_URL
, SUPABASE_ANON_KEY
, SUPABASE_SERVICE_ROLE_KEY
, SUPABASE_DB_URL
のような環境変数を利用します (接頭辞 SUPABASE_
が共通)。
従来だと、このような環境変数アクセスをパラメータで絞って許可したい場合:
deno --allow-env=AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,AWS_REGION script.ts
deno --allow-env=SUPABASE_URL,SUPABASE_ANON_KEY,SUPABASE_SERVICE_ROLE_KEY,SUPABASE_DB_URL script2.ts
のように全ての変数名をカンマ区切りで指定する必要がありました。
Deno 2.1 からは、環境変数の末尾に *
を使ってパターンでの指定が出来るようになりました。パターンを使って上の例を書き直すと:
deno --allow-env="AWS_*" script.ts
deno --allow-env="SUPABASE_*" script2.ts
以上のように、すっきりと記述することが出来ます。