0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【備忘録】.envファイルってなに?

Last updated at Posted at 2025-01-20

1. .env ファイルとは

.envファイルは、環境変数を定義するための設定ファイルです。開発環境やステージング、本番環境など、各種環境で異なる設定を簡単に管理するために使用されます。通常、以下のようにキーバリュー形式で定義されます。

KEY=value
DATABASE_URL=mysql://user:pass@localhost:3306/mydb
SECRET_KEY=your_secret_key

2. .env ファイルの用途

.envファイルは、アプリケーションの設定や機密情報(APIキー、データベース接続情報など)を外部から管理するために利用されます。これにより、ソースコードを変更せずに環境設定を切り替えることができ、セキュリティリスクを軽減できます。

主な用途

  • APIキーやトークンの管理:APIキーや認証トークンなどの機密情報をソースコードから分離し、外部に保存します。
  • 環境依存の設定:ローカル、ステージング、本番など異なる環境ごとに設定を切り替えます。
  • デプロイ時の設定:環境変数を使って、デプロイ先の環境設定を簡単に適用します。

3. 環境変数の設定方法

3.1 ローカル環境での使用

ローカルで開発する場合、.envファイルをプロジェクトのルートディレクトリに置きます。アプリケーションがこのファイルを読み込んで、設定された環境変数を使用します。

例:

# .envファイル
DATABASE_URL=mysql://user:password@localhost:3306/mydb
SECRET_KEY=supersecretkey

3.2 本番環境での使用

本番環境では、.envファイルを使用することは推奨されません。代わりに、クラウドプロバイダやCI/CDツールで環境変数を管理します。

4. .env ファイルの読み込み

.envファイルは、一般的には専用のライブラリを使ってアプリケーションに読み込ませます。

4.1 Pythonでの読み込み

Pythonでは、python-dotenvライブラリを使用して.envファイルを読み込みます。

from dotenv import load_dotenv
import os

# .envファイルを読み込む
load_dotenv()

# 環境変数の取得
db_url = os.getenv('DATABASE_URL')
secret_key = os.getenv('SECRET_KEY')

4.2 Azure Functionsでの使用

Azure Functionsでは、ローカル開発時に.envファイルを読み込むためにpython-dotenvを使うことが推奨されますが、本番環境ではAzure PortalやARMテンプレートで環境変数を設定します。

from dotenv import load_dotenv
import os

# 環境変数を読み込む
load_dotenv()

5. 本番環境での環境変数設定

本番環境での環境変数は、.envファイルを使わずにAzure PortalやCI/CDツールを利用して管理します。

5.1 Azure Portalの「Application Settings」から設定

Azure Functionsの本番環境で環境変数を設定する場合、Azure Portalから行います。

手順

  1. Azure Portalにログインし、Function Appを選択。
  2. 左側のメニューから「構成」を選択。
  3. 「アプリケーション設定」のタブで環境変数を追加、編集。

5.2 CI/CDツールでの設定

CI/CDパイプラインを利用して、デプロイ時に環境変数を自動的に設定します。たとえば、Azure DevOpsやGitHub Actionsを使用して、デプロイ先に適用します。

# GitHub Actionsの例
jobs:
  deploy:
    steps:
      - name: Set environment variables
        run: echo "API_KEY=${{ secrets.API_KEY }}"

5.3 ARMテンプレートやBicepを使った設定

Azure Resource Manager (ARM) テンプレートやBicepファイルを使って、環境変数をデプロイ時に設定します。

{
  "type": "Microsoft.Web/sites",
  "apiVersion": "2021-02-01",
  "name": "[variables('functionAppName')]",
  "properties": {
    "siteConfig": {
      "appSettings": [
        {
          "name": "API_KEY",
          "value": "[parameters('apiKey')]"
        }
      ]
    }
  }
}

5.4 Azure App Configurationの利用

Azure App Configurationを使って、環境設定や機密情報を集中管理できます。

主な特徴

  • 環境ごとに設定を分けることができる。
  • バージョニングやキーのローテーションが容易。

6. セキュリティ上の注意点

.envファイルには機密情報が含まれるため、以下の点に注意してください。

  • バージョン管理に含めない.gitignore.envファイルを追加し、リポジトリにプッシュしないようにします。
  • アクセス権の管理:環境変数やAPIキーにアクセスできるユーザーやサービスを適切に制限します。
  • 定期的なローテーション:APIキーやパスワードは定期的に変更し、リスクを最小限に抑えます。

7. トラブルシューティング

  • 環境変数が読み込まれないload_dotenv()が正しく呼び出されているか、.envファイルが適切な場所にあるか確認します。
  • ローカルでは動作するが本番で動作しない:本番環境では、.envファイルを使わず、Azure PortalやCI/CDで環境変数が設定されているか確認します。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?