12.3. func.yaml の設定可能なフィールド
一部の func.yaml フィールドを設定できます。
12.3.1. func.yaml の設定可能なフィールド リンクのコピーリンクがクリップボードにコピーされました!
func.yaml のフィールドの多くは、関数の作成、ビルド、およびデプロイ時に自動的に生成されます。ただし、関数名またはイメージ名などの変更用に手動で変更するフィールドもあります。
12.3.1.1. buildEnvs リンクのコピーリンクがクリップボードにコピーされました!
buildEnvs フィールドを使用すると、関数をビルドする環境で利用できる環境変数を設定できます。envs を使用して設定する変数とは異なり、buildEnv を使用して設定する変数は、関数の実行時には使用できません。
buildEnv 変数を値から直接設定できます。以下の例では、EXAMPLE1 という名前の buildEnv 変数に値 one が直接割り当てられます。
buildEnvs: - name: EXAMPLE1 value: one
buildEnvs:
- name: EXAMPLE1
value: one
また、ローカルの環境変数から buildEnv 変数を設定することもできます。以下の例では、EXAMPLE2 という名前の buildEnv 変数にローカル環境変数 LOCAL_ENV_VAR の値が割り当てられます。
buildEnvs:
- name: EXAMPLE1
value: '{{ env:LOCAL_ENV_VAR }}'
buildEnvs:
- name: EXAMPLE1
value: '{{ env:LOCAL_ENV_VAR }}'
12.3.1.2. envs リンクのコピーリンクがクリップボードにコピーされました!
envs フィールドを使用すると、ランタイム時に関数で使用できるように環境変数を設定できます。環境変数は、複数の異なる方法で設定できます。
- 値から直接設定します。
- ローカル環境変数に割り当てられた値から設定します。詳細は、func.yaml フィールドからのローカル環境変数の参照のセクションを参照してください。
- シークレットまたは Config Map に格納されているキーと値のペアから設定します。
- 作成された環境変数の名前として使用されるキーを使用して、シークレットまたは Config Map に格納されているすべてのキーと値のペアをインポートすることもできます。
以下の例は、環境変数を設定するさまざまな方法を示しています。
12.3.1.3. builder リンクのコピーリンクがクリップボードにコピーされました!
builder フィールドは、機能がイメージを構築するために使用する戦略を指定します。pack または s2i の値を受け入れます。
12.3.1.4. build リンクのコピーリンクがクリップボードにコピーされました!
build フィールドは、機能を構築する方法を示します。値 local は、機能がマシン上でローカルに構築されていることを示します。値 git は、関数が git フィールドで指定された値を使用してクラスター上に構築されることを示します。
12.3.1.5. volumes リンクのコピーリンクがクリップボードにコピーされました!
以下の例のように、volumes フィールドを使用すると、指定したパスで関数にアクセスできるボリュームとしてシークレットと Config Map をマウントできます。
12.3.1.6. オプション リンクのコピーリンクがクリップボードにコピーされました!
options フィールドを使用すると、自動スケーリングなど、デプロイされた関数の Knative Service プロパティーを変更できます。これらのオプションが設定されていない場合は、デフォルトのオプションが使用されます。
これらのオプションを利用できます。
scale-
min: レプリカの最小数。負ではない整数でなければなりません。デフォルトは 0 です。 -
max: レプリカの最大数。負ではない整数でなければなりません。デフォルトは 0 で、これは制限がないことを意味します。 -
metric: Autoscaler によって監視されるメトリックタイプを定義します。これは、デフォルトのconcurrency、またはrpsに設定できます。 -
target: 同時に受信する要求の数に基づくスケールアップのタイミングの推奨。targetオプションは、0.01 より大きい浮動小数点値を指定できます。options.resources.limits.concurrencyが設定されていない限り、デフォルトは 100 になります。この場合、targetはデフォルトでその値になります。 -
utilization: スケールアップする前に許可された同時リクエスト使用率のパーセンテージ。1 から 100 までの浮動小数点値を指定できます。デフォルトは 70 です。
-
resourcesrequests-
cpu: デプロイされた関数を持つコンテナーの CPU リソース要求。 -
memory: デプロイされた関数を持つコンテナーのメモリーリソース要求。
-
limits-
cpu: デプロイされた関数を持つコンテナーの CPU リソース制限。 -
memory: デプロイされた関数を持つコンテナーのメモリーリソース制限。 -
concurrency: 単一レプリカによって処理される同時要求のハード制限。0 以上の整数値を指定できます。デフォルトは 0 です (制限なしを意味します)。
-
これは、scale オプションの設定例です。
12.3.1.7. image リンクのコピーリンクがクリップボードにコピーされました!
image フィールドは、関数がビルドされた後の関数のイメージ名を設定します。このフィールドは必要に応じて変更できます。変更する場合は、次に kn func build または kn func deploy を実行すると、関数イメージが新しい名前で作成されます。
12.3.1.8. imageDigest リンクのコピーリンクがクリップボードにコピーされました!
imageDigest フィールドには、関数のデプロイ時のイメージマニフェストの SHA256 ハッシュが含まれます。この値は変更しないでください。
12.3.1.9. labels リンクのコピーリンクがクリップボードにコピーされました!
labels フィールドを使用すると、デプロイされた関数にラベルを設定できます。
値から直接ラベルを設定できます。以下の例では、role キーを持つラベルに backend の値が直接割り当てられます。
labels: - key: role value: backend
labels:
- key: role
value: backend
ローカル環境変数からラベルを設定することもできます。以下の例では、author キーの付いたラベルに USER ローカル環境変数の値が割り当てられます。
labels:
- key: author
value: '{{ env:USER }}'
labels:
- key: author
value: '{{ env:USER }}'
12.3.1.10. name リンクのコピーリンクがクリップボードにコピーされました!
name フィールドは、関数の名前を定義します。この値は、デプロイ時に Knative サービスの名前として使用されます。このフィールドを変更して、後続のデプロイメントで関数の名前を変更できます。
12.3.1.11. namespace リンクのコピーリンクがクリップボードにコピーされました!
namespace フィールドは、関数がデプロイされる namespace を指定します。
12.3.1.12. runtime リンクのコピーリンクがクリップボードにコピーされました!
runtime フィールドは、関数の言語ランタイムを指定します (例: python)。