apphosting.yamlで設定した環境変数をクライアントサイドで取得する方法
2025年02月25日 4:44
Next.jsをFirebase App Hostingにデプロイする際、環境変数を適切に管理することは重要です。特にクライアントサイドで環境変数を利用する場合、セキュリティリスクを考慮しながら適切な設定を行う必要があります。本記事では、apphosting.yaml
で定義した環境変数をNext.jsのクライアントサイドで取得する方法について解説します。
Next.jsでは、環境変数を .env.local
ファイルで管理できます。ただし、クライアントサイドで使用する変数は NEXT_PUBLIC_
を接頭辞として設定する必要があります。
.env.local
の例:これにより、クライアントサイドのコード内で process.env.NEXT_PUBLIC_API_URL
を利用できます。
NEXT_PUBLIC_
を付与した環境変数は、Next.jsのビルド時に公開されるため、クライアントサイドで利用できます。
Firebase App Hostingでは apphosting.yaml
を使って環境変数を定義できます。
apphosting.yaml
の例:APIキーなどの機密情報を含む環境変数は、Google Cloud Secret Managerを使用して管理するのが推奨されます。
apphosting.yaml
の例:apphosting.yaml
に定義した環境変数は process.env
で取得できます。
クライアントサイドで環境変数を利用する際は、以下の点に注意しましょう。
NEXT_PUBLIC_
プレフィックスを付けた変数は誰でも閲覧可能。NEXT_PUBLIC_
を付けず、サーバーサイドで管理。Next.jsアプリで apphosting.yaml
を利用して環境変数を管理する場合、適切なプレフィックス (NEXT_PUBLIC_
) を付けることで、クライアントサイドでも利用できます。ただし、セキュリティリスクを考慮し、機密情報はSecret Managerなどを利用して管理することが推奨されます。
[cv:issue_marketplace_engineer]
Next.jsをFirebase App Hostingにデプロイする際、セキュアに環境変数を管理することは重要です。特にクライアントサイドで環境変数を使用するシナリオでは、セキュリティリスクが高まるため、適切な設定が必要です。本記事では、apphosting.yaml
で設定した環境変数をどのようにクライアントサイドで取得するか、その具体的な手法を解説します。
Next.jsアプリケーションで環境変数を管理する際、.envファイルが一般的に使用されます。このファイルはプロジェクトのルートディレクトリに配置し、アプリケーション全体で使用可能な環境変数を定義するために用います。
クライアントサイドで環境変数を使用する場合、環境変数名のプレフィックスとしてNEXT_PUBLIC_
を付ける必要があります。これにより、Next.jsはこれらの変数をビルド時に公開し、クライアントサイドでの使用を可能にします。
Firebase App Hostingを利用するためには、プロジェクトのルートディレクトリにfirebase.json
とapphosting.yaml
を設定します。apphosting.yaml
で環境変数のリファレンスを設定します。
セキュリティ上の理由から、APIキーや機密性の高い情報はGoogle CloudのSecret Managerに保存する必要があります。Secret Managerに保存することで、これらの情報をコードから分離し、必要な場所で参照できます。
クライアントサイドで利用するには、Next.jsのprocess.env
を用います。ただし、クライアントサイドで環境変数を使用するには、その変数がビルド時に公開されている必要があります。
クライアントサイドで使用する環境変数は、容易にユーザーや外部から閲覧可能です。そのため、クライアントサイドには絶対に秘密情報を含まないようにします。シークレット情報はサーバーサイドで管理し、必要に応じてバックエンドAPIを通じて安全にアクセスする設計が推奨されます。
Next.jsをFirebase App Hostingにデプロイする際に、環境変数の管理は非常に重要です。クライアントサイドで利用するには、NEXT_PUBLIC_
プレフィックスを使用し、公開可能な情報のみを配置するよう注意が必要です。セキュアでスケーラブルな環境変数管理を実現することで、安全性の高いアプリケーション開発が可能となります。
[cv:issue_marketplace_engineer]
診断を受けるとあなたの現在の業務委託単価を算出します。今後副業やフリーランスで単価を交渉する際の参考になります。また次の単価レンジに到達するためのヒントも確認できます。