メインコンテンツまでスキップ

Terraform が提供する環境変数仕様

Terraform がインフラ構築時に自動的に Container Apps に注入する環境変数の技術仕様です。

対象者: インフラチーム、アプリ開発チーム

重要: これらの環境変数は Terraform が自動的に設定するため、アプリケーション側で設定する必要はありません。


環境変数一覧

共通環境変数

すべてのテンプレートで提供される環境変数です。

環境変数名説明対象コンテナ注入方法
ENVIRONMENT環境名dev, prd全コンテナTerraform が自動注入
GX_SHARED_PRIVATE_KEY環境変数復号化用の共有秘密鍵(必須)(hex 形式の秘密鍵)全コンテナCLI が自動注入(必須環境変数)

重要: GX_SHARED_PRIVATE_KEY は、すべてのテンプレートで必ず自動的に注入されます。この環境変数は、ローカルの環境変数から取得され、Terraform 生成時に frontend と backend の両方のコンテナに自動的に追加されます。.env ファイルに明示的に記載する必要はありません。


テンプレート別環境変数

frontend-backend テンプレート

Frontend Container App

環境変数名説明注入条件
BACKEND_URLBackend の内部 URLhttps://ca-mycompany-backend-dev.internal...io必須
NEXT_PUBLIC_API_URLBackend の API エンドポイントhttps://ca-mycompany-backend-dev.japaneast...io必須
AUTH0_BASE_URL認証用ベース URLhttps://myapp.comsite_url 設定時
NEXTAUTH_URLNextAuth 用 URLhttps://myapp.comsite_url 設定時
NEXT_PUBLIC_PROXY_URLプロキシエンドポイントhttps://myapp.com/api/proxysite_url 設定時
ENVIRONMENT環境名dev / prd必須

Storage 有効時(enable_storage = true:

環境変数名説明
AZURE_STORAGE_ACCOUNT_NAMEStorage Account 名stmycompanydevfs
AZURE_STORAGE_ACCOUNT_KEYStorage Account キー(自動生成)
AZURE_STORAGE_CONNECTION_STRINGStorage 接続文字列DefaultEndpointsProtocol=https;...
AZURE_STORAGE_BLOB_ENDPOINTBlob エンドポイントhttps://stmycompanydevfs.blob.core.windows.net/
AZURE_STORAGE_CONTAINER_NAMEBlob コンテナ名frontend-blob

Backend Container App

環境変数名説明
DATABASE_URLMySQL 接続 URL(DB 名含む、runtime により形式変更)Node: mysql://admin:pass@host:3306/db
Python: mysql+pymysql://admin:pass@host:3306/db
DB_URLSQLAlchemy 用 URL(DB 名なし、pj-shared-fastapi 用)mysql+pymysql://admin:pass@mysql-mycompany-dev...com:3306
MYSQL_HOSTMySQL ホスト名mysql-mycompany-dev.mysql.database.azure.com
MYSQL_PORTMySQL ポート3306
MYSQL_USERMySQL ユーザー名admin
MYSQL_PASSWORDMySQL パスワード(設定値)
MYSQL_DATABASEMySQL データベース名mycompany_dev_db
ENVIRONMENT環境名dev / prd

Storage 有効時(enable_storage = true:

環境変数名説明
AZURE_STORAGE_ACCOUNT_NAMEStorage Account 名stmycompanydevfs
AZURE_STORAGE_ACCOUNT_KEYStorage Account キー(自動生成)
AZURE_STORAGE_CONNECTION_STRINGStorage 接続文字列DefaultEndpointsProtocol=https;...
AZURE_STORAGE_BLOB_ENDPOINTBlob エンドポイントhttps://stmycompanydevfs.blob.core.windows.net/
AZURE_STORAGE_CONTAINER_NAMEBlob コンテナ名backend-blob

注意:

  • DATABASE_URLruntime の設定により形式が変わります:
    • runtime = "node" (デフォルト): mysql:// 形式
    • runtime = "python": mysql+pymysql:// 形式(SQLAlchemy 互換)
  • DB_URL は SQLAlchemy/PyMySQL 用の接続 URL で、データベース名を含まずホスト:ポートまでです。GenerativeX/pj-shared-fastapi を利用する場合に使用します

monolith テンプレート

Frontend (Monolith) Container App

環境変数名説明注入条件
DATABASE_URLMySQL 接続 URL(DB 名含む)mysql://admin:pass@mysql-mycompany-dev.mysql.database.../db必須
DB_URLSQLAlchemy 用 URL(DB 名なし、pj-shared-fastapi 用)mysql+pymysql://admin:pass@mysql-mycompany-dev...com:3306必須
MYSQL_HOSTMySQL ホスト名mysql-mycompany-dev.mysql.database.azure.com必須
MYSQL_PORTMySQL ポート3306必須
MYSQL_USERMySQL ユーザー名admin必須
MYSQL_PASSWORDMySQL パスワード(設定値)必須
MYSQL_DATABASEMySQL データベース名mycompany_dev_db必須
AUTH0_BASE_URL認証用ベース URLhttps://myapp.comsite_url 設定時
NEXTAUTH_URLNextAuth 用 URLhttps://myapp.comsite_url 設定時
NEXT_PUBLIC_PROXY_URLプロキシエンド URLhttps://myapp.com/api/proxysite_url 設定時
ENVIRONMENT環境名dev / prd必須

Storage 有効時(enable_storage = true:

環境変数名説明
AZURE_STORAGE_ACCOUNT_NAMEStorage Account 名stmycompanydevfs
AZURE_STORAGE_ACCOUNT_KEYStorage Account キー(自動生成)
AZURE_STORAGE_CONNECTION_STRINGStorage 接続文字列DefaultEndpointsProtocol=https;...
AZURE_STORAGE_BLOB_ENDPOINTBlob エンドポイントhttps://stmycompanydevfs.blob.core.windows.net/
AZURE_STORAGE_CONTAINER_NAMEBlob コンテナ名app-blob

オプションコンポーネント

Redis コンポーネント有効時

config.toml で Redis を有効化した場合、以下の環境変数が自動的に注入されます:

環境変数名説明対象
REDIS_URLRedis 接続文字列rediss://default:password@hostname:6380/0Frontend & Backend
REDIS_HOSTRedis ホストredis-mycompany-dev.redis.cache.windows.netFrontend & Backend
REDIS_PORTRedis ポート(非 SSL)6380Frontend & Backend
REDIS_SSL_PORTRedis ポート(SSL)6380Frontend & Backend
REDIS_PASSWORDRedis パスワード(自動生成)Frontend & Backend

注意:

  • REDIS_URLrediss://default:password@hostname:6380/0 形式の接続文字列で、SSL 接続が有効になっています
  • 末尾の /0 はデフォルトのデータベース番号を示します
  • アプリケーションコードでは REDIS_URL を使用することを推奨します

有効化方法:

["environments.dev.redis"]
enabled = true
sku_name = "Basic"
family = "C"
capacity = 0

重要事項

自動上書き

以下の環境変数は、.env ファイルに記載しても Terraform が自動的に上書きします:

  • すべてのデータベース関連環境変数(DATABASE_URL, MYSQL_* など)
  • BACKEND_URL, NEXT_PUBLIC_API_URL
  • Storage 関連環境変数(enable_storage = true の場合)
  • Redis 関連環境変数(Redis 有効時)
  • Site URL 関連環境変数(config.tomlsite_url 設定時)

アプリケーション側での扱い

アプリケーション側では、これらの環境変数を以下のように取得できます:

Node.js / Next.js:

const databaseUrl = process.env.DATABASE_URL;
const backendUrl = process.env.BACKEND_URL;

Python / FastAPI:

import os

database_url = os.getenv("DATABASE_URL")
mysql_host = os.getenv("MYSQL_HOST")

関連ドキュメント

インフラチーム向け

アプリ開発チーム向け

共通