10.3. 手动添加对 secret 和配置映射的功能访问


您可以将用于访问 secret 和配置映射的配置手动添加到您的功能中。这可能最好使用 kn func config 交互式实用程序和命令,例如您已有配置片段时。

10.3.1. 将 secret 挂载为卷

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

先决条件

  • 在集群中安装了 OpenShift Serverless Operator 和 Knative Serving。
  • 已安装 Knative (kn) CLI。
  • 您已创建了一个功能。

流程

  1. 为您的功能打开 func.yaml 文件。
  2. 对于您要挂载为卷的每个 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
  3. 保存配置。

10.3.2. 将配置映射挂载为卷

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

先决条件

  • 在集群中安装了 OpenShift Serverless Operator 和 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. 保存配置。

10.3.3. 从 secret 中定义的键值设置环境变量

您可以从定义为 secret 的键值设置环境变量。然后,之前存储在 secret 中的值可以被函数在运行时作为环境变量访问。这有助于获取存储在 secret 中的值,如用户的 ID。

先决条件

  • 在集群中安装了 OpenShift Serverless Operator 和 Knative Serving。
  • 已安装 Knative (kn) CLI。
  • 您已创建了一个功能。

流程

  1. 为您的功能打开 func.yaml 文件。
  2. 对于您要分配给环境变量的 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 }}'
  3. 保存配置。

10.3.4. 从配置映射中定义的键值设置环境变量

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

先决条件

  • 在集群中安装了 OpenShift Serverless Operator 和 Knative Serving。
  • 已安装 Knative (kn) CLI。
  • 您已创建了一个功能。

流程

  1. 为您的功能打开 func.yaml 文件。
  2. 对于您要分配给环境变量的配置映射键值对中的每个值,请将以下 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. 保存配置。

10.3.5. 从 secret 中定义的所有值设置环境变量

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

先决条件

  • 在集群中安装了 OpenShift Serverless Operator 和 Knative Serving。
  • 已安装 Knative (kn) CLI。
  • 您已创建了一个功能。

流程

  1. 为您的功能打开 func.yaml 文件。
  2. 对于您要导入所有键值对作为环境变量的每个 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 }}'
  3. 保存配置。

10.3.6. 从配置映射中定义的所有值设置环境变量

您可以从配置映射中定义的所有值设置环境变量。然后,之前存储在配置映射中的值可以被函数在运行时作为环境变量访问。这可用于同时访问配置映射中存储的值集合,例如,一组与用户相关的数据。

先决条件

  • 在集群中安装了 OpenShift Serverless Operator 和 Knative Serving。
  • 已安装 Knative (kn) CLI。
  • 您已创建了一个功能。

流程

  1. 为您的功能打开 func.yaml 文件。
  2. 对于您要导入所有键值对作为环境变量的每个配置映射,请将以下 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. 保存该文件。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.