Serviceendpunkte mit Code Engine verwenden

Alle IBM Cloud® Code Engine Projekte bieten eine Integration mit IBM Cloud® Service-Endpunkten. Dank dieser Unterstützung können Sie eine Verbindung von Ihrer klassischen Infrastruktur zu Code Engine Workloads herstellen und innerhalb des IBM Cloud Netzwerks bleiben.

Sie können die Sichtbarkeit von Code Engine Workloads steuern und festlegen, ob die Anwendung oder Funktion für öffentliche oder private Endpunkte zugänglich gemacht werden soll. Auf eine Anwendung oder Funktion, die für visibility = private konfiguriert ist, wird über Serviceendpunkte zugegriffen. Anwendungen oder Funktionen, auf die über einen Service-Endpunkt zugegriffen wird, verlassen das IBM Netzwerk nicht und bleiben innerhalb des IBM Cloud Netzwerks.

Öffentliche Endpunkte

Öffentliche Endpunkte stellen eine Verbindung zu Ihrer Bereitstellung über das öffentliche Netz bereit. Zum Zeitpunkt der Einrichtung ist die Standardoption für alle Bereitstellungen der öffentliche Endpunkt. Ihre Umgebung muss über Internetzugriff verfügen, um eine Verbindung zu einer Bereitstellung herzustellen.

Private Endpunkte

Eine Bereitstellung mit einem Serviceendpunkt im privaten Netz erhält einen Endpunkt, auf den aus dem öffentlichen Internet nicht zugegriffen werden kann. Der gesamte Datenverkehr wird an eine für Code Engine-Bereitstellungen dedizierte Hardware geleitet und verbleibt im privaten IBM Cloud-Netz. Der gesamte Verkehr zu und von diesem Endpunkt ist kostenlos und verursacht keine Gebühren, sofern der Verkehr auf IBM Cloud bleibt. Nachdem der Zugriff Ihrer Bereitstellung auf das private IBM Cloud-Netz eingerichtet ist, ist für den Aufbau einer Verbindung zu Ihrer Bereitstellung keine Internetverbindung erforderlich.

Code Engine anwendungsbereitstellungen mit privaten Endpunkten sind von jedem Konto innerhalb des privaten Netzwerks erreichbar, und der Zugriff auf jede Instanz erfordert eine Authentifizierung. Um diesen Zugriff auf bestimmte IP-Adressen, IP-Adressbereiche, IBM Cloud-Dienste oder VPCs zu beschränken, konfigurieren Sie kontextbasierte Beschränkungsregeln.

Code Engine-Ressourcen sicher über Serviceendpunkte verwalten

  1. Geben Sie ein Code Engine-Projekt an, um den privaten Endpunkt zu verwenden. Sie können ein Code Engine-Projekt für die Verwendung des privaten Endpunkts nur mit der Befehlszeilenschnittstelle konfigurieren. Verwenden Sie den Befehl ibmcloud ce project create mit der Option --endpoint=private, um ein Projekt zu erstellen.

    ibmcloud ce project create --name myproject --endpoint=private
    

    Warten Sie, bis sich das Projekt im Status active befindet. Bei der CLI können Sie den Projektstatus mit dem Befehl ibmcloud ce project get bestätigen.

    Wenn ein vorhandenes Code Engine-Projekt den privaten Endpunkt verwenden soll, verwenden Sie den Befehl ibmcloud ce project select mit der Option --endpoint=private.

    ibmcloud ce project select --name myproject --endpoint=private
    

    Wenn für die Befehle project create und project select die Option --endpoint nicht explizit angegeben wird, wird das Verhalten vom System bestimmt. Wenn die IBM Cloud-CLI mit private.cloud.ibm.com verbunden ist, verhält sich das Code Engine-Projekt so, als wäre --endpoint private. Wenn die IBM Cloud-CLI mit cloud.ibm.com verbunden ist, verhält sich das Code Engine-Projekt so, als wäre --endpoint public.

  2. Wenn Sie kein neues Projekt erstellt haben, sondern ein bestehendes Projekt ausgewählt haben und Ihre Anwendung nur für den privaten Endpunkt sichtbar sein soll, bestätigen Sie, dass das bestehende Projekt Anwendungen mit privater Sichtbarkeit unterstützt. Überprüfen Sie mit dem Befehl ibmcloud ce project get, ob die Ausgabe für Application Private Visibility Supported auf true festgelegt ist. Wenn der Wert false ist, kontaktieren Sie den IBM Support, um diese Funktion in Ihrem vorhandenen Projekt zu aktivieren.

    ibmcloud ce project get -n myproject
    

    Beispielausgabe

    Getting project 'myproject'...
    OK
    
    Name:                                      myproject
    ID:                         abcdabcd-abcd-abcd-abcd-f1de4aab5d5d
    Status:                                    active
    Enabled:                                   true
    Application Private Visibility Supported:  false
    Selected:                                  true
    Region:                                    us-south
    Resource Group:             default
    Service Binding Service ID: ServiceId-1234abcd-abcd-abcd-1111-1a2b3c4d5e6f
    Age:                        52d
    Created:                                   Tue, 28 Sep 2021 05:12:16 -0500
    Updated:                                   Tue, 28 Sep 2021 05:12:19 -0500
    
    Quotas:
    Category                                  Used  Limit
    App revisions                             1     60
    Apps                                      1     20
    Build runs                                1     100
    Builds                                    2     100
    Configmaps                                2     100
    CPU                                       0     64
    Ephemeral storage                         0     256G
    Instances (active)                        0     250
    Instances (total)                         0     2500
    Job runs                                  0     100
    Jobs                                      0     100
    Memory                                    0     256G
    Secrets                                   6     100
    Subscriptions (cron)                      0     100
    Subscriptions (IBM Cloud Object Storage)  0     100
    Subscriptions (Kafka)                     0     100
    
  3. Erstellen Sie eine Anwendung oder Funktion, die nur für den privaten Endpunkt sichtbar ist. Verwenden Sie den Befehl ibmcloud ce application create oder den Befehl ibmcloud ce function create mit der Option --visibility=private. Alternativ können Sie auch die Konsole verwenden, um eine Anwendung oder Funktion zu erstellen oder zu aktualisieren und die Sichtbarkeit Ihrer Anwendung festzulegen.

    ibmcloud ce application create -n myapp --visibility=private
    

Sicherer Zugriff auf Ihre Anwendung mit Service-Endpunkten

  1. Bestätigen Sie in Ihrem Code Engine-Projekt, dass Ihre Anwendung mit der Einstellung visibility=private konfiguriert ist. Siehe Bereitstellen Ihrer Anwendung mit einem privaten Endpunkt.

  2. Rufen Sie die URL der Code Engine-Anwendung ab, die für das private Netz verfügbar ist. Die URL hat folgendes Format: <app>.<uuid>.private.<region>.codeengine.appdomain.cloud.

    • Gehen Sie in der Konsole Code Engine auf die Registerkarte Domänenzuordnungen für Ihre Anwendung, um die Sichtbarkeit einer Anwendung und ihre verfügbaren URLs anzuzeigen.

    • Verwenden Sie in der Code Engine-CLI den Befehl ibmcloud ce application get mit der Option --option url. Da im folgenden Beispiel die Sichtbarkeit von myapp auf visibility=private eingestellt ist, wird durch die Angabe von --option url mit diesem Befehl die URL an das private Netzwerk ausgegeben.

      ibmcloud ce application get -n myapp -output url
      

      Beispielausgabe

      http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
      
  3. Rufen Sie die Anwendung innerhalb des privaten Netzes IBM Cloud auf (z. B. durch Aufruf der Anwendung über die Shell IBM Cloud ).

    Die myapp-Anwendung ist eine einfache Hello World-Anwendung. Wenn Sie die Anwendung myapp mit cURL, ausführen, wird Hello World zurückgegeben. Führen Sie zum Beispiel von der Shell IBM Cloud aus:

    curl http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
    

Sicherer Zugriff auf Ihre Funktion mit Serviceendpunkten

  1. Vergewissern Sie sich in Ihrem Code Engine Projekt, dass Ihre Funktion mit einer visibility=private Einstellung konfiguriert ist. Siehe Funktion mit einem privaten Endpunkt bereitstellen.

  2. Rufen Sie die URL der Funktion Code Engine ab, die dem privaten Netz ausgesetzt ist. Die URL hat folgendes Format: <function>.<uuid>.private.<region>.codeengine.appdomain.cloud.

    • Gehen Sie in der Konsole Code Engine auf die Registerkarte Domänenzuordnungen für Ihre Funktion, um die Sichtbarkeit der Funktion und ihre verfügbaren URLs anzuzeigen.

    • Verwenden Sie in der Code Engine-CLI den Befehl ibmcloud ce function get. Da im folgenden Beispiel die Sichtbarkeit von myfunction auf visibility=private eingestellt ist, gibt dieser Befehl die URL an das private Netzwerk aus.

      ibmcloud ce function get -n myfunction
      

      Beispielausgabe

      http://myfunction.1abc23def19.private.us-south.codeengine.appdomain.cloud