10.3. 手动添加对 secret 和配置映射的功能访问
您可以将用于访问 secret 和配置映射的配置手动添加到您的功能中。这可能最好使用 kn func config
交互式实用程序和命令,例如您已有配置片段时。
10.3.1. 将 secret 挂载为卷
您可以将 secret 挂载为卷。挂载 secret 后,您可以作为常规文件从函数访问它。这可让您存储在功能所需的集群数据中,例如,函数需要访问的 URI 列表。
先决条件
- 在集群中安装了 OpenShift Serverless Operator 和 Knative Serving。
-
已安装 Knative (
kn
) CLI。 - 您已创建了一个功能。
流程
-
为您的功能打开
func.yaml
文件。 对于您要挂载为卷的每个 secret,将以下 YAML 添加到
volumes
部分:name: test namespace: "" runtime: go ... volumes: - secret: mysecret path: /workspace/secret
-
将
mysecret
替换为目标 secret 的名称。 将
/workspace/secret
替换为您要挂载 secret 的路径。例如,要挂载
addresses
secret,请使用以下 YAML:name: test namespace: "" runtime: go ... volumes: - configMap: addresses path: /workspace/secret-addresses
-
将
- 保存配置。
10.3.2. 将配置映射挂载为卷
您可以将配置映射挂载为卷。挂载配置映射后,您可以作为常规文件从函数访问它。这可让您存储在功能所需的集群数据中,例如,函数需要访问的 URI 列表。
先决条件
- 在集群中安装了 OpenShift Serverless Operator 和 Knative Serving。
-
已安装 Knative (
kn
) CLI。 - 您已创建了一个功能。
流程
-
为您的功能打开
func.yaml
文件。 对于您要挂载为卷的每个配置映射,请将以下 YAML 添加到
volumes
部分:name: test namespace: "" runtime: go ... volumes: - configMap: myconfigmap path: /workspace/configmap
-
将
myconfigmap
替换为目标配置映射的名称。 使用您要挂载配置映射的路径替换
/workspace/configmap
。例如,要挂载
addresses
配置映射,请使用以下 YAML:name: test namespace: "" runtime: go ... volumes: - configMap: addresses path: /workspace/configmap-addresses
-
将
- 保存配置。
10.3.3. 从 secret 中定义的键值设置环境变量
您可以从定义为 secret 的键值设置环境变量。然后,之前存储在 secret 中的值可以被函数在运行时作为环境变量访问。这有助于获取存储在 secret 中的值,如用户的 ID。
先决条件
- 在集群中安装了 OpenShift Serverless Operator 和 Knative Serving。
-
已安装 Knative (
kn
) CLI。 - 您已创建了一个功能。
流程
-
为您的功能打开
func.yaml
文件。 对于您要分配给环境变量的 secret 键值对的每个值,请将以下 YAML 添加到
envs
部分:name: test namespace: "" runtime: go ... envs: - name: EXAMPLE value: '{{ secret:mysecret:key }}'
-
将
EXAMPLE
替换为环境变量的名称。 -
将
mysecret
替换为目标 secret 的名称。 使用映射到目标值的键替换
key
。例如,要访问存储在
userdetailssecret
中的用户 ID,请使用以下 YAML:name: test namespace: "" runtime: go ... envs: - value: '{{ configMap:userdetailssecret:userid }}'
-
将
- 保存配置。
10.3.4. 从配置映射中定义的键值设置环境变量
您可以从定义为配置映射的键值设置环境变量。然后,之前存储在配置映射中的值可以被函数在运行时作为环境变量访问。这对于获取配置映射中存储的值(如用户的 ID)非常有用。
先决条件
- 在集群中安装了 OpenShift Serverless Operator 和 Knative Serving。
-
已安装 Knative (
kn
) CLI。 - 您已创建了一个功能。
流程
-
为您的功能打开
func.yaml
文件。 对于您要分配给环境变量的配置映射键值对中的每个值,请将以下 YAML 添加到
envs
部分:name: test namespace: "" runtime: go ... envs: - name: EXAMPLE value: '{{ configMap:myconfigmap:key }}'
-
将
EXAMPLE
替换为环境变量的名称。 -
将
myconfigmap
替换为目标配置映射的名称。 使用映射到目标值的键替换
key
。例如,要访问存储在
userdetailsmap
中的用户 ID,请使用以下 YAML:name: test namespace: "" runtime: go ... envs: - value: '{{ configMap:userdetailsmap:userid }}'
-
将
- 保存配置。
10.3.5. 从 secret 中定义的所有值设置环境变量
您可以从 secret 中定义的所有值设置环境变量。然后,之前存储在 secret 中的值可以被函数在运行时作为环境变量访问。这可用于同时访问存储在 secret 中的一组值,例如,一组与用户相关的数据。
先决条件
- 在集群中安装了 OpenShift Serverless Operator 和 Knative Serving。
-
已安装 Knative (
kn
) CLI。 - 您已创建了一个功能。
流程
-
为您的功能打开
func.yaml
文件。 对于您要导入所有键值对作为环境变量的每个 secret,请将以下 YAML 添加到
envs
部分:name: test namespace: "" runtime: go ... envs: - value: '{{ secret:mysecret }}' 1
- 1
- 将
mysecret
替换为目标 secret 的名称。
例如,要访问存储在
userdetailssecret
中的所有用户数据,请使用以下 YAML:name: test namespace: "" runtime: go ... envs: - value: '{{ configMap:userdetailssecret }}'
- 保存配置。
10.3.6. 从配置映射中定义的所有值设置环境变量
您可以从配置映射中定义的所有值设置环境变量。然后,之前存储在配置映射中的值可以被函数在运行时作为环境变量访问。这可用于同时访问配置映射中存储的值集合,例如,一组与用户相关的数据。
先决条件
- 在集群中安装了 OpenShift Serverless Operator 和 Knative Serving。
-
已安装 Knative (
kn
) CLI。 - 您已创建了一个功能。
流程
-
为您的功能打开
func.yaml
文件。 对于您要导入所有键值对作为环境变量的每个配置映射,请将以下 YAML 添加到
envs
部分:name: test namespace: "" runtime: go ... envs: - value: '{{ configMap:myconfigmap }}' 1
- 1
- 将
myconfigmap
替换为目标配置映射的名称。
例如,要访问存储在
userdetailsmap
中的所有用户数据,请使用以下 YAML:name: test namespace: "" runtime: go ... envs: - value: '{{ configMap:userdetailsmap }}'
- 保存该文件。