This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.11.8. func.yaml の関数プロジェクト設定
func.yaml ファイルには、関数プロジェクトの設定が含まれます。kn func コマンドを実行すると、func.yaml に指定された値が使用されます。たとえば、kn func build コマンドを実行すると、build フィールドの値が使用されます。一部のケースでは、この値はコマンドラインフラグまたは環境変数で上書きできます。
11.8.1. func.yaml の設定可能なフィールド リンクのコピーリンクがクリップボードにコピーされました!
func.yaml のフィールドの多くは、関数の作成、ビルド、およびデプロイ時に自動的に生成されます。ただし、関数名またはイメージ名などの変更用に手動で変更するフィールドもあります。
11.8.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 }}'
11.8.1.2. envs リンクのコピーリンクがクリップボードにコピーされました!
envs フィールドを使用すると、ランタイム時に関数で使用できるように環境変数を設定できます。環境変数は、複数の異なる方法で設定できます。
- 値から直接設定します。
- ローカル環境変数に割り当てられた値から設定します。詳細は、func.yaml フィールドからのローカル環境変数の参照のセクションを参照してください。
- シークレットまたは設定マップに格納されているキーと値のペアから設定します。
- 作成された環境変数の名前として使用されるキーを使用して、シークレットまたは設定マップに格納されているすべてのキーと値のペアをインポートすることもできます。
以下の例は、環境変数を設定するさまざまな方法を示しています。
11.8.1.3. builder リンクのコピーリンクがクリップボードにコピーされました!
builder フィールドは、機能がイメージを構築するために使用する戦略を指定します。pack または s2i の値を受け入れます。
11.8.1.4. build リンクのコピーリンクがクリップボードにコピーされました!
build フィールドは、機能を構築する方法を示します。値 local は、機能がマシン上でローカルに構築されていることを示します。値 git は、機能が git フィールドで指定された値を使用してクラスター上に構築されていることを示します。
11.8.1.5. volumes リンクのコピーリンクがクリップボードにコピーされました!
以下の例のように、volumes フィールドを使用すると、指定したパスで関数にアクセスできるボリュームとしてシークレットと設定マップをマウントできます。
11.8.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 オプションの設定例です。
11.8.1.7. image リンクのコピーリンクがクリップボードにコピーされました!
image フィールドは、関数がビルドされた後の関数のイメージ名を設定します。このフィールドは必要に応じて変更できます。変更する場合、次に kn func build または kn func deploy を実行すると、関数イメージは新しい名前で作成されます。
11.8.1.8. imageDigest リンクのコピーリンクがクリップボードにコピーされました!
imageDigest フィールドには、関数のデプロイ時のイメージマニフェストの SHA256 ハッシュが含まれます。この値は変更しないでください。
11.8.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 }}'
11.8.1.10. name リンクのコピーリンクがクリップボードにコピーされました!
name フィールドは、関数の名前を定義します。この値は、デプロイ時に Knative サービスの名前として使用されます。このフィールドを変更して、後続のデプロイメントで関数の名前を変更できます。
11.8.1.11. namespace リンクのコピーリンクがクリップボードにコピーされました!
namespace フィールドは、関数がデプロイされる namespace を指定します。
11.8.1.12. runtime リンクのコピーリンクがクリップボードにコピーされました!
runtime フィールドは、関数の言語ランタイムを指定します (例: python)。