MLOps Academy · レッスン

環境変数で設定を渡す

モデルのパスやシークレットをイメージの外で管理します。

レッスン 3/413 ステップ

「環境変数で設定を渡す」は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 BaseSettings

1つのイメージを複数の環境で使う

メリットは、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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. モデルAPI用のDockerfileを書く
  2. マルチステージビルドでイメージを軽量化する
  3. 環境変数で設定を渡す
  4. コンテナをローカルで実行・テストする
← MLOps Academyに戻る