環境変数で設定を渡す
モデルのパスやシークレットをイメージの外で管理します。
「環境変数で設定を渡す」はCoddyKit上の無料MLOps Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはMLOps Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 MLOps Academyコースには全4レッスンが含まれています。
設定を埋め込まない
モデルのパスやAPIキーをハードコードすると、永続的にイメージへ埋め込まれます。代わりに、実行時に環境変数として渡してください。
Pythonで環境変数を読み取る
os.getenvを使って、適切なデフォルト値を設定しながら変数を読み取ります。これにより、コードを変更しなくても環境ごとに動作を切り替えられます。
import os
model_path = os.getenv("MODEL_PATH", "/models/latest.pkl")イメージ内のデフォルト値
DockerfileのENV命令は、イメージに組み込まれたデフォルト値を設定します。頻繁には変わらない、秘密情報ではない設定に便利です。
ENV MODEL_PATH=/models/latest.pkl実行時に上書きする
docker runで-eを指定すると、任意の値を上書きできます。同じイメージを、異なる設定でステージング環境や本番環境に利用できます。
docker run -e MODEL_PATH=/models/v2.pkl model-apiファイルで変数をまとめる
複数の変数をファイルに整理して保存し、--env-fileで読み込みます。実行コマンドを短く、読みやすく保てます。
docker run --env-file prod.env model-api秘密情報をコミットしない
秘密情報のファイルはGitにもイメージにも含めないでください。.envを.gitignoreと.dockerignoreに追加し、漏えいを防ぎます。
秘密情報は外部で管理する
データベースのパスワードなどの本物のsecretsは、vaultやプラットフォームのsecret managerから取得し、実行時だけ注入してください。
起動時に検証する
アプリケーションの起動時に必須の変数を確認し、欠けている場合は明確にエラーを発生させて停止します。何も知らせずに誤った予測をするより、明確にクラッシュするほうが適切です。
if not os.getenv("MODEL_PATH"):
raise RuntimeError("MODEL_PATH is required")Twelve-Factorの設定
twelve-factorの原則では、設定を環境変数に保存します。これにより、1つのイメージをあらゆるデプロイ先で利用できます。
Pydantic Settings
pydantic-settingsのようなツールは、環境変数を型付きの設定オブジェクトに読み込み、型とデフォルト値を1か所で検証します。
from pydantic_settings import BaseSettings1つのイメージを複数の環境で使う
メリットは、onceだけビルドし、注入する変数だけを変えて、開発、ステージング、本番でまったく同じイメージを実行できることです。
確認問題
設定をどこに置くべきか確認しましょう。
まとめ
os.getenvで設定を読み取り、ENVでデフォルト値を設定し、-eと--env-fileで上書きして、秘密情報を外部に保管しました。移植可能な1つのイメージです。✅
AI チューターと学ぶ Python — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 30
- レッスン
- 120
よくある質問
「環境変数で設定を渡す」レッスンは無料ですか?
はい。「環境変数で設定を渡す」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、MLOps Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 MLOps Academyコースには全4レッスンが含まれています。
「環境変数で設定を渡す」で何を学びますか?
モデルのパスやシークレットをイメージの外で管理します。 ブラウザで直接実行するハンズオンコードでMLOps Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
MLOps Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのMLOps Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「環境変数で設定を渡す」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このMLOps Academyレッスンでコードを書いて実行できますか?
はい。すべてのMLOps Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。