Azure Functions を Python で開発していると、local.settings.json や __pycache__、仮想環境など「Git にも Azure にも含めたくないファイル」がたくさん出てきます。
この記事では、.gitignore と .funcignore の違いと、それぞれに書いておくべき代表的なファイル・フォルダを整理してご紹介します。
.gitignore と .funcignore の違い
| ファイル名 | 目的 | 影響範囲 |
|---|---|---|
.gitignore | Git にコミットしない | バージョン管理 |
.funcignore | Azure にデプロイしない | デプロイ対象制御 |
.gitignore に入れるべきファイル
__pycache__/,*.pyc:Python のキャッシュファイル。自動生成されるので管理不要。.env/,venv/:仮想環境フォルダ。環境ごとに異なるため共有しない。.vscode/:個人のエディタ設定。チームで共有しない方が無難。*.log,*.csv,*.xlsx:実行結果や一時ファイル。再生成可能なため除外。local.settings.json:機密情報を含むローカル設定ファイル。絶対にコミットしないように!.pytest_cache/,htmlcov/:テストのキャッシュやカバレッジ結果。不要。
.funcignore に入れるべきファイル
local.settings.json:Azure にアップロードしても使われない。セキュリティ上も除外がベスト。tests/,*.test.py:本番環境に不要なテストコード。デプロイ対象から外す。.env/,venv/:仮想環境はローカル専用。Azure では使わない。__pycache__/,*.pyc:Python のキャッシュ。デプロイに不要。*.log,*.md,docs/:ログやドキュメント類。実行に関係なければ除外。
local.settings.json は両方に書こう!
local.settings.json はローカル開発専用の設定ファイルです。
.gitignoreに書く → Git にコミットしない(セキュリティ対策).funcignoreに書く → Azure にアップロードしない(不要なファイルを除外)
この2つに書いておくことで、誤って機密情報を公開したり、不要なファイルをデプロイしてしまうリスクを防げます。
おすすめテンプレート
.gitignore
__pycache__/
*.py[cod]
.env/
venv/
.vscode/
*.log
*.csv
*.xlsx
local.settings.json
.pytest_cache/
htmlcov/.funcignore
local.settings.json
.env/
venv/
__pycache__/
*.py[cod]
tests/
*.test.py
*.log
*.md
docs/まとめ
.gitignore は Git にコミットしないため、.funcignore は Azure にデプロイしないために使います。
どちらも目的が違うので、併用が基本! 特に local.settings.json は両方に書いておくのが安全です。
プロジェクトの成長とともに、ignore ルールも見直して、セキュリティと効率の良い開発を両立させましょう!

コメント