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.

  1. Erstellen Sie einen geheimen Schlüssel mit dem Namen mysecret und geben Sie die Schlüssel/Wert-Paare für den geheimen Schlüssel mit der Option --from-literal an. Beispiel:

    ibmcloud ce secret create -n mysecret --from-literal apikey=abcdefgh
    
  2. Erstellen Sie die myapp-Anwendung, die das icr.io/codeengine/ce-secret-vol-Image verwendet. Verwenden Sie die Option --mount-secret, um den Inhalt des geheimen Schlüssels mysecret an die App im Verzeichnis /mysecrets anzuhängen bzw. zu dieser hinzuzufügen. Durch Angabe der Option --min-scale=1 verfü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 1
    

    Beispielausgabe

    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
    
  3. Kopieren Sie die URL in der vorherigen Ausgabe und rufen Sie die Anwendung mit curl auf; Beispiel:

    curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
    
  4. Rufen Sie die Protokolle Ihrer Anwendung auf. In diesem Beispiel verwendet die App myapp das Beispielimage icr.io/codeengine/ce-secret-vol. Diese Anwendung liest jede Datei im Verzeichnis /mysecrets und 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 lautet apikey.

    ibmcloud ce app logs --app myapp
    

    Beispielausgabe

    Getting logs for all instances of application 'myapp'...
    OK
    
    myapp-b3gxd-1-deployment-6f45dcf7f4-nw59z/user-container:
    Listening on port 8080
    apikey: abcdefgh
    
  5. Aktualisieren Sie den geheimen Schlüssel mysecret, um den Wert für die Schlüssel/Wert-Paare in apikey zu ändern. Beispiel:

    ibmcloud ce secret update -n mysecret --from-literal apikey=qrst
    
  6. Rufen Sie die Anwendung erneut auf.

    curl https://myapp.4svg40kna19.us-south.codeengine.appdomain.cloud
    
  7. Rufen Sie die Protokolle Ihrer Anwendung auf.

    ibmcloud ce app logs --app myapp
    

    Beispielausgabe

    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.