×

将函数部署到集群后,它们可以访问存储在密钥和配置映射中的数据。此数据可以作为卷挂载,或分配给环境变量。您可以使用 Knative CLI 交互式配置此访问权限,也可以通过手动编辑函数配置 YAML 文件来配置。

要访问密钥和配置映射,必须在集群上部署函数。此功能不适用于本地运行的函数。

如果无法访问密钥或配置映射值,则部署将失败并显示一条错误消息,其中指定了无法访问的值。

交互式修改函数对密钥和配置映射的访问

您可以使用kn func config交互式实用程序来管理函数访问的密钥和配置映射。可用的操作包括列出、添加和删除存储在配置映射和密钥中的值作为环境变量,以及列出、添加和删除卷。此功能使您可以管理集群上存储的哪些数据可供您的函数访问。

前提条件
  • 集群上已安装 OpenShift Serverless Operator 和 Knative Serving。

  • 您已安装 Knative (kn) CLI。

  • 您已创建了一个函数。

步骤
  1. 在函数项目目录中运行以下命令

    $ kn func config

    或者,您可以使用--path-p选项指定函数项目目录。

  2. 使用交互式界面执行必要的操作。例如,使用该实用程序列出已配置的卷会产生类似于此的输出

    $ kn func config
    ? What do you want to configure? Volumes
    ? What operation do you want to perform? List
    Configured Volumes mounts:
    - Secret "mysecret" mounted at path: "/workspace/secret"
    - Secret "mysecret2" mounted at path: "/workspace/secret2"

    此方案显示了交互式实用程序中可用的所有操作以及如何导航到这些操作

    kn func config
       ├─> Environment variables
       │               ├─> Add
       │               │    ├─> ConfigMap: Add all key-value pairs from a config map
       │               │    ├─> ConfigMap: Add value from a key in a config map
       │               │    ├─> Secret: Add all key-value pairs from a secret
       │               │    └─> Secret: Add value from a key in a secret
       │               ├─> List: List all configured environment variables
       │               └─> Remove: Remove a configured environment variable
       └─> Volumes
               ├─> Add
               │    ├─> ConfigMap: Mount a config map as a volume
               │    └─> Secret: Mount a secret as a volume
               ├─> List: List all configured volumes
               └─> Remove: Remove a configured volume
  3. 可选。部署函数以使更改生效

    $ kn func deploy -p test

使用专用命令交互式修改函数对密钥和配置映射的访问

每次运行kn func config实用程序时,都需要浏览整个对话才能选择所需的操作,如上一节所示。为了节省步骤,您可以通过运行更具体的kn func config命令形式来直接执行特定操作。

  • 列出已配置的环境变量

    $ kn func config envs [-p <function-project-path>]
  • 向函数配置中添加环境变量

    $ kn func config envs add [-p <function-project-path>]
  • 从函数配置中删除环境变量

    $ kn func config envs remove [-p <function-project-path>]
  • 列出已配置的卷

    $ kn func config volumes [-p <function-project-path>]
  • 向函数配置中添加卷

    $ kn func config volumes add [-p <function-project-path>]
  • 从函数配置中删除卷

    $ kn func config volumes remove [-p <function-project-path>]