6.9. Configuration du projet de fonction dans func.yaml
Le fichier func.yaml
contient la configuration de votre projet de fonction. Les valeurs spécifiées dans func.yaml
sont utilisées lorsque vous exécutez une commande kn func
. Par exemple, lorsque vous exécutez la commande kn func build
, la valeur du champ build
est utilisée. Dans certains cas, vous pouvez remplacer ces valeurs par des drapeaux de ligne de commande ou des variables d'environnement.
6.9.1. Champs configurables dans func.yaml Copier lienLien copié sur presse-papiers!
La plupart des champs de func.yaml
sont générés automatiquement lorsque vous créez, construisez et déployez votre fonction. Cependant, il existe également des champs que vous modifiez manuellement pour changer certaines choses, comme le nom de la fonction ou le nom de l'image.
6.9.1.1. buildEnvs Copier lienLien copié sur presse-papiers!
Le champ buildEnvs
vous permet de définir des variables d'environnement qui seront disponibles pour l'environnement qui construit votre fonction. Contrairement aux variables définies à l'aide de envs
, une variable définie à l'aide de buildEnv
n'est pas disponible pendant l'exécution de la fonction.
Vous pouvez définir une variable buildEnv
directement à partir d'une valeur. Dans l'exemple suivant, la variable buildEnv
nommée EXAMPLE1
se voit directement attribuer la valeur one
:
buildEnvs: - name: EXAMPLE1 value: one
buildEnvs:
- name: EXAMPLE1
value: one
Vous pouvez également définir une variable buildEnv
à partir d'une variable d'environnement locale. Dans l'exemple suivant, la variable buildEnv
nommée EXAMPLE2
se voit attribuer la valeur de la variable d'environnement locale LOCAL_ENV_VAR
:
buildEnvs: - name: EXAMPLE1 value: '{{ env:LOCAL_ENV_VAR }}'
buildEnvs:
- name: EXAMPLE1
value: '{{ env:LOCAL_ENV_VAR }}'
6.9.1.2. envs Copier lienLien copié sur presse-papiers!
Le champ envs
vous permet de définir des variables d'environnement qui seront disponibles pour votre fonction au moment de l'exécution. Vous pouvez définir une variable d'environnement de différentes manières :
- Directement à partir d'une valeur.
- À partir d'une valeur assignée à une variable d'environnement locale. Voir la section "Referencing local environment variables from func.yaml fields" pour plus d'informations.
- À partir d'une paire clé-valeur stockée dans un secret ou une carte de configuration.
- Vous pouvez également importer toutes les paires clé-valeur stockées dans un secret ou une carte de configuration, les clés étant utilisées comme noms des variables d'environnement créées.
Cet exemple montre les différentes façons de définir une variable d'environnement :
- 1
- Variable d'environnement définie directement à partir d'une valeur.
- 2
- Variable d'environnement définie à partir d'une valeur attribuée à une variable d'environnement locale.
- 3
- Variable d'environnement attribuée à partir d'une paire clé-valeur stockée dans un secret.
- 4
- Variable d'environnement attribuée à partir d'une paire clé-valeur stockée dans une carte de configuration.
- 5
- Un ensemble de variables d'environnement importées à partir de paires clé-valeur d'un secret.
- 6
- Un ensemble de variables d'environnement importées à partir des paires clé-valeur d'une carte de configuration.
6.9.1.3. constructeur Copier lienLien copié sur presse-papiers!
Le champ builder
indique la stratégie utilisée par la fonction pour construire l'image. Il accepte les valeurs pack
ou s2i
.
6.9.1.4. construire Copier lienLien copié sur presse-papiers!
Le champ build
indique comment la fonction doit être construite. La valeur local
indique que la fonction est construite localement sur votre machine. La valeur git
indique que la fonction est construite sur un cluster en utilisant les valeurs spécifiées dans le champ git
.
6.9.1.5. volumes Copier lienLien copié sur presse-papiers!
Le champ volumes
vous permet de monter les secrets et les cartes de configuration en tant que volume accessible à la fonction au chemin spécifié, comme le montre l'exemple suivant :
6.9.1.6. options Copier lienLien copié sur presse-papiers!
Le champ options
vous permet de modifier les propriétés du service Knative pour la fonction déployée, telles que l'autoscaling. Si ces options ne sont pas définies, les options par défaut sont utilisées.
Les options suivantes sont disponibles :
scale
-
min
: Le nombre minimum de répliques. Doit être un nombre entier non négatif. La valeur par défaut est 0. -
max
: Nombre maximal de répliques. Il doit s'agir d'un nombre entier non négatif. La valeur par défaut est 0, ce qui signifie qu'il n'y a pas de limite. -
metric
: Définit quel type de métrique est surveillé par l'Autoscaler. Il peut être défini surconcurrency
, qui est la valeur par défaut, ou surrps
. -
target
: Recommandation sur le moment de la mise à l'échelle en fonction du nombre de requêtes entrantes simultanées. L'optiontarget
peut être une valeur flottante supérieure à 0,01. La valeur par défaut est 100, sauf si l'optionoptions.resources.limits.concurrency
est définie, auquel castarget
prend sa valeur par défaut. -
utilization
: Pourcentage d'utilisation de requêtes simultanées autorisé avant la mise à l'échelle. Il peut s'agir d'une valeur flottante comprise entre 1 et 100. La valeur par défaut est 70.
-
resources
requests
-
cpu
: Une demande de ressource CPU pour le conteneur avec la fonction déployée. -
memory
: Une demande de ressource mémoire pour le conteneur avec la fonction déployée.
-
limits
-
cpu
: Une limite de ressources CPU pour le conteneur avec la fonction déployée. -
memory
: Une limite de ressources mémoire pour le conteneur avec la fonction déployée. -
concurrency
: Limite stricte du nombre de requêtes simultanées pouvant être traitées par une seule réplique. Il peut s'agir d'une valeur entière supérieure ou égale à 0. La valeur par défaut est 0, ce qui signifie qu'il n'y a pas de limite.
-
Voici un exemple de configuration des options de scale
:
6.9.1.7. image Copier lienLien copié sur presse-papiers!
Le champ image
définit le nom de l'image de votre fonction après sa construction. Vous pouvez modifier ce champ. Si vous le faites, la prochaine fois que vous exécuterez kn func build
ou kn func deploy
, l'image de la fonction sera créée avec le nouveau nom.
6.9.1.8. imageDigest Copier lienLien copié sur presse-papiers!
Le champ imageDigest
contient le hachage SHA256 du manifeste de l'image lorsque la fonction est déployée. Ne pas modifier cette valeur.
6.9.1.9. étiquettes Copier lienLien copié sur presse-papiers!
Le champ labels
vous permet de définir des étiquettes sur une fonction déployée.
Vous pouvez définir une étiquette directement à partir d'une valeur. Dans l'exemple suivant, l'étiquette de la clé role
se voit directement attribuer la valeur backend
:
labels: - key: role value: backend
labels:
- key: role
value: backend
Vous pouvez également définir une étiquette à partir d'une variable d'environnement locale. Dans l'exemple suivant, l'étiquette de la touche author
se voit attribuer la valeur de la variable d'environnement locale USER
:
labels: - key: author value: '{{ env:USER }}'
labels:
- key: author
value: '{{ env:USER }}'
6.9.1.10. nom Copier lienLien copié sur presse-papiers!
Le champ name
définit le nom de votre fonction. Cette valeur est utilisée comme nom de votre service Knative lorsqu'il est déployé. Vous pouvez modifier ce champ pour renommer la fonction lors des déploiements ultérieurs.
6.9.1.11. espace de noms Copier lienLien copié sur presse-papiers!
Le champ namespace
indique l'espace de noms dans lequel votre fonction est déployée.
6.9.1.12. durée d'exécution Copier lienLien copié sur presse-papiers!
Le champ runtime
indique la langue d'exécution de votre fonction, par exemple python
.
6.9.2. Référencement des variables d'environnement locales à partir des champs de func.yaml Copier lienLien copié sur presse-papiers!
Si vous souhaitez éviter de stocker des informations sensibles telles qu'une clé API dans la configuration de la fonction, vous pouvez ajouter une référence à une variable d'environnement disponible dans l'environnement local. Pour ce faire, modifiez le champ envs
dans le fichier func.yaml
.
Conditions préalables
- Vous devez avoir créé le projet de fonction.
- L'environnement local doit contenir la variable à laquelle vous souhaitez faire référence.
Procédure
Pour faire référence à une variable d'environnement locale, utilisez la syntaxe suivante :
{{ env:ENV_VAR }}
{{ env:ENV_VAR }}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Remplacez
ENV_VAR
par le nom de la variable de l'environnement local que vous souhaitez utiliser.Par exemple, vous pouvez disposer de la variable
API_KEY
dans l'environnement local. Vous pouvez assigner sa valeur à la variableMY_API_KEY
, que vous pouvez ensuite utiliser directement dans votre fonction :Exemple de fonction
Copy to Clipboard Copied! Toggle word wrap Toggle overflow