環境変数の自動注入
アプリケーションや関数をデプロイするとき、またはジョブを実行するとき、Code Engineは自動的に特定の環境変数をアプリケーション、関数、またはジョブに注入します。
アプリケーションに自動注入される環境変数
アプリケーションをデプロイするとき、 Code Engine は自動的に特定の環境変数をアプリケーションに注入します。 次の表は、デプロイされたアプリケーションの各インスタンスに自動的に注入される環境変数の一覧です。 自動的に注入される環境変数の以下の例は、 Code Engine サンプル画像、 icr.io/codeengine/codeengine を参照する myapp という名前のアプリケーションに基づいています。
環境変数 CE_APP、 CE_DOMAIN、 CE_SUBDOMAIN は、アプリケーションの URL、 https://CE_APP.CE_SUBDOMAIN.CE_DOMAIN を構築するために使用される。 例えば、CE_APP=myapp、CE_SUBDOMAIN=01234567-abcd、CE_DOMAIN=us-south.codeengine.dev.appdomain.cloud であれば、アプリケーションの外部 URL は https://myapp.01234567-abcd.us-south.codeengine.dev.appdomain.cloud になります。 アプリケーションのプライベート URL は appName.CE_SUBDOMAIN、つまり myapp.01234567-abcd になります。
| 環境変数 | 説明 | 例 |
|---|---|---|
CE_API_BASE_URL |
非公開の Code Engine API URL は、プロジェクトの地域に基づく。 Code Engine プロジェクトの同じ領域にあるすべてのコンポーネント(アプリケーションを含む)のエンドポイントへの API エンドポイント呼び出しには、この URL を使用します。 | CE_API_BASE_URL=https://api.private.us-south.codeengine.cloud.ibm.com |
CE_APP |
アプリケーションの名前。 | CE_APP=myapp |
CE_DOMAIN |
アプリケーション (およびプロジェクト) の URL のドメイン名の部分です。 | CE_DOMAIN=us-south.codeengine.dev.appdomain.cloud |
CE_REGION |
アプリケーションが存在する地域。 | CE_REGION=us-south |
CE_PROJECT_ID |
ご使用のプロジェクトのプロジェクト ID。 | CE_PROJECT_ID=abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f |
CE_SUBDOMAIN |
アプリケーション (およびプロジェクト) に関連付けられる URL のサブドメインの部分です。 Kubernetes に詳しい人にとって、CE_SUBDOMAIN はプロジェクトに関連付けられた Kubernetes 名前空間に対応するものです。 | CE_SUBDOMAIN=01234567-abcd |
HOME |
アプリケーションを実行しているホームディレクトリ。 | HOME=/root |
HOSTNAME |
アプリケーションがデプロイされるインスタンス名。 | HOSTNAME=myapp-00001-deployment-65684cffd-xng7z |
K_CONFIGURATION |
アプリケーションの名前。 | K_CONFIGURATION=myapp |
K_REVISION |
デプロイされたアプリケーションの現在のリビジョン名。 | K_REVISION=myapp-00001 |
K_SERVICE |
アプリケーションの名前。 | K_SERVICE=myapp |
PATH |
システムが実行可能プログラムを検索するディレクトリーのリスト。 | PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
PORT |
アプリケーションが HTTP リクエストを受け取るためにリッスンするポート。 | PORT=8080 |
PWD |
現行作業ディレクトリー。 | PWD=/ |
コンソールからアプリケーションをデプロイして Listeningポート値を指定するか、CLIを使用して --port オプションを設定することで、 PORT 変数をオーバーライドできることに注意してください。
関数への環境変数の自動注入
関数をデプロイすると、 Code Engine は自動的に特定の環境変数を関数に注入します。 次の表は、デプロイされた関数の各インスタンスに自動的に注入される環境変数の一覧です。
環境変数 CE_FUNCTION、 CE_DOMAIN、 CE_SUBDOMAIN は、関数 https://CE_FUNCTION.CE_SUBDOMAIN.CE_DOMAIN の URL を構築するために使用される。 例えば、 CE_FUNCTION=myfunc、 CE_SUBDOMAIN=01234567-abcd 、 CE_DOMAIN=us-south.codeengine.dev.appdomain.cloud の場合、外部関数 URL は https://myfunc.01234567-abcd.us-south.codeengine.dev.appdomain.cloud となる。 アプリケーションのプライベート URL は CE_FUNCTION.CE_SUBDOMAIN.private.CE_DOMAIN、つまり
myfunc.01234567-abcd.private.us-south.codeengine.appdomain.cloud になります。
| 環境変数 | 説明 | 例 |
|---|---|---|
CE_API_BASE_URL |
非公開の Code Engine API URL は、プロジェクトの地域に基づく。 Code Engine プロジェクトの同じ領域にあるすべてのコンポーネント(関数を含む)のエンドポイントへの API エンドポイント呼び出しには、この URL を使用します。 | CE_API_BASE_URL=https://api.private.us-south.codeengine.cloud.ibm.com |
CE_ALLOW_CONCURRENT |
この内部ブール値設定は、 Code Engine 関数コントローラーによって、ランタイムが同じ関数インスタンスの同時呼び出しをサポートするかどうかを示すために使用され、無視することができます。 | CE_ALLOW_CONCURRENT=true |
CE_DOMAIN |
機能(およびプロジェクト)の URL のドメイン名部分。 | CE_DOMAIN=us-south.codeengine.dev.appdomain.cloud |
CE_REGION |
関数が存在する領域。 | CE_REGION=us-south |
CE_PROJECT_ID |
ご使用のプロジェクトのプロジェクト ID。 | CE_PROJECT_ID=abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f |
CE_EXECUTION_ENV |
管理対象ランタイム・タイプとそのリリース・バージョン。 | CE_EXECUTION_ENV=ibm/action-python-v3.11 この例では、 Python v3.11を使用するように指定しています。 |
CE_FUNCTION |
関数の名前。 | CE_FUNCTION=myfunc |
CE_SUBDOMAIN |
機能(およびプロジェクト)に関連する URL のサブドメイン部分。 Kubernetes をご存知であれば、 CE_SUBDOMAIN は、プロジェクトに関連する Kubernetes 名前空間にマッピングされます。 |
CE_SUBDOMAIN=01234567-abcd |
HOME |
関数のランタイム・コンテナーのホーム・ディレクトリー。 | HOME=/root |
LC_CTYPE |
ctype および multibyte オペレーティング・システム API で使用されるロケール。 Python ランタイムでのみ使用可能です。 |
LC_CTYPE=C.UTF-8 |
PATH |
PATH 変数の現在の設定。システムが実行可能ファイルを検索するディレクトリーがリストされます。 | PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
PYTHONIOENCODING |
標準入力、標準出力、および標準エラー・ストリームで使用される標準エンコード。 この変数は、 Python ランタイムにのみ適用されます。 | PYTHONIOENCODING=UTF-8 |
PWD |
現行作業ディレクトリー。 | PWD=/ |
ジョブで自動注入される環境変数
ジョブを実行するとき、Code Engine は特定の環境変数をジョブ実行インスタンスに自動的に注入します。
以下の表は、実行中のジョブの各インスタンスに自動的に注入される環境変数をリストしています。 以下の自動注入される環境変数の例は、Code Engineサンプル・イメージicr.io/codeengine/codeengineを参照する myjobという名前のジョブに基づいています。
| 環境変数 | 説明 | 例 |
|---|---|---|
CE_API_BASE_URL |
非公開の Code Engine API URL は、プロジェクトの地域に基づく。 Code Engine プロジェクトの同じ地域にあるすべてのコンポーネント (ジョブを含む) のエンドポイントへの API エンドポイント呼び出しには、この URL を使用します。 | CE_API_BASE_URL=https://api.private.us-south.codeengine.cloud.ibm.com |
CE_DOMAIN |
プロジェクトのドメイン名。 | CE_DOMAIN=us-south.codeengine.appdomain.cloud |
CE_REGION |
ジョブ実行が存在する領域。 | CE_REGION=us-south |
CE_PROJECT_ID |
ご使用のプロジェクトのプロジェクト ID。 | CE_PROJECT_ID=abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f |
CE_JOB |
ジョブ実行に使用された定義済みジョブ構成の名前。 | CE_JOB=myjobdef |
CE_JOBRUN |
ジョブ実行の名前。 | CE_JOBRUN=myjob-jobrun-f5kxz |
CE_SUBDOMAIN |
ジョブを実行するプロジェクトに関連付けられているサブドメイン。 Kubernetes に詳しい人にとって、CE_SUBDOMAIN はプロジェクトに関連付けられた Kubernetes 名前空間に対応するものです。 |
CE_SUBDOMAIN=01234567-abcd |
HOME |
ジョブを実行しているホーム・ディレクトリー。 | HOME=/root |
HOSTNAME |
アプリケーションがデプロイされるインスタンス名。 | HOSTNAME=myjob-jobrun-6bgmg-0-0 |
JOB_ARRAY_SIZE |
並行して実行するジョブ・インスタンスの数。 値は、ジョブ実行配列サイズとして直接指定されるか、指定された索引をカウントして計算されます。 | JOB_ARRAY_SIZE=10 |
JOB_INDEX |
特定のジョブ実行インスタンスのインデックス。 | JOB_INDEX=1 |
JOB_INDEX_RETRY_COUNT |
ジョブ・インスタンスの現在の再試行回数。 | JOB_INDEX_RETRY_COUNT=0 |
JOB_MODE |
ジョブの実行モード。 task モードでは、ジョブは最大時間実行され、失敗したインスタンスはジョブ再試行限度ごとに再試行されます。 daemon モードでは、ジョブは最大時間なしで実行され、失敗したインスタンスは無期限に再起動される。 |
JOB_MODE=task |
JOB_RETRY_LIMIT |
ジョブ実行の構成済み再試行限度。 | JOB_RETRY_LIMIT=3 |
PATH |
システムが実行可能プログラムを検索するディレクトリーのリスト。 | PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin |
PWD |
現行作業ディレクトリー。 | PWD=/ |
各ジョブ実行インスタンスは、ジョブの作成時に指定された索引の配列から独自の索引を取得することに注意してください。 Code Engine は、0 から (配列サイズ-1) までの索引を自動的に割り当てます。 そのインデックスの値は JOB_INDEX 環境変数に含まれています。
ジョブ自体には URL が関連付けられていませんが、同じプロジェクトで実行されているアプリケーションを参照する必要がある場合は、CE_DOMAIN値とCE_SUBDOMAIN値が役立つことがあります。 このアプリケーションの完全な外部 URL は、appName.CE_SUBDOMAIN.CE_DOMAIN です。 アプリケーションのプライベート URL を参照するには、appName.CE_SUBDOMAIN を使用します。