Mit Umgebungsvariablen auf geheime Schlüssel und Konfigurationszuordnungen verweisen (Befehlszeilenschnittstelle)
Nachdem Sie Secrets und Configmaps in Code Engine erstellt haben, können die als Schlüssel-Wert-Paare gespeicherten Informationen von Ihrer Anwendung, Ihrem Job oder Ihrem Funktions-Workload als Umgebungsvariable verwendet werden, indem auf das vollständige Secret oder die Configmap oder auf einzelne Schlüssel verwiesen wird.
Das Arbeiten mit geheimen Schlüsseln in Form von Umgebungsvariablen ähnelt dem Arbeiten mit Konfigurationszuordnungen in Form von Umgebungsvariablen. Bei der Arbeit mit geheimen Schlüsseln werden die Daten verschlüsselt.
Beachten Sie die folgenden Informationen, wenn Sie eine Anwendung, einen Auftrag oder eine Funktion aktualisieren, die eine Umgebungsvariable enthält, die auf configmaps oder secrets verweist.
Wenn Sie eine Anwendung, einen Job oder eine Funktion aktualisieren, die eine Umgebungsvariable hat, die eine Configmap (oder ein Geheimnis) vollständig referenziert, um eine andere Configmap (oder ein Geheimnis) vollständig zu referenzieren, überschreiben vollständige Referenzen andere vollständige Referenzen in der Reihenfolge, in der sie gesetzt wurden (der letzte referenzierte Satz überschreibt den ersten Satz).
Wenn Sie eine Anwendung, einen Job oder eine Funktion aktualisieren, die eine Umgebungsvariable hat, die einen Schlüssel in einer configmap (oder secret) referenziert, um denselben Schlüssel in einer anderen configmap (oder secret) zu referenzieren,
dann wird der zuletzt referenzierte Schlüssel verwendet.
Wenn Sie eine Anwendung, einen Job oder eine Funktion mit einer Umgebungsvariablen aktualisieren, die vollständig auf eine Configmap (oder ein Geheimnis) verweist, um einen Verweis auf einen bestimmten Schlüssel hinzuzufügen, dann überschreibt der Verweis auf den bestimmten Schlüssel den Verweis auf die vollständige Configmap (oder das Geheimnis).
Grundlegende Informationen zum Verweisen auf Configmaps oder geheime Schlüssel mit der CLI finden Sie unter Verweisen auf configmaps mit der CLI und Verweisen auf geheime Schlüssel mit der CLI.
Bei geheimen Schlüsseln und Konfigurationszuordnungen kommen folgende Szenarios infrage:
In Befehlszeilenschnittstelle auf vollständigen geheimen Schlüssel verweisen
Geheime Schlüssel und Konfigurationszuordnungen bestehen aus Schlüssel-/Wert-Paaren. Umgebungsvariablen sind das Ergebnis der Bereitstellung eines Eintrags pro Schlüssel, wenn auf den vollständigen geheimen Schlüssel oder die Konfigurationszuordnung verwiesen wird. Wenn mehrere geheime Schlüssel (oder Konfigurationszuordnungen) denselben benannten Schlüssel enthalten, erhalten Sie nur einen der Schlüssel im referenzierten geheimen Schlüssel oder in der Konfigurationszuordnung.
In diesem Szenario wird ein geheimer Schlüssel erstellt, in dem Schlüssel/Wert-Paare für Benutzernamen und Kennwörter enthalten sind; anschließend wird auf den vollständigen geheimen Schlüssel verwiesen, wenn ein Job ausgeführt wird. Sie können
den geheimen Schlüssel aktualisieren und einen Schlüssel hinzufügen; danach wird die Verwendung des neuen Schlüssels in einem Job veranschaulicht. In diesem Szenario wird zwar ein geheimer Schlüssel verwendet, Sie können anhand derselben Schritte
auch auch vollständig auf eine Konfigurationszuordnung verweisen; hierzu müssen Sie configmap anstatt secret in den Befehlen verwenden.
-
Erstellen Sie den geheimen Schlüssel
mydatabasesecund geben Sie die Schlüssel/Wert-Paare für Benutzername und Kennwort mit der Option--from-literalan.ibmcloud ce secret create -n mydatabasesec --from-literal username=reader --from-literal password=abcd -
Zeigen Sie Details zum geheimen Schlüssel
mydatabasesecmit dem Befehlsecret getan. Die Werte für die Schlüsselpasswordundusernamedes geheimen Schlüssels werden verschlüsselt.ibmcloud ce secret get -n mydatabasesecBeispielausgabe
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 -
Legen Sie eine Umgebungsvariable für einen Job fest, um auf den vollständigen geheimen Schlüssel
mydatabaseseczu verweisen. In diesem Beispiel wird die Option--env-from-secret PREFIX=NAMEverwendet, wobeiPREFIX=NAMEangibt, dass auf die vollständige Konfigurationszuordnung verwiesen werden soll, wobei jedem Schlüssel das PräfixPREFIXvorangestellt wird. Bei Verwendung des Präfixread_wird jedem Schlüssel das Präfixread_vorangestellt. Da das Imagebusyboxstandardmäßig keine Ausgabe druckt, gibt die Option-c envan, dass alle Umgebungsvariablen in dem Container gedruckt werden sollen.ibmcloud ce job create -n demo -i busybox -c env --env-from-secret read_=mydatabasesecSie können ein Präfix verwenden, um sicherzustellen, dass alle Umgebungsvariablen in Ihrem Job oder in Ihrer App eindeutig sind. Wenn Sie beispielsweise über einen geheimen Schlüssel mit den Schlüsseln
a,bundcverfügen, werden diese Umgebungsvariablen alsa,bundcangezeigt. Wenn Sie jedoch ein Präfix wieread_hinzufügen, werden die Schlüssel mit dem Präfix angezeigt, wie z. B.read_a,read_bundread_c. Die Verwendung eines Präfix gruppiert auch Ihre Umgebungsvariablen in der referenzierenden App, im referenzierenden Job oder in der referenzierenden Jobausführung und hilft Ihnen, Duplikate von Schlüsseln in Konfigurationszuordnungen oder geheimen Schlüsseln zu vermeiden. -
(Optional) Zeigen Sie die Details des Jobs
demoan. In der Ausgabe wird der vollständige Verweis auf den geheimen Schlüsselmydatabasesecangezeigt.ibmcloud ce job get -n demoBeispielausgabe
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 -
Führen Sie einen Job aus, von dem die Konfiguration des Jobs
demoverwendet wird.ibmcloud ce jobrun submit --name demo1 --job demo -
Zeigen Sie die Protokolle der Jobausführung an. Sie können Protokolle aller Instanzen einer Jobausführung oder Protokolle einer bestimmten Instanz einer Jobausführung anzeigen. In diesem Beispiel werden die Protokolle der
demo1-Jobausführung angezeigt. Beachten Sie in der Protokollausgabe, dass die Schlüssel des vollständigen geheimen Schlüsselsmydatabasesecmit dem Präfixread_angezeigt werden. Die Werte der geheimen Schlüssel werden der Umgebung entschlüsselt hinzugefügt.ibmcloud ce jobrun logs --jobrun demo1Beispielausgabe
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 [...] -
Aktualisieren Sie den geheimen Schlüssel
mydatabasesec, um einen Schlüssel mit der Option--from-filehinzuzufügen. Für diese Option wird das Format--from-file FILEoder--from-file KEY=FILEverwendet. Im folgenden Befehl stehtcertificatefür den Schlüssel undcert.pemfür den Namen der Datei.ibmcloud ce secret update -n mydatabasesec --from-file certificate=cert.pem -
Zeigen Sie die Details des aktualisierten geheimen Schlüssel
mydatabasesecmit dem Befehlsecret getan. Der geheime Schlüssel enthält jetzt die drei Schlüsselcertificate,passwordundusername. Die Werte der geheimen Schlüssel sind verschlüsselt.ibmcloud ce secret get -n mydatabasesecBeispielausgabe
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 -
Führen Sie einen Job aus, von dem der Job
demoverwendet wird. Vorher haben Sie den vollständigen geheimen Schlüsselmydatabasesecüber den Jobdemoreferenziert. Übergeben Sie eine neue Jobausführung, damit vom Job der aktualisierte geheime Schlüssel mit dem hinzufügten Schlüssel/Wert-Paarcertificateverwendet wird. Wenn Sie eine App aktualisieren möchten, damit von ihr der aktualisierte geheime Schlüssel verwendet wird, starten Sie die App erneut.ibmcloud ce jobrun submit --name demo2 --job demo -
Zeigen Sie die Protokolle der Jobausführung an, indem Sie den Befehl
ibmcloud ce jobrun logsverwenden. Sie können Protokolle aller Instanzen einer Jobausführung oder Protokolle einer bestimmten Instanz einer Jobausführung anzeigen. Wenn Sie die Protokolle einer bestimmten Instanz des Joblaufs anzeigen möchten, verwenden Sie die Option--instancemit dem Befehljobrun logs. Falls erforderlich, verwenden Sie den Befehljobrun get --name demo2, um Details zu dieser Jobausführung anzuzeigen, einschließlich der Instanzen der Jobausführung. Zeigen Sie im folgenden Beispiel die Protokolle der aktiven Instanz vondemo2-0-0an; hierbei stehtdemo2für den Namen der Jobausführung,0steht fürarrayindexund0fürretryindex. Beachten Sie, dass in der Ausgabe die Schlüsselcertificate,usernameundpassworddes vollständigen geheimen Schlüsselsmydatabasesecangezeigt werden. Die Werte der geheimen Schlüssel werden der Umgebung entschlüsselt hinzugefügt.
ibmcloud ce jobrun logs --instance demo2-0-0
Beispielausgabe
Getting logs for job run instance 'demo2-0-0'...
[...]
read_certificate=-----BEGIN CERTIFICATE--------
asdf;aksjdflkajsdflkjasldkfjalskdjflaksjdflk
-----END CERTFICIATE----------
read_password=abcd
read_username=reader
In Befehlszeilenschnittstelle auf einzelne Schlüssel einer Konfigurationszuordnung verweisen
Im folgenden Szenario wird eine Konfigurationszuordnung erstellt, in der mehrere Schlüssel/Wert-Paare enthalten sind. Anschließend werden bestimmte Schlüssel in einem Job referenziert. In diesem Szenario wird zwar eine Konfigurationszuordnung
verwendet, Sie können anhand derselben allgemeinen Schritte aber auch auf einzelne Schlüssel in einem geheimen Schlüssel verweisen. Hierzu müssen Sie secret anstatt configmap in den Befehlen verwenden.
-
Erstellen Sie die Konfigurationszuordnung
mydatabaseund geben Sie die Schlüssel/Wert-Paare für einen Namen und eine URL mithilfe der Option--from-literal KEY=VALUEan.ibmcloud ce configmap create -n mydatabasecm --from-literal name=myname --from-literal url=myurl -
Zeigen Sie die Details der Konfigurationszuordnung
mydatabasecmmit dem Befehlconfigmap getan.ibmcloud ce configmap get -n mydatabasecmBeispielausgabe
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 -
Legen Sie eine Umgebungsvariable für einen Job fest, um auf den Schlüssel
urlin der Konfigurationszuordnungmydatabasecmzu verweisen. Verwenden Sie hierzu die Option--env-from-configmap NAME:KEY_A,KEY_B, wobeiNAME:KEY_Aangibt, dassKEY_Ader Konfigurationszuordnung referenziert werden soll.ibmcloud ce job create --name keydemo --image busybox --command env --env-from-configmap mydatabasecm:url -
Führen Sie einen Job aus, von dem der Job
keydemoverwendet wird.ibmcloud ce jobrun submit --name keydemo1 --job keydemo -
Zeigen Sie die Protokolle der Jobausführung an, indem Sie den Befehl
ibmcloud ce jobrun logsverwenden. Sie können Protokolle aller Instanzen einer Jobausführung oder Protokolle einer bestimmten Instanz einer Jobausführung anzeigen. Wenn Sie die Protokolle einer bestimmten Instanz des Joblaufs anzeigen möchten, verwenden Sie die Option--instancemit dem Befehljobrun logs. Falls erforderlich, verwenden Sie den Befehljobrun get --name keydemo1, um Details zu dieser Jobausführung anzuzeigen, einschließlich der Instanzen der Jobausführung. Beachten Sie in der Ausgabe, dassurlder einzige referenzierte Schlüssel ist und dass vom Job nicht der Schlüsselnamereferenziert wird.ibmcloud ce jobrun logs --instance keydemo1-0-0Beispielausgabe
Getting logs for job run instance 'keydemo1-0-0'... [...] url=myurl [...]
In Befehlszeilenschnittstelle Verweise überschreiben
Sie können referenzierte geheime Schlüssel und Konfigurationszuordnungen überschreiben. Bei geheimen Schlüsseln und Konfigurationszuordnungen kommen folgende Szenarios infrage:
Szenario A. Einen vollständig referenzierten geheimen Schlüssel mit einem anderen vollständig referenzierten geheimen Schlüssel überschreiben
Im folgenden Szenario wird der neue geheime Schlüssel mydatabasesec-writer mit den Schlüsseln username und password erstellt und die Schlüssel username und password im zuvor
erstellten geheimen Schlüssel mydatabasesec werden überschrieben. Im geheimen Schlüssel mydatabasesec sind die Schlüssel username=reader und password=abcd enthalten.
Durch vollständige Referenzen werden andere vollständige Referenzen in der Reihenfolge überschrieben, in der sie festgelegt wurden (der zuletzt referenzierte Satz überschreibt den zuerst festgelegten Satz).
-
Legen Sie eine Umgebungsvariable für den Job
writerjobfest, um auf den vollständigen geheimen Schlüsselmydatabaseseczu verweisen. Im geheimen Schlüsselmydatabasesecsind die Schlüsselusername=readerundpassword=abcdenthalten.ibmcloud ce job create -n writerjob -i busybox -c env --env-from-secret mydatabasesec -
(Optional) Zeigen Sie die Details des Jobs
writerjoban. In der Ausgabe wird der vollständige Verweis auf den geheimen Schlüsselmydatabasesecangezeigt.ibmcloud ce job get -n writerjobBeispielausgabe
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 -
Führen Sie einen Job aus, von dem der Job
writerjobverwendet wird.ibmcloud ce jobrun submit --name writerjob1 --job writerjob -
Zeigen Sie die Protokolle der Jobausführung an. Sie können Protokolle aller Instanzen einer Jobausführung oder Protokolle einer bestimmten Instanz einer Jobausführung anzeigen. In diesem Beispiel werden die Protokolle der
writerjob1-Jobausführung angezeigt. Beachten Sie, dass in der Ausgabe die Schlüsselusernameundpassworddes vollständigen geheimen Schlüsselsmydatabasesecangezeigt werden. Die Werte der geheimen Schlüssel werden der Umgebung entschlüsselt hinzugefügt.ibmcloud ce jobrun logs --jobrun writerjob1Beispielausgabe
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 [...] -
Erstellen Sie den geheimen Schlüssel
mydatabasesec-writerund geben Sie die Schlüssel/Wert-Paare für Benutzername und Kennwort mit der Option--from-literalan.ibmcloud ce secret create --name mydatabasesec-writer --from-literal username=writer --from-literal password=wxyz -
Zeigen Sie Details zum geheimen Schlüssel
mydatabasesec-writermit dem Befehlsecret getan. Die Werte für die Schlüsselpasswordundusernamedes geheimen Schlüssels werden verschlüsselt.ibmcloud ce secret get -n mydatabasesec-writerBeispielausgabe
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 -
Aktualisieren Sie den Job
writerjob, um auf den vollständigen geheimen Schlüsselmydatabasesec-writerzu verweisen, und verwenden Sie das Präfixwrite_.ibmcloud ce job update --name writerjob --env-from-secret write_=mydatabasesec-writer -
(Optional) Zeigen Sie die Details des aktualisierten Jobs
writerjoban. Vom Job werden die geheimen Schlüsselmydatabasesecundmydatabase-writervollständig referenziert.ibmcloud ce job get -n writerjobBeispielausgabe
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 -
Führen Sie einen Job aus, von dem der Job
writerjobverwendet wird. Da der Jobwriterjobso aktualisiert wurde, dass sowohl der geheime Schlüsselmydatabasesecals auch der geheime Schlüsselmydatabasesec-writerreferenziert wird, und beide geheime Schlüssel die Schlüssel fürusernameundpasswordenthalten, überschreibt der zuletzt referenzierte vollständige geheime Schlüsselmydatabasesec-writerden geheimen Schlüsselmydatabasesec.Führen Sie einen neuen Job aus, damit für eine Jobausführung die aktualisierte Konfiguration eines Jobs mit den Aktualisierungen für die vollständig referenzierten geheimen Schlüssel verwendet wird. Wenn Sie eine App aktualisieren möchten, damit von ihr der aktualisierte geheime Schlüssel verwendet wird, starten Sie die App erneut.
ibmcloud ce jobrun submit --name writerjob2 --job writerjob -
Zeigen Sie die Protokolle der Jobausführung an, indem Sie den Befehl
ibmcloud ce jobrun logsverwenden. Sie können Protokolle aller Instanzen einer Jobausführung oder Protokolle einer bestimmten Instanz einer Jobausführung anzeigen. Verwenden Sie die Option--jobrunim Befehljobrun logs, um die Protokolle aller Instanzen eines Jobs anzuzeigen. Wenn Sie die Protokolle einer bestimmten Instanz des Joblaufs anzeigen möchten, verwenden Sie die Option--instancemit dem Befehljobrun logs. Falls erforderlich, verwenden Sie den Befehljobrun get --name writerjob2, um Details zu dieser Jobausführung anzuzeigen, einschließlich der Instanzen der Jobausführung. Beachten Sie, dass in der Ausgabe die Schlüsselusernameundpassworddes geheimen Schlüsselsmydatabasesec-writerdie Schlüssel des geheimen Schlüsselsmydatabasesecüberschrieben haben. Außerdem werden in der Protokollausgabe die Schlüssel des vollständigen geheimen Schlüsselsmydatabasesec-writermit dem Präfixwrite_angezeigt. Geheime Werte werden der decodierten Umgebung hinzugefügt.
ibmcloud ce jobrun logs --instance writerjob2-0-0
Beispielausgabe
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
[...]
Szenario B. Vollständig referenzierten geheimen Schlüssel mit einem Schlüsselverweis überschreiben
Durch Verweise auf einen Schlüssel in einem geheimen Schlüssel oder einer Konfigurationszuordnung wird ein vollständiger Verweis auf einen geheimen Schlüssel oder eine Konfigurationszuordnung ohne Beachtung der Reihenfolge überschrieben, wenn sich der verwendete Schlüssel in einem vollständig referenzierten geheimen Schlüssel oder in einer vollständig referenzierten Konfigurationszuordnung befindet.
Im folgenden Szenario werden die vorher erstellten geheimen Schlüssel mydatabasesec und mydatabasesec-writer und Referenzschlüssel in den geheimen Schlüsseln aus einem Job verwendet.
-
Legen Sie eine Umgebungsvariable für den Job
writerpicfest, sodass bestimmte Schlüssel in den geheimen Schlüsselnmydatabasesecundmydatabasesec-writerreferenziert werden. Der geheime Schlüsselmydatabasesecenthält die Schlüsselusername=reader,password=abcdundcertificate=cert.pem. Im geheimen Schlüsselmydatabasesec-writersind die Schlüsselusername=writerundpassword=wxyzenthalten.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 -
(Optional) Zeigen Sie die Details des Jobs
writerpickan. In der Ausgabe werden der vollständige Verweis auf den geheimen Schlüsselmydatabasesecund der Schlüsselverweis auf die Schlüsselpasswordundusernamedes geheimen Schlüsselsmydatabasesec-writerangezeigt.ibmcloud ce job get -n writerpickBeispielausgabe
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 -
Führen Sie einen Job aus, von dem der Job
writerpickverwendet wird.ibmcloud ce jobrun submit --name writerpick1 --job writerpick -
Zeigen Sie die Protokolle der Jobausführung
writerpick1an, indem Sie den Befehlibmcloud ce jobrun logsverwenden. Sie können Protokolle aller Instanzen einer Jobausführung oder Protokolle einer bestimmten Instanz einer Jobausführung anzeigen. Wenn Sie die Protokolle einer bestimmten Instanz des Joblaufs anzeigen möchten, verwenden Sie die Option--instancemit dem Befehljobrun logs. Falls erforderlich, verwenden Sie den Befehljobrun get --name writerpick1, um Details zu dieser Jobausführung anzuzeigen, einschließlich der Instanzen der Jobausführung. Da der Jobwriterpickso aktualisiert wurde, dass bestimmte Schlüssel im geheimen Schlüsselmydatabasesec-writerund der vollständige geheime Schlüsselmydatabasesecreferenziert werden, überschreibt der Verweis auf die Schlüsselusernameundpasswordim geheimen Schlüsselmydatabasesec-writerden Verweis auf den vollständigen geheimen Schlüssel. Die Werte der geheimen Schlüssel werden der Umgebung entschlüsselt hinzugefügt.ibmcloud ce jobrun logs --instance writerpick1-0-0Beispielausgabe
Getting logs for job run instance 'writerpick1-0-0'... [...] username=writer certificate=-----BEGIN CERTIFICATE-------- asdf;aksjdflkajsdflkjasldkfjalskdjflaksjdflk -----END CERTFICIATE---------- password=wxyz [...]
Szenario C. Schlüsselverweise mit neuen Schlüsseln überschreiben
Sie können den Verweis auf einen bestimmten Schlüssel in einem geheimen Schlüssel oder in einer Konfigurationszuordnung aktualisieren und den Wert durch einen neuen Wert überschreiben.
Im folgenden Szenario wird die zuvor erstellte Konfigurationszuordnung mydatabasecm verwendet, in der der Schlüssel url:myurl enthalten ist, um den Wert des Schlüssels zu aktualisieren.
-
Legen Sie eine Umgebungsvariable für den Job
keyreffest, um auf bestimmte Schlüssel in der Konfigurationszuordnungmydatabasecmzu verweisen.ibmcloud ce job create -n keyref -i busybox -c env --env-from-configmap mydatabasecm:url -
(Optional) Zeigen Sie die Details des Jobs
keyrefan. In der Ausgabe wird der Schlüsselverweis auf den Schlüsselurlin der Konfigurationszuordnungmydatabasecmangezeigt.ibmcloud ce job get -n keyrefBeispielausgabe
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 -
Führen Sie einen Job aus, von dem der Job
keyrefverwendet wird.ibmcloud ce jobrun submit --name keyref1 --job keyref -
Zeigen Sie die Protokolle einer aktiven Instanz der Jobausführung
keyref1an, indem Sie den Befehlibmcloud ce jobrun logsverwenden. Sie können Protokolle aller Instanzen einer Jobausführung oder Protokolle einer bestimmten Instanz einer Jobausführung anzeigen. Wenn Sie die Protokolle einer bestimmten Instanz des Joblaufs anzeigen möchten, verwenden Sie die Option--instancemit dem Befehljobrun logs. Falls erforderlich, verwenden Sie den Befehljobrun get --name keyref1, um Details zu dieser Jobausführung anzuzeigen, einschließlich der Instanzen der Jobausführung. Von der Jobausführung wurde der Schlüsselverweisurl=myurlverwendet.ibmcloud ce jobrun logs --instance keyref1-0-0Beispielausgabe
Getting logs for job run instance 'keyref1-0-0'... [...] url=myurl [...] -
Aktualisieren Sie den Job
keyrefso, dassurl=myurldurch einen neuen Schlüssel überschrieben wird. Verwenden Sie die Option--env, um den Schlüsselurlzu aktualisieren. Die Option--envdes Befehlsjob updatesetzt Umgebungsvariablen für den Auftrag im FormatNAME=VALUE.ibmcloud ce job update --name keyref --env url=newurl -
(Optional) Zeigen Sie die Details des Jobs
keyrefan. In der Ausgabe wird der Schlüsselverweis auf den Schlüsselurlin der Konfigurationszuordnungmydatabasecmangezeigt.ibmcloud ce job get -n keyrefBeispielausgabe
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
Entfernen von vollständig referenzierten Geheimnisse oder configmaps mit der CLI
Sie können einen vollständig referenzierten geheimen Schlüssel oder eine vollständig referenzierte Konfigurationszuordnung aus einem Job oder einer App entfernen.
Im folgenden Szenario wird der vollständig referenzierte geheime Schlüssel mydatabasesec aus dem Job demo entfernt.
-
Aktualisieren Sie den Job
demoso, dass der Verweis auf den geheimen Schlüsselmydatabasesecentfernt wird.ibmcloud ce job update -n demo --env-from-secret-rm mydatabasesec -
Zeigen Sie die Details des Jobs
demoan. Aus der Ausgabe ist ersichtlich, dass der Verweis auf den geheimen Schlüsselmydatabasesecentfernt wurde.ibmcloud ce job get -n demoBeispielausgabe
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
In Befehlszeilenschnittstelle Schlüsselverweise entfernen
Sie können einen referenzierten Schlüssel in einem geheimen Schlüssel oder in einer Konfigurationszuordnung aus einem Job oder einer App entfernen.
Im folgenden Szenario wird der Schlüssel url aus dem Job keyref entfernt.
Auch wenn die Option --env-from-configmap für einen Job zum Referenzieren des Schlüssels url in der Konfigurationszuordnung mydatabasecm verwendet wurde, können Sie die Option --env-rm zum
Entfernen einzelner Schlüssel verwenden. Sie können die Option --env-rm mit dem Befehl job update oder app update verwenden, um Schlüsselreferenzen zu entfernen; dies ist unabhängig davon, ob es sich bei den Schlüsseln um einzelne Schlüsselverweise in einem geheimen Schlüssel oder in einer Konfigurationszuordnung handelt oder ob die Schlüssel direkt für
einen Job oder eine App mit der Option --env festgelegt wurden.
-
Aktualisieren Sie den Job
keydefso, dass der Verweis auf den Schlüsselurlentfernt wird.ibmcloud ce job update --name keyref --env-rm url -
Zeigen Sie die Details des Jobs
keyrefan. Aus der Ausgabe ist ersichtlich, dass der Verweis auf den Schlüsselurlentfernt wurde.ibmcloud ce job get -n keyrefBeispielausgabe
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