Auf geheime Schlüssel und Konfigurationszuordnungen als Mountdateien verweisen (Befehlszeilenschnittstelle)
Nachdem Sie in Code Enginegeheime Schlüssel und Konfigurationszuordnungen erstellt haben, können die als Schlüssel/Wert-Paare gespeicherten Informationen von Ihrer App oder Jobworkload als angehängte Datei verarbeitet werden. Sie können diese Methode nicht mit Funktionen verwenden.
Das Arbeiten mit geheimen Schlüsseln und Konfigurationszuordnungen in Form von Mountdateien ähnelt dem Arbeiten mit geheimen Schlüsseln und Konfigurationszuordnungen in Form von Umgebungsvariablen.
Bei der Verwendung geheimer Schlüssel werden Daten als codierte Zeichenfolgen gespeichert. Beim Hinzufügen zur Umgebung als Umgebungsvariable oder als Mountdatei sind die Daten jedoch nicht verschlüsselt.
In Befehlszeilenschnittstelle auf geheimen Schlüssel als Mountdatei verweisen
Erstellen Sie in diesem Szenario einen geheimen Schlüssel und referenzieren Sie den geheimen Schlüssel als angehängte Datei, wenn Sie eine Anwendung ausführen, die das icr.io/codeengine/ce-secret-vol-Image verwendet.
Das Beispielimage icr.io/codeengine/ce-secret-vol liest jede Datei im Verzeichnis /mysecrets und gibt den Namen der Datei und ihren Inhalt in der Standardausgabe für jede Anforderung aus, sodass die Ausgabe in den App-Protokollen
enthalten ist. Weitere Informationen zu dieser Beispielanwendung enthält das Beispiel secrets as volumes(secrets-vol)im IBM Cloud Code Engine GitHub-Repository.
In diesem Beispiel wird ein geheimer Schlüssel verwendet, Sie können dieselben Schritte jedoch auch verwenden, um auf eine Konfigurationszuordnung als Mountdatei zu verweisen. Ersetzen Sie hierzu die Angabe configmap in den Befehlen
durch die Angabe secret.
-
Erstellen Sie einen geheimen Schlüssel mit dem Namen
mysecretund geben Sie die Schlüssel/Wert-Paare für den geheimen Schlüssel mit der Option--from-literalan. Beispiel:ibmcloud ce secret create -n mysecret --from-literal apikey=abcdefgh -
Erstellen Sie die
myapp-Anwendung, die dasicr.io/codeengine/ce-secret-vol-Image verwendet. Verwenden Sie die Option--mount-secret, um den Inhalt des geheimen Schlüsselsmysecretan die App im Verzeichnis/mysecretsanzuhängen bzw. zu dieser hinzuzufügen. Durch Angabe der Option--min-scale=1verfügt die Anwendung stets über eine aktive Instanz, und es erfolgt kein Scale-down auf null. Eine solche Konfiguration, bei der die Anwendung stets über eine aktive Instanz verfügt, ist nützlich, wenn Sie Protokolle anzeigen. Beispiel:ibmcloud ce app create --name myapp --image icr.io/codeengine/ce-secret-vol --mount-secret /mysecrets=mysecret --min-scale 1Beispielausgabe
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 -
Kopieren Sie die URL in der vorherigen Ausgabe und rufen Sie die Anwendung mit
curlauf; Beispiel:curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud -
Rufen Sie die Protokolle Ihrer Anwendung auf. In diesem Beispiel verwendet die App
myappdas Beispielimageicr.io/codeengine/ce-secret-vol. Diese Anwendung liest jede Datei im Verzeichnis/mysecretsund gibt den Dateinamen und -inhalt für jede Anforderung in der Standardausgabe aus, sodass die Ausgabe in den Protokollen der Anwendung enthalten ist. Der Name der Datei lautetapikey.ibmcloud ce app logs --app myappBeispielausgabe
Getting logs for all instances of application 'myapp'... OK myapp-b3gxd-1-deployment-6f45dcf7f4-nw59z/user-container: Listening on port 8080 apikey: abcdefgh -
Aktualisieren Sie den geheimen Schlüssel
mysecret, um den Wert für die Schlüssel/Wert-Paare inapikeyzu ändern. Beispiel:ibmcloud ce secret update -n mysecret --from-literal apikey=qrst -
Rufen Sie die Anwendung erneut auf.
curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud -
Rufen Sie die Protokolle Ihrer Anwendung auf.
ibmcloud ce app logs --app myappBeispielausgabe
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
Sie haben Daten, die in geheimen Schlüsseln (oder in Konfigurationszuordnungen) gespeichert sind, als Mountdatei zu Ihrer Anwendung hinzugefügt und anschließend die im geheimen Schlüssel gespeicherten Daten aktualisiert. Die App musste nicht erneut gestartet werden, um den aktualisierten referenzierten geheimen Schlüssel zu verwenden.