6.10. Accès aux secrets et aux cartes de configuration à partir de fonctions
Une fois que vos fonctions ont été déployées dans le cluster, elles peuvent accéder aux données stockées dans les secrets et les cartes de configuration. Ces données peuvent être montées en tant que volumes ou assignées à des variables d'environnement. Vous pouvez configurer cet accès de manière interactive en utilisant le CLI Knative, ou manuellement en éditant le fichier YAML de configuration de la fonction.
Pour accéder aux secrets et aux cartes de configuration, la fonction doit être déployée sur le cluster. Cette fonctionnalité n'est pas disponible pour une fonction exécutée localement.
Si une valeur de secret ou de carte de configuration n'est pas accessible, le déploiement échoue avec un message d'erreur spécifiant les valeurs inaccessibles.
6.10.1. Modifier l'accès des fonctions aux secrets et aux cartes de configuration de manière interactive Copier lienLien copié sur presse-papiers!
Vous pouvez gérer les secrets et les cartes de configuration auxquels votre fonction accède en utilisant l'utilitaire interactif kn func config
. Les opérations disponibles comprennent l'énumération, l'ajout et la suppression des valeurs stockées dans les cartes de configuration et les secrets en tant que variables d'environnement, ainsi que l'énumération, l'ajout et la suppression des volumes. Cette fonctionnalité vous permet de gérer les données stockées sur le cluster qui sont accessibles à votre fonction.
Conditions préalables
- L'opérateur OpenShift Serverless et Knative Serving sont installés sur le cluster.
-
Vous avez installé le CLI Knative (
kn
). - Vous avez créé une fonction.
Procédure
Exécutez la commande suivante dans le répertoire du projet de la fonction :
kn func config
$ kn func config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vous pouvez également spécifier le répertoire du projet de la fonction à l'aide de l'option
--path
ou-p
.Utilisez l'interface interactive pour effectuer l'opération nécessaire. Par exemple, l'utilisation de l'utilitaire pour dresser la liste des volumes configurés produit un résultat similaire à celui-ci :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ce schéma montre toutes les opérations disponibles dans l'utilitaire interactif et comment y accéder :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Facultatif. Déployez la fonction pour que les modifications soient prises en compte :
kn func deploy -p test
$ kn func deploy -p test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.10.2. Modifier l'accès des fonctions aux secrets et aux cartes de configuration de manière interactive en utilisant des commandes spécialisées Copier lienLien copié sur presse-papiers!
Chaque fois que vous lancez l'utilitaire kn func config
, vous devez parcourir l'ensemble de la boîte de dialogue pour sélectionner l'opération dont vous avez besoin, comme indiqué dans la section précédente. Pour gagner du temps, vous pouvez exécuter directement une opération spécifique en lançant une forme plus spécifique de la commande kn func config
:
Pour dresser la liste des variables d'environnement configurées :
kn func config envs [-p <function-project-path>]
$ kn func config envs [-p <function-project-path>]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour ajouter des variables d'environnement à la configuration de la fonction :
kn func config envs add [-p <function-project-path>]
$ kn func config envs add [-p <function-project-path>]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour supprimer les variables d'environnement de la configuration de la fonction :
kn func config envs remove [-p <function-project-path>]
$ kn func config envs remove [-p <function-project-path>]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour dresser la liste des volumes configurés :
kn func config volumes [-p <function-project-path>]
$ kn func config volumes [-p <function-project-path>]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour ajouter un volume à la configuration des fonctions :
kn func config volumes add [-p <function-project-path>]
$ kn func config volumes add [-p <function-project-path>]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pour supprimer un volume de la configuration des fonctions :
kn func config volumes remove [-p <function-project-path>]
$ kn func config volumes remove [-p <function-project-path>]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.10.3. Ajout d'un accès fonctionnel aux secrets et aux cartes de configuration manuellement Copier lienLien copié sur presse-papiers!
Vous pouvez ajouter manuellement la configuration pour accéder aux secrets et aux cartes de configuration à votre fonction. Cela peut être préférable à l'utilisation de l'utilitaire et des commandes interactives kn func config
, par exemple lorsque vous disposez d'un extrait de configuration existant.
6.10.3.1. Montage d'un secret en tant que volume Copier lienLien copié sur presse-papiers!
Vous pouvez monter un secret comme un volume. Une fois qu'un secret est monté, vous pouvez y accéder à partir de la fonction comme un fichier normal. Cela vous permet de stocker sur le cluster des données nécessaires à la fonction, par exemple une liste d'URI auxquels la fonction doit accéder.
Conditions préalables
- L'opérateur OpenShift Serverless et Knative Serving sont installés sur le cluster.
-
Vous avez installé le CLI Knative (
kn
). - Vous avez créé une fonction.
Procédure
-
Ouvrez le fichier
func.yaml
de votre fonction. Pour chaque secret que vous souhaitez monter en tant que volume, ajoutez le fichier YAML suivant à la section
volumes
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Remplacer
mysecret
par le nom du secret cible. Remplacez
/workspace/secret
par le chemin où vous souhaitez monter le secret.Par exemple, pour monter le secret
addresses
, utilisez le langage YAML suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Remplacer
- Sauvegarder la configuration.
6.10.3.2. Montage d'une carte de configuration en tant que volume Copier lienLien copié sur presse-papiers!
Vous pouvez monter une carte de configuration comme un volume. Une fois qu'une carte de configuration est montée, vous pouvez y accéder à partir de la fonction comme un fichier normal. Cela vous permet de stocker sur le cluster les données nécessaires à la fonction, par exemple une liste d'URI auxquels la fonction doit accéder.
Conditions préalables
- L'opérateur OpenShift Serverless et Knative Serving sont installés sur le cluster.
-
Vous avez installé le CLI Knative (
kn
). - Vous avez créé une fonction.
Procédure
-
Ouvrez le fichier
func.yaml
de votre fonction. Pour chaque carte de configuration que vous souhaitez monter en tant que volume, ajoutez le fichier YAML suivant à la section
volumes
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Remplacez
myconfigmap
par le nom de la carte de configuration cible. Remplacez
/workspace/configmap
par le chemin où vous souhaitez monter la carte de configuration.Par exemple, pour monter la carte de configuration
addresses
, utilisez le fichier YAML suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Remplacez
- Sauvegarder la configuration.
6.10.3.3. Définition d'une variable d'environnement à partir d'une valeur clé définie dans un secret Copier lienLien copié sur presse-papiers!
Vous pouvez définir une variable d'environnement à partir d'une valeur clé définie comme un secret. Une valeur précédemment stockée dans un secret peut alors être accédée en tant que variable d'environnement par la fonction au moment de l'exécution. Cela peut être utile pour accéder à une valeur stockée dans un secret, comme l'identifiant d'un utilisateur.
Conditions préalables
- L'opérateur OpenShift Serverless et Knative Serving sont installés sur le cluster.
-
Vous avez installé le CLI Knative (
kn
). - Vous avez créé une fonction.
Procédure
-
Ouvrez le fichier
func.yaml
de votre fonction. Pour chaque valeur d'une paire clé-valeur secrète que vous souhaitez affecter à une variable d'environnement, ajoutez le fichier YAML suivant à la section
envs
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Remplacez
EXAMPLE
par le nom de la variable d'environnement. -
Remplacer
mysecret
par le nom du secret cible. Remplacer
key
par la clé correspondant à la valeur cible.Par exemple, pour accéder à l'identifiant de l'utilisateur stocké dans
userdetailssecret
, utilisez le langage YAML suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Remplacez
- Sauvegarder la configuration.
6.10.3.4. Définition d'une variable d'environnement à partir d'une valeur clé définie dans une carte de configuration Copier lienLien copié sur presse-papiers!
Vous pouvez définir une variable d'environnement à partir d'une valeur clé définie dans une carte de configuration. Une valeur précédemment stockée dans une carte de configuration peut alors être accédée en tant que variable d'environnement par la fonction au moment de l'exécution. Cela peut être utile pour accéder à une valeur stockée dans une carte de configuration, telle que l'identifiant d'un utilisateur.
Conditions préalables
- L'opérateur OpenShift Serverless et Knative Serving sont installés sur le cluster.
-
Vous avez installé le CLI Knative (
kn
). - Vous avez créé une fonction.
Procédure
-
Ouvrez le fichier
func.yaml
de votre fonction. Pour chaque valeur d'une paire clé-valeur de la carte de configuration que vous souhaitez affecter à une variable d'environnement, ajoutez le fichier YAML suivant à la section
envs
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Remplacez
EXAMPLE
par le nom de la variable d'environnement. -
Remplacez
myconfigmap
par le nom de la carte de configuration cible. Remplacer
key
par la clé correspondant à la valeur cible.Par exemple, pour accéder à l'identifiant de l'utilisateur stocké dans
userdetailsmap
, utilisez le langage YAML suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
Remplacez
- Sauvegarder la configuration.
6.10.3.5. Définition de variables d'environnement à partir de toutes les valeurs définies dans un secret Copier lienLien copié sur presse-papiers!
Vous pouvez définir une variable d'environnement à partir de toutes les valeurs définies dans un secret. Les valeurs précédemment stockées dans un secret peuvent alors être accédées en tant que variables d'environnement par la fonction au moment de l'exécution. Cela peut être utile pour accéder simultanément à une collection de valeurs stockées dans un secret, par exemple, un ensemble de données relatives à un utilisateur.
Conditions préalables
- L'opérateur OpenShift Serverless et Knative Serving sont installés sur le cluster.
-
Vous avez installé le CLI Knative (
kn
). - Vous avez créé une fonction.
Procédure
-
Ouvrez le fichier
func.yaml
de votre fonction. Pour chaque secret pour lequel vous souhaitez importer toutes les paires clé-valeur en tant que variables d'environnement, ajoutez le YAML suivant à la section
envs
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Remplacer
mysecret
par le nom du secret cible.
Par exemple, pour accéder à toutes les données de l'utilisateur qui sont stockées dans
userdetailssecret
, utilisez le langage YAML suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Sauvegarder la configuration.
6.10.3.6. Définition de variables d'environnement à partir de toutes les valeurs définies dans une carte de configuration Copier lienLien copié sur presse-papiers!
Vous pouvez définir une variable d'environnement à partir de toutes les valeurs définies dans une carte de configuration. Les valeurs précédemment stockées dans une carte de configuration peuvent alors être accédées en tant que variables d'environnement par la fonction au moment de l'exécution. Cela peut être utile pour accéder simultanément à une collection de valeurs stockées dans une carte de configuration, par exemple, un ensemble de données relatives à un utilisateur.
Conditions préalables
- L'opérateur OpenShift Serverless et Knative Serving sont installés sur le cluster.
-
Vous avez installé le CLI Knative (
kn
). - Vous avez créé une fonction.
Procédure
-
Ouvrez le fichier
func.yaml
de votre fonction. Pour chaque carte de configuration pour laquelle vous souhaitez importer toutes les paires clé-valeur en tant que variables d'environnement, ajoutez le YAML suivant à la section
envs
:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Remplacez
myconfigmap
par le nom de la carte de configuration cible.
Par exemple, pour accéder à toutes les données de l'utilisateur qui sont stockées dans
userdetailsmap
, utilisez le langage YAML suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Enregistrer le fichier.