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.6.9. func.yaml 中的功能项目配置
				func.yaml 文件包含功能项目的配置。执行 kn func 命令时使用 func.yaml 中指定的值。例如,当运行 kn func build 命令时,会使用 build 字段中的值。在某些情况下,您可以使用命令行标志或环境变量覆盖这些值。
			
6.9.1. func.yaml 中的可配置字段
					在创建、构建和部署您的功能时,func.yaml 中的许多字段会自动生成。但是,您也可以手动修改以更改操作,如函数名称或镜像名称。
				
6.9.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 }}'6.9.1.2. envs
						envs 字段允许您在运行时设置环境变量供您的功能使用。您可以通过几种不同方式设置环境变量:
					
- 直接来自一个值。
- 来自分配给本地环境变量的值)。如需更多信息,请参阅"引用来自 func.yaml 字段中的本地环境变量"。
- 从存储在 secret 或配置映射中的键值对。
- 您还可以导入存储在 secret 或配置映射中的所有键值对,其键用作所创建的环境变量的名称。
这个示例演示了设置环境变量的不同方法:
6.9.1.3. builder
						builder 字段指定函数用于构建镜像的策略。它接受 pack 或 s2i 的值。
					
6.9.1.4. build
						build 字段指示如何构建函数。local 值表示该函数在您的机器上本地构建。git 值表示函数使用 git 字段中指定的值来在集群中构建。
					
6.9.1.5. 卷
						volumes 字段允许您将 secret 和配置映射作为可在指定路径的函数访问的卷挂载,如下例所示:
					
6.9.1.6. 选项
						options 字段允许您修改部署的功能的 Knative Service 属性,如自动扩展。如果未设置这些选项,则使用默认的选项。
					
这些选项可用:
- scale- 
										min:最小副本数。必须是一个非负的整数。默认值为 0。
- 
										max:最大副本数。必须是一个非负的整数。默认值为 0,这代表没有限制。
- 
										metric:定义 Autoscaler 监视哪一指标类型。它可以被设置为concurrency(默认),或rps。
- 
										target:建议根据同时传入的请求数量,何时向上扩展。target选项可以是大于 0.01 的浮点值。除非设置了options.resources.limits.concurrency,否则默认为100,在这种情况下,目标默认为其值。
- 
										utilization:向上扩展前允许的并发请求利用率百分比.它可以是 1 到 100 之间的一个浮点值。默认值为 70。
 
- 
										
- 资源- requests- 
												cpu:具有部署功能的容器的 CPU 资源请求。
- 
												memory:具有部署功能的容器的内存资源请求。
 
- 
												
- limits- 
												cpu:具有部署功能的容器的 CPU 资源限值。
- 
												memory:具有部署功能的容器的内存资源限制。
- 
												concurrency:单个副本处理的并发请求的硬限制。它可以是大于或等于 0 的整数值,默认为 0 - 表示无限制。
 
- 
												
 
						这是 scale 选项配置示例:
					
6.9.1.7. image
						image 字段在构建后为您的功能设置镜像名称。您可以修改此字段。如果您这样做,在下次运行 kn func build 或 kn func deploy 时,功能镜像将使用新名称创建。
					
6.9.1.8. imageDigest
						在部署函数时,imageDigest 字段包含镜像清单的 SHA256 哈希。不要修改这个值。
					
6.9.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 }}'6.9.1.10. name
						name 字段定义您的函数的名称。该值在部署时用作 Knative 服务的名称。您可以更改此字段来重命名后续部署中的函数。
					
6.9.1.11. namespace
						namespace 字段指定部署您的功能的命名空间。
					
6.9.1.12. runtime
						runtime 字段指定您的功能的语言运行时,如 python。
					
6.9.2. 从 func.yaml 字段引用本地环境变量
					如果要避免在功能配置中存储敏感信息,如 API 密钥,您可以添加对本地环境中可用的环境变量的引用。您可以通过修改 func.yaml 文件中的 envs 字段来完成此操作。
				
先决条件
- 您需要创建 function 项目。
- 本地环境需要包含您要引用的变量。
流程
- 要引用本地环境变量,请使用以下语法: - {{ env:ENV_VAR }}- {{ env:ENV_VAR }}- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 将 - ENV_VAR替换为您要用于本地环境中的变量名称。- 例如,您可能在本地环境中提供 - API_KEY变量。您可以将其值分配给- MY_API_KEY变量,然后您可以在功能内直接使用该变量:- 功能示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow