Référencement de secrets et de mappes de configuration en tant que fichiers montés (Interface CLI)
Dans Code Engine, après avoir créé des secrets et des mappes de configuration, les informations stockées sous forme de paires clé-valeur peuvent être consommées par votre application ou votre charge de travail sous forme de fichier monté. Vous ne pouvez pas utiliser cette méthode avec des fonctions.
L'utilisation de secrets et de mappes de configuration en tant que fichiers montés est similaire à l'utilisation de secrets et de mappes de configuration en tant que variables d'environnement.
Lorsque vous utilisez des secrets, les données sont sauvegardées sous forme de chaîne codée. Les données ne sont pas codées lorsqu'elles sont ajoutées à l'environnement en tant que variable d'environnement ou sous forme de fichier monté.
Référencement d'un secret en tant que fichier monté via l'interface de ligne de commande
Dans ce scénario, créez un secret puis référencez le secret sous la forme d'un fichier monté lorsque vous exécutez une application, qui utilise l'image icr.io/codeengine/ce-secret-vol.
L'exemple d'image, icr.io/codeengine/ce-secret-vol, lit chaque fichier dans le répertoire /mysecrets et imprime le nom du fichier et son contenu dans la sortie standard pour chaque demande de sorte que la sortie se
trouve dans les journaux de l'application. Pour plus d'informations sur ce modèle d'application, voir Exemple de secrets en tant que volumes(secrets-vol)dans le référentiel IBM Cloud Code Engine GitHub.
Ce scénario utilise un secret, mais vous pouvez effectuer les mêmes étapes pour référencer une mappe de configuration en tant que fichier monté en remplaçant configmap par secret dans les commandes.
-
Créez un secret nommé
mysecret, puis spécifiez les paires clé-valeur pour le secret à l'aide de l'option--from-literal. Exemple :ibmcloud ce secret create -n mysecret --from-literal apikey=abcdefgh -
Créez l'application
myappqui utilise l'imageicr.io/codeengine/ce-secret-vol. Utilisez l'option--mount-secretpour monter le contenu du secretmysecretou l'ajouter à l'application dans le répertoire/mysecrets. Avec l'option--min-scale=1, l'application a toujours une instance en cours d'exécution et n'est pas mise à l'échelle à zéro. Le fait de configurer l'application afin de toujours avoir une instance en cours d'exécution est utile lorsque vous affichez les journaux. Par exemple :ibmcloud ce app create --name myapp --image icr.io/codeengine/ce-secret-vol --mount-secret /mysecrets=mysecret --min-scale 1Exemple de sortie
Creating application 'myapp'... [...] Run 'C:\Program Files\IBM\Cloud\bin\ibmcloud.exe ce application get -n myapp' to check the application status. OK https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud -
Copiez l'URL depuis la sortie précédente et appelez l'application avec
curl. Exemple :curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud -
Affichez les journaux depuis votre application. Dans cet exemple, l'application
myapputilise l'exemple d'imageicr.io/codeengine/ce-secret-vol. Cette application lit chaque fichier dans le répertoire/mysecretset imprime le nom du fichier et son contenu dans la sortie standard pour chaque demande, afin que la sortie soit contenue dans les journaux de l'application. Le nom du fichier estapikey.ibmcloud ce app logs --app myappExemple de sortie
Getting logs for all instances of application 'myapp'... OK myapp-b3gxd-1-deployment-6f45dcf7f4-nw59z/user-container: Listening on port 8080 apikey: abcdefgh -
Mettez à jour le secret
mysecretafin de changer la valeur pour les paires clé-valeurapikey. Exemple :ibmcloud ce secret update -n mysecret --from-literal apikey=qrst -
Appelez à nouveau l'application.
curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud -
Affichez les journaux depuis votre application.
ibmcloud ce app logs --app myappExemple de sortie
Getting logs for all instances of application 'myapp'... OK myapp-b3gxd-1-deployment-6f45dcf7f4-nw59z/user-container: Listening on port 8080 apikey: abcdefgh apikey: qrst
Vous avez ajouté des données stockées dans des secrets (ou des mappes de configuration) à votre application sous la forme d'un fichier monté, puis vous avez mis à jour les données stockées dans le secret. Il n'est pas nécessaire de redémarrer l'application pour que celle-ci utilise le secret référencé mis à jour.