Référencement de secrets et de mappes de configuration comportant des variables d'environnement (Interface CLI)

Dans Code Engine, après avoir créé des secrets et des cartes de configuration, les informations stockées sous forme de paires clé-valeur peuvent être consommées par votre application, votre travail ou votre charge de travail de fonction en tant que variable d'environnement en faisant référence au secret ou à la carte de configuration complète ou en faisant référence à des clés individuelles.

L'utilisation de secrets en tant que variables d'environnement est similaire à l'utilisation de mappes de configuration en tant que variables d'environnement. Lorsque vous utilisez des secrets, les données sont codées.

Tenez compte des informations suivantes lorsque vous mettez à jour une application, un travail ou une fonction dont la variable d'environnement fait référence à des cartes de configuration ou à des secrets.

Lorsque vous mettez à jour une application, un travail ou une fonction dont la variable d'environnement fait entièrement référence à une carte de configuration (ou à un secret) pour qu'elle fasse entièrement référence à une carte de configuration (ou à un secret) différente, les références complètes remplacent les autres références complètes dans l'ordre dans lequel elles sont définies (le dernier ensemble référencé remplace le premier ensemble).

Lorsque vous mettez à jour une application, un travail ou une fonction dont la variable d'environnement fait référence à une clé dans une carte de configuration (ou un secret) pour référencer la même clé dans une autre carte de configuration (ou un autre secret), c'est la dernière clé référencée qui est utilisée.

Lorsque vous mettez à jour une application, un travail ou une fonction dont la variable d'environnement fait entièrement référence à une carte de configuration (ou à un secret) afin d'ajouter une référence à une clé spécifique, la référence à la clé spécifique remplace la référence à la carte de configuration complète (ou au secret).

Pour obtenir des informations de base sur le référencement de mappes de configuration ou de secrets via l'interface de ligne de commande, voir Référencement de mappes de configuration via l'interface de ligne de commande et Référencement de secrets via l'interface de ligne de commande.

Les scénarios ci-après peuvent être exécutés pour les secrets ou les mappes de configuration.

Référencement d'un secret intégral via l'interface de ligne de commande

Les secrets et les mappes de configuration sont des paires clé-valeur. Les variables d'environnement sont le résultat de la fourniture d'une entrée par clé lors du référencement de la totalité du secret ou de la mappe de configuration. Si plusieurs valeurs confidentielles (ou mappes de configuration) contiennent la même clé nommée, vous obtenez uniquement l'une des clés du secret ou de la configuration référencée.

Dans le cadre de ce scénario, vous allez créer un secret, qui contient des paires valeur-clé pour un nom d'utilisateur et un mot de passe, puis référencer le secret intégral lors de l'exécution d'un travail. Vous pouvez mettre à jour le secret pour ajouter une clé, puis démontrer l'utilisation de la nouvelle clé dans un travail. Ce scénario utilise un secret, mais vous pouvez effectuer les mêmes étapes pour référencer intégralement une mappe de configuration en remplaçant configmap par secret dans les commandes.

  1. Créez le secret mydatabasesec et spécifiez les paires clé-valeur pour un nom d'utilisateur et un mot de passe à l'aide de l'option --from-literal.

    ibmcloud ce secret create -n mydatabasesec --from-literal username=reader --from-literal password=abcd
    
  2. Affichez des détails sur le secret mydatabasesec en utilisant la commande secret get. Les valeurs pour les clés password et username du secret sont codées.

    ibmcloud ce secret get -n mydatabasesec
    

    Exemple de sortie

    Getting generic secret 'mydatabasesec'...
    OK
    
    Name:          mydatabasesec
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           17s
    Created:       2020-10-14 14:07:59 -0400 EDT
    
    Data:
    ---
    password: YWJjZA==
    username: cmVhZGVy
    
  3. Définissez une variable d'environnement sur un travail pour faire référence au secret intégral mydatabasesec. Dans cet exemple, utilisez l'option --env-from-secret PREFIX=NAMEPREFIX=NAMEindique de faire référence à la mappe de configuration complète dans laquelle chaque clé est préfixée avecPREFIX. En utilisant le préfixeread_, chaque clé est préfixée avecread_. Etant donné que l'image busybox n'affiche aucune sortie par défaut, l'option -c env indique que toutes les variables d'environnement du conteneur doivent être imprimées.

    ibmcloud ce job create -n demo -i busybox -c env --env-from-secret read_=mydatabasesec
    

    Envisagez d'utiliser un préfixe pour vous assurer que toutes les variables d'environnement de votre travail ou de votre application sont uniques. Par exemple, si vous avez un secret avec les clés, a, betc, ces variables d'environnement s'affichent sous la formea, betc. Toutefois, si vous ajoutez un préfixe tel queread_, les clés s'affichent avec le préfixe, par exemple read_a, read_bet read_c. L'utilisation d'un préfixe regroupe également vos variables d'environnement dans l'application de référence, le travail ou l'exécution du travail, et vous permet d'éviter les doublons de clés dans les fichiers de mappes de configuration ou les secrets.

  4. (Facultatif) Affichez les détails du travail demo. La sortie affiche la référence intégrale au secret mydatabasesec.

    ibmcloud ce job get -n demo
    

    Exemple de sortie

    Getting job 'demo'...
    OK
    
    Name:          demo
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           6s
    Created:      2022-05-04T15:04:16-04:00
    
    Commands:                 
        env  
    Environment Variables:    
        Type                   Name                   Value
        Secret full reference  read_=mydatabasesec
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
  5. Exécutez un travail qui utilise la configuration du travail demo.

    ibmcloud ce jobrun submit --name demo1 --job demo
    
  6. Affichez les journaux de l'exécution de travail. Vous pouvez afficher les journaux de toutes les instances d'un travail exécuté ou afficher les journaux d'une instance spécifique d'une exécution de travail. Dans cet exemple, affichez les journaux de l'exécution de travail demo1. Notez dans la sortie de journal que les clés du secret complet mydatabasesecsont affichées avec le préfixeread_. Les valeurs de secret sont ajoutées à l'environnement codé.

    ibmcloud ce jobrun logs --jobrun demo1
    

    Exemple de sortie

    Getting logs for all instances of job run 'demo1'...
    Getting jobrun 'demo1'...
    Getting instances of jobrun 'demo1'...
    [...]
    
    HOSTNAME=demo1-0-0
    read_username=reader
    read_password=abcd
    JOB_INDEX=0
    CE_SUBDOMAIN=8aaon2dfwa0
    CE_JOBRUN=demo1
    [...]
    
  7. Mettez à jour le secret mydatabasesec pour ajouter une clé à l'aide de l'option --from-file. Cette option utilise le format --from-file FILE ou --from-file KEY=FILE. Dans la commande ci-après, certificate est la clé et cert.pem est le nom du fichier.

    ibmcloud ce secret update -n mydatabasesec --from-file certificate=cert.pem
    
  8. Affichez les détails sur le secret mydatabasesec mis à jour en utilisant la commande secret get. Le secret contient désormais trois clés : certificate, password et username. Les valeurs de secret sont codées.

    ibmcloud ce secret get -n mydatabasesec
    

    Exemple de sortie

    Getting generic secret 'mydatabasesec'...
    OK
    
    Name:          mydatabasesec
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           4m13s
    Created:       2020-10-14 13:35:43 -0400 EDT
    
    Data:
    ---
    certificate: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tLS0tDQphc2RmO2Frc2pkZmxrYWpzZGZsa2phc2xka2ZqYWxza2RqZmxha3NqZGZsaw0KLS0tLS1FTkQgQ0VSVEZJQ0lBVEUtLS0tLS0tLS0t
    password: YWJjZA==
    username: cmVhZGVy
    
  9. Exécutez un travail qui utilise le travail demo. Auparavant, vous faisiez référence au secret intégral mydatabasesec à partir du travail demo. Pour qu'un travail utilise le secret mis à jour avec la paire valeur-clé certificate ajoutée, soumettez une nouvelle exécution de travail. Pour mettre à jour une application pour qu'elle utilise le secret mis à jour, redémarrez-la.

    ibmcloud ce jobrun submit --name demo2 --job demo
    
  10. Affichez les journaux de l'exécution de travail à l'aide de la commande ibmcloud ce jobrun logs. Vous pouvez afficher les journaux de toutes les instances d'un travail exécuté ou afficher les journaux d'une instance spécifique d'une exécution de travail. Pour afficher les journaux d'une instance spécifique de l'exécution de travail, utilisez l'option --instance avec la commande jobrun logs. Si nécessaire, utilisez la commande jobrun get --name demo2 pour afficher les détails de cette exécution de travail, y compris ses instances. Cet exemple affiche les journaux de l'instance en cours de demo2-0-0, où demo2 est le nom de l'exécution de travail, 0 est la valeur de arrayindex et 0 est la valeur de retryindex. Notez que dans la sortie de journal, les clés certificate, username et password du secret intégral mydatabasesec sont affichées. Les valeurs de secret sont ajoutées à l'environnement codé.

ibmcloud ce jobrun logs --instance demo2-0-0

Exemple de sortie

Getting logs for job run instance 'demo2-0-0'...
[...]

read_certificate=-----BEGIN CERTIFICATE--------
asdf;aksjdflkajsdflkjasldkfjalskdjflaksjdflk
-----END CERTFICIATE----------
read_password=abcd
read_username=reader

Référencement de clés individuelles d'une mappe de configuration via l'interface de ligne de commande

Dans le cadre de ce scénario, nous allons créer une mappe de configuration qui contient plusieurs paires valeur-clé, puis référencer les clés spécifiques d'un travail. Ce scénario utilise une mappe de configuration, mais vous pouvez effectuer les mêmes étapes générales pour référencer des clés individuelles avec un secret en remplaçant secret par configmap dans les commandes.

  1. Créez la mappe de configuration mydatabase et spécifiez les paires clé-valeur pour un nom et une URL à l'aide de l'option --from-literal KEY=VALUE.

    ibmcloud ce configmap create -n mydatabasecm --from-literal name=myname --from-literal url=myurl
    
  2. Affichez les détails sur la mappe de configuration mydatabasecm en utilisant la commande configmap get.

    ibmcloud ce configmap get -n mydatabasecm
    

    Exemple de sortie

    Getting configmap 'mydatabasecm'...
    OK
    
    Name:          mydatabasecm
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           16s
    Created:       2020-10-14 13:31:19 -0400 EDT
    
    Data:
    ---
    name: myname
    url: myurl
    
  3. Définissez une variable d'environnement sur un travail pour faire référence à la clé url de la mappe de configuration mydatabasecm. Utilisez l'option --env-from-configmap NAME:KEY_A,KEY_B, où NAME:KEY_A indique qu'il convient de faire référence à la clé KEY_A de la mappe de configuration.

    ibmcloud ce job create --name keydemo --image busybox --command env --env-from-configmap mydatabasecm:url
    
  4. Exécutez un travail qui utilise le travail keydemo.

    ibmcloud ce jobrun submit --name keydemo1 --job keydemo
    
  5. Affichez les journaux de l'exécution de travail à l'aide de la commande ibmcloud ce jobrun logs. Vous pouvez afficher les journaux de toutes les instances d'un travail exécuté ou afficher les journaux d'une instance spécifique d'une exécution de travail. Pour afficher les journaux d'une instance spécifique de l'exécution de travail, utilisez l'option --instance avec la commande jobrun logs. Si nécessaire, utilisez la commande jobrun get --name keydemo1 pour afficher les détails de cette exécution de travail, y compris ses instances. Notez que dans la sortie, url est la seule clé référencée et la clé name n'est pas référencée par le travail.

    ibmcloud ce jobrun logs --instance keydemo1-0-0
    

    Exemple de sortie

    Getting logs for job run instance 'keydemo1-0-0'...
    [...]
    
    url=myurl
    [...]
    

Remplacement de références via l'interface de ligne de commande

Vous pouvez remplacer des mappes de configuration et des secrets référencés. Les scénarios ci-après peuvent être exécutés pour les secrets ou les mappes de configuration.

Scénario A. Remplacer un secret entièrement référencé par un autre secret entièrement référencé

Dans ce scénario, nous allons créer un nouveau secret mydatabasesec-writer avec les clés username et password, puis remplacer les clés username et password dans le secret mydatabasesec précédemment créé. Le secret mydatabasesec contient les clés username=reader et password=abcd.

Les références intégrales remplacent les autres références intégrales dans l'ordre où elles sont définies (le dernier ensemble référencé remplace le premier ensemble).

  1. Définissez une variable d'environnement sur le travail writerjob pour faire référence au secret intégral mydatabasesec qui a été créé précédemment. Le secret mydatabasesec contient les clés username=reader et password=abcd.

    ibmcloud ce job create -n writerjob -i busybox -c env --env-from-secret mydatabasesec
    
  2. (Facultatif) Affichez les détails du travail writerjob. La sortie affiche la référence intégrale au secret mydatabasesec.

    ibmcloud ce job get -n writerjob
    

    Exemple de sortie

    Getting job 'writerjob'...
    OK
    
    Name:          writerjob
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           17s
    Created:       2021-02-12T07:12:08-06:00
    [...]
    
    Commands:                 
        env  
    Environment Variables:    
        Type                   Name           Value  
        Secret full reference  mydatabasesec    
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
  3. Exécutez un travail qui utilise le travail writerjob.

    ibmcloud ce jobrun submit --name writerjob1 --job writerjob
    
  4. Affichez les journaux de l'exécution de travail. Vous pouvez afficher les journaux de toutes les instances d'un travail exécuté ou afficher les journaux d'une instance spécifique d'une exécution de travail. Dans cet exemple, affichez les journaux de l'exécution de travail writerjob1. Notez que dans la sortie, les clés username et password du secret intégral mydatabasesec sont affichées. Les valeurs de secret sont ajoutées à l'environnement codé.

    ibmcloud ce jobrun logs --jobrun writerjob1
    

    Exemple de sortie

    Getting jobrun 'writerjob1'...
    Getting instances of jobrun 'writerjob1'...
    Getting logs for all instances of job run 'writerjob1'...
    OK
    [...]
    
    certificate=-----BEGIN CERTIFICATE--------
    asdf;aksjdflkajsdflkjasldkfjalskdjflaksjdflk
    -----END CERTFICIATE----------
    password=abcd
    username=reader
    [...]
    
  5. Créez le secret mydatabasesec-writer et spécifiez les paires clé-valeur pour un nom d'utilisateur et un mot de passe à l'aide de l'option --from-literal.

    ibmcloud ce secret create --name mydatabasesec-writer --from-literal username=writer --from-literal password=wxyz
    
  6. Affichez des détails sur le secret mydatabasesec-writer en utilisant la commande secret get. Les valeurs pour les clés password et username du secret sont codées.

    ibmcloud ce secret get -n mydatabasesec-writer
    

    Exemple de sortie

    Getting generic secret 'mydatabasesec-writer'...
    OK
    
    Name:          mydatabasesec-writer
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           14s
    Created:       2020-10-14 13:44:16 -0400 EDT
    
    Data:
    ---
    password: d3h5eg==
    username: d3JpdGVy
    
  7. Mettez à jour le travail writerjobpour faire référence au secret mydatabasesec-writercomplet et utilisez le préfixewrite_.

    ibmcloud ce job update --name writerjob --env-from-secret write_=mydatabasesec-writer
    
  8. (Facultatif) Affichez les détails du travail writerjob mis à jour. Le travail fait intégralement référence aux secrets mydatabasesec et mydatabase-writer.

    ibmcloud ce job get -n writerjob
    

    Exemple de sortie

    Getting job 'writerjob'...
    OK
    
    Name:          writerjob
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           4m2s
    Created:       2021-02-12T07:12:08-06:00
    [...]
    
    Commands:                 
        env  
    Environment Variables:    
        Type                   Name                          Value  
        Secret full reference  mydatabasesec           
        Secret full reference  write_=mydatabasesec-writer   
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
  9. Exécutez un travail qui utilise le travail writerjob. Etant donné que le travail writerjob a été mis à jour pour faire référence à la fois au secret mydatabasesec et au secret mydatabasesec-writer et que ces derniers comportent des clés pour username et password, le dernier secret intégral mydatabasesec-writer référencé remplace le secret mydatabasesec.

    Pour qu'une exécution de travail utilise la configuration mise à jour d'un travail avec les mises à jour apportées à ses secrets intégralement référencés, exécutez un nouveau travail. Pour mettre à jour une application pour qu'elle utilise le secret mis à jour, redémarrez-la.

    ibmcloud ce jobrun submit --name writerjob2 --job writerjob
    
  10. Affichez les journaux de l'exécution de travail à l'aide de la commande ibmcloud ce jobrun logs. Vous pouvez afficher les journaux de toutes les instances d'un travail exécuté ou afficher les journaux d'une instance spécifique d'une exécution de travail. Pour afficher les journaux de toutes les instances d'un travail, utilisez l'option --jobrun avec la commande jobrun logs. Pour afficher les journaux d'une instance spécifique de l'exécution de travail, utilisez l'option --instance avec la commande jobrun logs. Si nécessaire, utilisez la commande jobrun get --name writerjob2 pour afficher les détails de cette exécution de travail, y compris ses instances. Notez que dans la sortie, les clés username et password du secret mydatabasesec-writer ont remplacé les clé du secret mydatabasesec. De plus, dans la sortie de journal, les clés du secret complet mydatabasesec-writersont affichées avec le préfixe write_. Les valeurs secrètes sont ajoutées à l'environnement décodé.

ibmcloud ce jobrun logs --instance writerjob2-0-0

Exemple de sortie

Getting logs for job run instance 'writerjob2-0-0'...
[...]

certificate=-----BEGIN CERTIFICATE--------
asdf;aksjdflkajsdflkjasldkfjalskdjflaksjdflk
-----END CERTFICIATE----------
password=abcd
username=reader
write_password=wxyz
write_username=writer
[...]

Scénario B. Remplacer un secret entièrement référencé par une référence de clé

Les références à une clé contenue dans un secret ou une mappe de configuration remplacent toujours une référence intégrale à un secret ou à une mappe de configuration lorsque la clé qui est utilisée réside dans une mappe de configuration ou un secret intégralement référencé, quel que soit leur ordre.

Dans le cadre de ce scénario, nous allons utiliser les secrets mydatabasesec et mydatabasesec-writer précédemment créés et référencer les clés des secrets à partir d'un travail.

  1. Définissez une variable d'environnement sur un travail writerpic pour faire référence à des clés spécifiques dans les secrets mydatabasesec et mydatabasesec-writer. Le secret mydatabasesec contient les clés username=reader, password=abcd et certificate=cert.pem. Le secret mydatabasesec-writer contient les clés username=writer et password=wxyz.

    ibmcloud ce job create -n writerpick -i busybox -c env --env-from-secret mydatabasesec-writer:username --env-from-secret mydatabasesec-writer:password --env-from-secret mydatabasesec
    
  2. (Facultatif) Affichez les détails du travail writerpick. La sortie affiche la référence intégrale au secret mydatabasesec et la référence de clé aux clés password et username du secret mydatabasesec-writer.

    ibmcloud ce job get -n writerpick
    

    Exemple de sortie

    Getting job 'writerpick'...
    OK
    
    Name:          writerpick
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           107s
    Created:       2021-02-12T07:16:46-06:00  
    [...]
    
    Commands:                 
        env  
    Environment Variables:    
        Type                   Name           Value  
        Secret full reference  mydatabasesec    
        Secret key reference   password       mydatabasesec-writer.password  
        Secret key reference   username       mydatabasesec-writer.username  
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
  3. Exécutez un travail qui utilise le travail writerpick.

    ibmcloud ce jobrun submit --name writerpick1 --job writerpick
    
  4. Affichez les journaux de l'exécution de travail writerpick1 à l'aide de la commande ibmcloud ce jobrun logs. Vous pouvez afficher les journaux de toutes les instances d'un travail exécuté ou afficher les journaux d'une instance spécifique d'une exécution de travail. Pour afficher les journaux d'une instance spécifique de l'exécution de travail, utilisez l'option --instance avec la commande jobrun logs. Si nécessaire, utilisez la commande jobrun get --name writerpick1 pour afficher les détails de cette exécution de travail, y compris ses instances. Etant donné que le travail writerpick a été mis à jour pour faire référence à des clés spécifiques du secret mydatabasesec-writer et pour faire référence au secret intégral mydatabasesec, la référence aux clés username et password du secret mydatabasesec-writer remplace la référence au secret intégral. Les valeurs de secret sont ajoutées à l'environnement codé.

    ibmcloud ce jobrun logs --instance writerpick1-0-0
    

    Exemple de sortie

    Getting logs for job run instance 'writerpick1-0-0'...
    [...]
    
    username=writer
    certificate=-----BEGIN CERTIFICATE--------
    asdf;aksjdflkajsdflkjasldkfjalskdjflaksjdflk
    -----END CERTFICIATE----------
    password=wxyz
    [...]
    

Scénario C. Remplacer les références de clés par de nouvelles clés

Vous pouvez mettre à jour la référence à une clé spécifique d'un secret ou d'une mappe de configuration et remplacer la valeur par une nouvelle valeur.

Dans le cadre de ce scénario, nous allons utiliser la mappe de configuration mydatabasecm précédemment créée, qui contient la clé url:myurl pour mettre à jour la valeur de la clé.

  1. Définissez une variable d'environnement sur un travail keyref pour faire référence à une clé spécifique dans la mappe de configuration mydatabasecm.

    ibmcloud ce job create -n keyref -i busybox -c env --env-from-configmap mydatabasecm:url
    
  2. (Facultatif) Affichez les détails du travail keyref. La sortie affiche la référence de clé à la clé url de la mappe de configuration mydatabasecm.

    ibmcloud ce job get -n keyref
    

    Exemple de sortie

    Getting job 'keyref'...
    OK
    
    Name:          keyref
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           65s
    Created:       2021-02-12T07:18:44-06:00  
    [...]
    
    Commands:                 
        env  
    Environment Variables:    
        Type                     Name  Value  
        ConfigMap key reference  url   mydatabasecm.url  
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
  3. Exécutez un travail qui utilise le travail keyref.

    ibmcloud ce jobrun submit --name keyref1 --job keyref
    
  4. Affichez les journaux d'une instance en cours de l'exécution de travail keyref1 à l'aide de la commande ibmcloud ce jobrun logs. Vous pouvez afficher les journaux de toutes les instances d'un travail exécuté ou afficher les journaux d'une instance spécifique d'une exécution de travail. Pour afficher les journaux d'une instance spécifique de l'exécution de travail, utilisez l'option --instance avec la commande jobrun logs. Si nécessaire, utilisez la commande jobrun get --name keyref1 pour afficher les détails de cette exécution de travail, y compris ses instances. L'exécution de travail a utilisé la référence de clé url=myurl.

    ibmcloud ce jobrun logs --instance keyref1-0-0
    

    Exemple de sortie

    Getting logs for job run instance 'keyref1-0-0'...
    [...]
    
    url=myurl
    [...]
    
  5. Mettez à jour le travail keyref pour remplacer url=myurl par une nouvelle clé. Utilisez l'option --env pour mettre à jour la clé url. L'option --env de la commande job update définit des variables d'environnement pour le travail au format NAME=VALUE.

    ibmcloud ce job update --name keyref --env url=newurl  
    
  6. (Facultatif) Affichez les détails du travail keyref. La sortie affiche la référence de clé à la clé url de la mappe de configuration mydatabasecm.

    ibmcloud ce job get -n keyref
    

    Exemple de sortie

    Getting job 'keyref'...
    OK
    
    Name:          keyref
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           3m6s
    Created:       2021-02-12T07:18:44-06:00  
    
    Commands:                 
        env  
    Environment Variables:    
        Type     Name  Value  
        Literal  url   newurl  
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    

Suppression de secrets et de mappes de configuration entièrement référencés via l'interface de ligne de commande

Vous pouvez retirer une mappe de configuration ou un secret intégralement référencés à partir d'un travail ou d'une application.

Dans le cadre de ce scénario, nous allons retirer le secret mydatabasesec intégralement référencé à partir du travail demo.

  1. Mettez à jour le travail demo pour retirer la référence au secret mydatabasesec.

    ibmcloud ce job update -n demo --env-from-secret-rm mydatabasesec
    
  2. Affichez les détails du travail demo. La sortie indique que la référence au secret mydatabasesec a été retirée.

    ibmcloud ce job get -n demo
    

    Exemple de sortie

    Getting job 'demo'...
    OK
    
    Name:          demo
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           19m
    Created:       2021-02-12T07:05:23-06:00  
    [...]
    
    Commands:               
        env  
    Image:                busybox    
    Resource Allocation:    
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    

Retrait de références de clé via l'interface de ligne de commande

Vous pouvez retirer une clé référencée dans un secret ou une mappe de configuration à partir d'un travail ou d'une application.

Dans le cadre de ce scénario, nous allons retirer la clé url à partir du travail keyref.

Même si l'option --env-from-configmap a été utilisée sur un travail pour faire référence à la clé url dans la mappe de configuration mydatabasecm, vous pouvez utiliser l'option --env-rm pour retirer des clés individuelles. Vous pouvez utiliser l'option --env-rm avec les commandes job update ou app update pour retirer des références de clé qu'il s'agisse de références de clé individuelles dans un secret ou une mappe de configuration ou que les clés soient directement définies sur un travail ou une application à l'aide de l'option --env.

  1. Mettez à jour le travail keydef pour retirer la référence à la clé url.

    ibmcloud ce job update --name keyref --env-rm url
    
  2. Affichez les détails du travail keyref. La sortie indique que la référence à la clé url a été retirée.

    ibmcloud ce job get -n keyref
    

    Exemple de sortie

    Getting job 'keyref'...
    OK
    
    Name:          keyref
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           6m27s
    Created:       2021-02-12T07:18:44-06:00  
    [...]
    
    Commands:               
        env  
    Image:                busybox  
    Resource Allocation:    
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3