環境変数を使用すると、設定をアプリケーションコードから分離できます。これにより、アプリケーションを再デプロイすることなく、環境に応じて実行時の動作をカスタマイズできます。また、データベースの認証情報や API キーなどの機密データをソースコードに含めないようにすることもできます。
背景情報
EDAS は、Kubernetes クラスターにデプロイされたアプリケーションに対して、3 種類の環境変数をサポートしています。
|
タイプ |
説明 |
ユースケース |
|
カスタム |
直接定義するキーと値のペア |
|
|
ConfigMap |
Kubernetes ConfigMap エントリへの参照 |
複数のアプリケーション間で共有される、機密ではない設定 |
|
Secret |
Kubernetes Secret エントリへの参照 |
パスワード、証明書、API キー |
ConfigMap と Secret は、それらを参照するアプリケーションと同じリージョン、クラスター、および Kubernetes 名前空間に存在する必要があります。
ConfigMap を作成する方法については、「設定項目の作成」をご参照ください。Secret を作成する方法については、「Secret の作成」をご参照ください。
前提条件
開始する前に、以下が準備できていることを確認してください。
-
EDAS コンソールにアクセスできる EDAS アカウント
-
EDAS で作成された Kubernetes クラスター
-
(オプション) アプリケーションと同じリージョン、クラスター、および Kubernetes 名前空間にある ConfigMap または Secret
環境変数の追加
環境変数は、アプリケーションの作成時または既存のアプリケーションのデプロイ時に設定できます。どちらの場合も、変数は起動時にコンテナに渡されます。
環境変数の変更を保存すると、アプリケーションが再起動します。影響を最小限に抑えるために、オフピーク時に環境変数を設定してください。
アプリケーション作成時の変数の追加
-
EDAS コンソールにログインします。
-
上部のナビゲーションバーでリージョンを選択します。ページの上部で名前空間を選択します。
-
左上隅にある [Create Application] をクリックします。
-
[Basic Information] ステップで、[Cluster Type] を [Kubernetes Clusters] に設定し、[Application Runtime Environment] を選択して (「アプリケーション実行環境のオプション」をご参照ください)、[Next] をクリックします。
-
[Configurations] ステップで、環境情報、基本情報、デプロイメント方法、およびリソースパラメーターを設定し、[Next] をクリックします。
-
[Advanced Settings] ステップで、[Environment Variables] をクリックし、「変数の設定方法」で説明されているいずれかの方法を使用して変数を追加します。
-
[Create Application] をクリックします。
-
[Creation Completed] ページで、[Basic Information]、[Configurations]、および [Advanced Settings] の設定を確認し、[Create Application] をクリックします。
-
[Application Overview] ページで、[View Details] をクリックします。[Change List] ページで、デプロイメントの進捗をモニターします。変更が完了したら、[Basic Information] セクションで Pod のステータスが実行中であることを確認します。
アプリケーションデプロイ時の変数の追加
アプリケーション作成時に環境変数を設定しなかった場合は、アプリケーションのデプロイまたは再デプロイ時に追加します。
-
EDAS コンソールにログインします。
-
上部のナビゲーションバーでリージョンを選択します。ページの上部で名前空間を選択します。
-
[Cluster Type] ドロップダウンリストから、[Container Service or Serverless Kubernetes Cluster] を選択します。
-
対象のアプリケーションを見つけ、その名前をクリックします。
-
[Overview] または [Basic information] ページで、右上隅にある [Deploy] > [Deploy] を選択します。
-
[Select Deployment Mode] ページで、デプロイモードを選択し、[Start Deployment] をクリックします。
-
実行環境とデプロイメントパッケージを設定し、[Environment Variables] をクリックして、「変数の設定方法」で説明されているいずれかの方法を使用して変数を追加します。
-
[OK] をクリックします。
変数の設定方法
変数は個別に追加することも、一括で追加することもできます。
単一変数の追加
変数のタイプに応じて、次のいずれかの方法を選択します。
カスタム変数
変数名と値を直接入力します。

JVM ヒープメモリ、JVM プロパティ、または Java エージェントパラメーターを設定するには、以下のように設定します。
-
変数名: CATALINA_OPTS
-
変数値: [追加するパラメーター] $(EDAS_CATALINA_OPTS)
MySQL イメージの一般的な環境変数:
|
変数 |
必須 |
説明 |
|
|
はい |
MySQL の root パスワードを設定します |
|
|
いいえ |
パスワード付きの追加のユーザーアカウントを作成します |
|
|
いいえ |
コンテナ起動時に作成するデータベースを指定します |
他のイメージタイプについては、イメージのドキュメントに基づいて環境変数を設定してください。
ConfigMap 参照
[Variable Value/Variable Reference] ドロップダウンリストから ConfigMap を選択し、次に ConfigMap からキーと値のペアを選択します。
Secret 参照
[Variable Value/Variable Reference] ドロップダウンリストから Secret を選択し、次に Secret からキーと値のペアを選択します。
複数変数の一括追加
ConfigMap または Secret から環境変数を一括でインポートするには、次のパラメーターを設定します。
|
パラメーター |
説明 |
|
タイプ |
[Configuration Items] (ConfigMap) または [Secret] を選択します。カスタム変数は一括モードではサポートされていません。 |
|
設定モード |
env: ConfigMap または Secret から特定のキーと値のペアを選択します。 envFrom: ConfigMap または Secret からすべてのキーと値のペアを挿入します。 |
|
設定項目 |
ドロップダウンリストから ConfigMap を選択します。 |
|
参照環境変数 |
注入するキーと値のペアを選択します([env] モードでのみ利用可能)。 |
一度に最大 100 個の環境変数を追加できます。変数を追加した後、要件に基づいて変数名を設定してください。
結果の確認
いずれかの方法で環境変数がアクティブであることを確認します。
-
変更履歴:アプリケーション詳細ページの左側のナビゲーションウィンドウで、[Change Records] をクリックします。[Change Status] 列に [Success] と表示されていれば、設定は有効になっています。
-
Pod ステータス:[Application Overview] ページで、[Running Status] の横にある [Running Pods (Click View)] をクリックします。[Pod] セクションで、[Status] 列を確認します。緑色のドットは、アプリケーションが更新された設定で実行されていることを示します。
アプリケーション実行環境のオプション
アプリケーションのタイプに一致する実行環境を選択します。
|
ランタイム |
説明 |
|
Java > Custom |
Kubernetes クラスターでカスタムイメージを使用してデプロイします |
|
Java > Java |
JAR パッケージを使用して Dubbo または Spring Boot アプリケーションをデプロイします。設定可能:Java Environment。 |
|
Java > Tomcat |
WAR パッケージを使用して Dubbo または Spring アプリケーションをデプロイします。設定可能:Java Environment、Container Version。 |
|
Java > EDAS-Container (HSF) |
WAR または FatJar パッケージを使用して HSF アプリケーションをデプロイします。設定可能:Java Environment、Pandora Version、Ali-Tomcat Version。 |
|
PHP |
Apache HTTP Server 上で実行される PHP アプリケーションをデプロイします |
|
Node.js、C++、Go、およびその他の言語 |
Kubernetes クラスターでカスタムイメージを使用してデプロイします |