×

手动添加函数对密钥和配置映射的访问权限

您可以手动添加访问密钥和配置映射的配置到您的函数。例如,当您已经有现有的配置代码段时,这可能比使用kn func config交互式实用程序和命令更可取。

将密钥作为卷挂载

您可以将密钥作为卷挂载。密钥挂载后,您可以将其作为常规文件从函数中访问。这使您可以将集群中函数所需的数据存储在集群中,例如,函数需要访问的 URI 列表。

先决条件
  • OpenShift Serverless 运算符和 Knative Serving 已安装在集群上。

  • 您已安装 Knative (kn) CLI。

  • 您已创建了一个函数。

步骤
  1. 打开您的函数的func.yaml文件。

  2. 对于要作为卷挂载的每个密钥,请将以下 YAML 添加到volumes部分

    name: test
    namespace: ""
    runtime: go
    ...
    volumes:
    - secret: mysecret
      path: /workspace/secret
    • mysecret替换为目标密钥的名称。

    • /workspace/secret替换为您要挂载密钥的路径。

      例如,要挂载addresses密钥,请使用以下 YAML

      name: test
      namespace: ""
      runtime: go
      ...
      volumes:
      - configMap: addresses
        path: /workspace/secret-addresses
  3. 保存配置。

将配置映射作为卷挂载

您可以将配置映射作为卷挂载。配置映射挂载后,您可以将其作为常规文件从函数中访问。这使您可以将集群中函数所需的数据存储在集群中,例如,函数需要访问的 URI 列表。

先决条件
  • OpenShift Serverless 运算符和 Knative Serving 已安装在集群上。

  • 您已安装 Knative (kn) CLI。

  • 您已创建了一个函数。

步骤
  1. 打开您的函数的func.yaml文件。

  2. 对于要作为卷挂载的每个配置映射,请将以下 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
  3. 保存配置。

从密钥中定义的键值对设置环境变量

您可以从定义为密钥的键值对设置环境变量。然后,以前存储在密钥中的值可以在运行时被函数作为环境变量访问。这对于访问存储在密钥中的值(例如用户的 ID)非常有用。

先决条件
  • OpenShift Serverless 运算符和 Knative Serving 已安装在集群上。

  • 您已安装 Knative (kn) CLI。

  • 您已创建了一个函数。

步骤
  1. 打开您的函数的func.yaml文件。

  2. 对于要分配给环境变量的每个密钥值对的值,请将以下 YAML 添加到envs部分

    name: test
    namespace: ""
    runtime: go
    ...
    envs:
    - name: EXAMPLE
      value: '{{ secret:mysecret:key }}'
    • EXAMPLE替换为环境变量的名称。

    • mysecret替换为目标密钥的名称。

    • key替换为映射到目标值的密钥。

      例如,要访问存储在userdetailssecret中的用户 ID,请使用以下 YAML 代码:

      name: test
      namespace: ""
      runtime: go
      ...
      envs:
      - value: '{{ configMap:userdetailssecret:userid }}'
  3. 保存配置。

从 ConfigMap 中定义的键值对设置环境变量

您可以从 ConfigMap 中定义的键值对设置环境变量。函数在运行时可以将之前存储在 ConfigMap 中的值作为环境变量访问。这对于访问存储在 ConfigMap 中的值(例如用户的 ID)非常有用。

先决条件
  • OpenShift Serverless 运算符和 Knative Serving 已安装在集群上。

  • 您已安装 Knative (kn) CLI。

  • 您已创建了一个函数。

步骤
  1. 打开您的函数的func.yaml文件。

  2. 对于要分配给环境变量的每个 ConfigMap 键值对,请将以下 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 }}'
  3. 保存配置。

从 Secret 中定义的所有值设置环境变量

您可以从 Secret 中定义的所有值设置环境变量。函数在运行时可以将之前存储在 Secret 中的值作为环境变量访问。这对于同时访问存储在 Secret 中的一组值(例如,与用户相关的一组数据)非常有用。

先决条件
  • OpenShift Serverless 运算符和 Knative Serving 已安装在集群上。

  • 您已安装 Knative (kn) CLI。

  • 您已创建了一个函数。

步骤
  1. 打开您的函数的func.yaml文件。

  2. 对于要将其所有键值对作为环境变量导入的每个 Secret,请将以下 YAML 代码添加到envs部分:

    name: test
    namespace: ""
    runtime: go
    ...
    envs:
    - value: '{{ secret:mysecret }}' (1)
    1 mysecret替换为目标密钥的名称。

    例如,要访问存储在userdetailssecret中的所有用户数据,请使用以下 YAML 代码:

    name: test
    namespace: ""
    runtime: go
    ...
    envs:
    - value: '{{ configMap:userdetailssecret }}'
  3. 保存配置。

从 ConfigMap 中定义的所有值设置环境变量

您可以从 ConfigMap 中定义的所有值设置环境变量。函数在运行时可以将之前存储在 ConfigMap 中的值作为环境变量访问。这对于同时访问存储在 ConfigMap 中的一组值(例如,与用户相关的一组数据)非常有用。

先决条件
  • OpenShift Serverless 运算符和 Knative Serving 已安装在集群上。

  • 您已安装 Knative (kn) CLI。

  • 您已创建了一个函数。

步骤
  1. 打开您的函数的func.yaml文件。

  2. 对于要将其所有键值对作为环境变量导入的每个 ConfigMap,请将以下 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 }}'
  3. 保存文件。