buildEnvs:
- name: EXAMPLE1
value: one
您可以配置一些 `func.yaml` 字段。
创建、构建和部署函数时,`func.yaml` 中的许多字段会自动生成。但是,也有一些字段您可以手动修改以更改内容,例如函数名称或镜像名称。
`buildEnvs` 字段使您可以设置环境变量,这些变量可用于构建函数的环境。与使用 `envs` 设置的变量不同,使用 `buildEnv` 设置的变量在函数运行时不可用。
您可以直接从值设置 `buildEnv` 变量。在以下示例中,名为 `EXAMPLE1` 的 `buildEnv` 变量直接赋值为 `one` 值。
buildEnvs:
- name: EXAMPLE1
value: one
您还可以从本地环境变量设置 `buildEnv` 变量。在以下示例中,名为 `EXAMPLE2` 的 `buildEnv` 变量被赋值为本地环境变量 `LOCAL_ENV_VAR` 的值。
buildEnvs:
- name: EXAMPLE1
value: '{{ env:LOCAL_ENV_VAR }}'
`envs` 字段使您可以在运行时为函数设置环境变量。您可以通过几种不同的方式设置环境变量。
直接从值设置。
从分配给本地环境变量的值设置。有关更多信息,请参见“从 func.yaml 字段引用本地环境变量”部分。
从存储在密钥或配置映射中的键值对设置。
您还可以导入存储在密钥或配置映射中的所有键值对,并将密钥用作创建的环境变量的名称。
此示例演示了设置环境变量的不同方法。
name: test
namespace: ""
runtime: go
...
envs:
- name: EXAMPLE1 (1)
value: value
- name: EXAMPLE2 (2)
value: '{{ env:LOCAL_ENV_VALUE }}'
- name: EXAMPLE3 (3)
value: '{{ secret:mysecret:key }}'
- name: EXAMPLE4 (4)
value: '{{ configMap:myconfigmap:key }}'
- value: '{{ secret:mysecret2 }}' (5)
- value: '{{ configMap:myconfigmap2 }}' (6)
1 | 直接从值设置的环境变量。 |
2 | 从分配给本地环境变量的值设置的环境变量。 |
3 | 从存储在密钥中的键值对分配的环境变量。 |
4 | 从存储在配置映射中的键值对分配的环境变量。 |
5 | 从密钥的键值对导入的一组环境变量。 |
6 | 从配置映射的键值对导入的一组环境变量。 |
`volumes` 字段使您可以将密钥和配置映射安装为函数在指定路径下可访问的卷,如下例所示。
name: test
namespace: ""
runtime: go
...
volumes:
- secret: mysecret (1)
path: /workspace/secret
- configMap: myconfigmap (2)
path: /workspace/configmap
1 | `mysecret` 密钥被安装为位于 `/workspace/secret` 的卷。 |
2 | myconfigmap 配置映射被挂载为卷,位于/workspace/configmap 。 |
options
字段允许您修改已部署函数的 Knative 服务属性,例如自动缩放。如果未设置这些选项,则使用默认选项。
以下选项可用:
scale(缩放)
min
:最小副本数。必须是非负整数。默认为 0。
max
:最大副本数。必须是非负整数。默认为 0,表示无限制。
metric
:定义自动缩放器监控的指标类型。可以设置为concurrency
(并发数,默认为此值)或rps
(每秒请求数)。
target
:基于并发传入请求数何时进行向上扩展的建议。target
选项可以是大于 0.01 的浮点值。默认为 100,除非设置了options.resources.limits.concurrency
,在这种情况下,target
默认为其值。
utilization
:在向上扩展之前允许的并发请求利用率百分比。可以是 1 到 100 之间的浮点值。默认为 70。
resources(资源)
requests(请求)
cpu
:部署函数的容器的 CPU 资源请求。
memory
:部署函数的容器的内存资源请求。
limits(限制)
cpu
:部署函数的容器的 CPU 资源限制。
memory
:部署函数的容器的内存资源限制。
concurrency
:单个副本可以处理的并发请求的硬限制。可以是非负整数,默认为 0,表示无限制。
这是一个scale
选项的示例配置:
name: test
namespace: ""
runtime: go
...
options:
scale:
min: 0
max: 10
metric: concurrency
target: 75
utilization: 75
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 1000m
memory: 256Mi
concurrency: 100