13.3. func.yaml の設定可能なフィールド
一部の func.yaml
フィールドを設定できます。
13.3.1. func.yaml の設定可能なフィールド リンクのコピーリンクがクリップボードにコピーされました!
func.yaml
のフィールドの多くは、関数の作成、ビルド、およびデプロイ時に自動的に生成されます。ただし、関数名またはイメージ名などの変更用に手動で変更するフィールドもあります。
13.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 }}'
13.3.1.2. envs リンクのコピーリンクがクリップボードにコピーされました!
envs
フィールドを使用すると、ランタイム時に関数で使用できるように環境変数を設定できます。環境変数は、複数の異なる方法で設定できます。
- 値から直接設定します。
- ローカル環境変数に割り当てられた値から設定します。詳細は、「func.yaml フィールドからのローカル環境変数の参照」セクションを参照してください。
- シークレットまたは config map に格納されているキーと値のペアから設定します。
- 作成された環境変数の名前として使用されるキーを使用して、シークレットまたは config map に格納されているすべてのキーと値のペアをインポートすることもできます。
以下の例は、環境変数を設定するさまざまな方法を示しています。
13.3.1.3. builder リンクのコピーリンクがクリップボードにコピーされました!
builder
フィールドは、関数がイメージを構築するために使用する戦略を指定します。pack
または s2i
の値を受け入れます。
13.3.1.4. build リンクのコピーリンクがクリップボードにコピーされました!
build
フィールドは、関数を構築する方法を示します。local
の値は、関数がマシン上でローカルに構築されていることを示します。値 git
は、関数が git
フィールドで指定された値を使用してクラスター上に構築されることを示します。
13.3.1.5. volumes リンクのコピーリンクがクリップボードにコピーされました!
以下の例のように、volumes
フィールドを使用すると、指定したパスで関数にアクセスできるボリュームとしてシークレットと config map をマウントできます。
13.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 です。
-
resources
requests
-
cpu
: デプロイされた関数を持つコンテナーの CPU リソース要求。 -
memory
: デプロイされた関数を持つコンテナーのメモリーリソース要求。
-
limits
-
cpu
: デプロイされた関数を持つコンテナーの CPU リソース制限。 -
memory
: デプロイされた関数を持つコンテナーのメモリーリソース制限。 -
concurrency
: 単一レプリカによって処理される同時要求のハード制限。0 以上の整数値を指定できます。デフォルトは 0 です (制限なしを意味します)。
-
これは、scale
オプションの設定例です。
13.3.1.7. image リンクのコピーリンクがクリップボードにコピーされました!
image
フィールドは、関数がビルドされた後の関数のイメージ名を設定します。このフィールドは必要に応じて変更できます。変更する場合は、次に kn func build
または kn func deploy
を実行すると、関数イメージが新しい名前で作成されます。
13.3.1.8. imageDigest リンクのコピーリンクがクリップボードにコピーされました!
imageDigest
フィールドには、関数のデプロイ時のイメージマニフェストの SHA256 ハッシュが含まれます。この値は変更しないでください。
13.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 }}'
13.3.1.10. name リンクのコピーリンクがクリップボードにコピーされました!
name
フィールドは、関数の名前を定義します。この値は、デプロイ時に Knative サービスの名前として使用されます。このフィールドを変更して、後続のデプロイメントで関数の名前を変更できます。
13.3.1.11. namespace リンクのコピーリンクがクリップボードにコピーされました!
namespace
フィールドは、関数がデプロイされる namespace を指定します。
13.3.1.12. runtime リンクのコピーリンクがクリップボードにコピーされました!
runtime
フィールドは、関数の言語ランタイムを指定します (例: python
)。