Angepasste Domänenzuordnungen für Ihre Funktion konfigurieren

Domänenzuordnungen stellen die URL-Route zu Ihrer Code Engine-Funktion innerhalb eines Projekts bereit. Mit Code Enginewerden diese Zuordnungen standardmäßig automatisch erstellt, wenn Sie Ihre Funktion bereitstellen. Sie können jedoch Ihre eigene angepasste Domäne einer Code Engine-Funktion zuordnen, um Anforderungen von Ihrer angepassten URL über die Code Engine-Konsole oder Befehlszeilenschnittstelle an Ihre Funktion weiterzuleiten.

Wenn Sie Ihre Funktion auf eine Domäne ausrichten möchten, deren Eigner Sie sind, können Sie eine angepasste Domänenzuordnung verwenden. Wenn Sie in Code Engineeine angepasste Domänenzuordnung festlegen, definieren Sie eine 1-to-1-Zuordnung zwischen Ihrem vollständig qualifizierten Domänennamen (FQDN) und einer Code Engine-Funktion in Ihrem Projekt.

Eine angepasste Domänenzuordnung darf nur auf eine Zuordnung verweisen. Sie können jedoch mehrere Domänenzuordnungen für eine einzelne Funktion konfigurieren.

Sie können maximal 80 angepasste Domänenzuordnungen pro Projekt erstellen. Siehe Projektkontingente.

Wenn Sie eine angepasste Domänenzuordnung in Code Engineerstellen, muss der in der Zuordnung verwendete Domänenname in der Region eindeutig sein.

Gehen Sie wie folgt vor, um angepasste Domänenzuordnungen zu erstellen und einzurichten:

  1. Lesen Sie die Hinweise vor der Verwendung von angepassten Domänenzuordnungen in Code Engine.
  2. Rufen Sie Ihre angepasste Domäne von einem Domänenregistrator ab (außerhalb von Code Engine).
  3. Konfigurieren Sie eine angepasste Domänenzuordnung in Code Engine für Ihre -Funktion (über die Code Engine-Konsole oder CLI).
  4. Schließen Sie die Konfiguration der angepassten Domäne mit Ihrem Domänenregistrator ab. (außerhalb von Code Engine).

Angenommen, Sie möchten eine angepasste Domänenzuordnung für www.example.com und shop.example.com erstellen. In diesem Fall müssen Sie eine angepasste Domänenzuordnung für jede eindeutige Domäne oder Unterdomäne erstellen. Sie können denselben geheimen TLS-Schlüssel jedoch für mehrere angepasste Domänenzuordnungen wiederverwenden, wenn die Zertifikate des geheimen TLS-Schlüssels die Domäne enthalten, die in der angepassten Domänenzuordnung angegeben ist. Dies bedeutet, dass Sie einen geheimen TLS-Schlüssel mehreren Domänen wie www.example.com und shop.example.com oder einer Platzhalterdomäne wie *.example.com zuordnen können.

Angepasste Domänenzuordnungen über die Konsole konfigurieren

Sie können eine angepasste Domänenzuordnung mit Ihrer Funktion Code Engine zu Ihrem registrierten Domänennamen mit der Konsole Code Engine erstellen.

Vorbereitende Schritte

In diesem Szenario erstellen Sie eine angepasste Domänenzuordnung zu einer Funktion mit einem geheimen TLS-Schlüssel. Erstellen Sie beispielsweise eine angepasste Domänenzuordnung, um die Domäne www.example.com der Funktion myfunction zuzuordnen.

  1. Gehen Sie auf der Seite Code Engine Projekte Seite, gehen Sie zu Ihrem Projekt.

  2. Klicken Sie auf der Übersichtsseite auf Domänenzuordnungen.

  3. Klicken Sie auf der Seite "Domänenzuordnungen" auf Erstellen, um Ihre Zuordnung zu erstellen.

  4. Geben Sie auf der Seite Domänenzuordnung erstellen den geheimen TLS-Schlüssel an, der für diese Domänenzuordnung verwendet werden soll. Code Engine prüft, ob das Zertifikat von einer anerkannten Zertifizierungsstelle signiert wurde und ob es mit dem angegebenen angepassten Domänennamen und dem privaten Schlüssel übereinstimmt.

    So erstellen Sie einen neuen geheimen TLS-Schlüssel:

    1. Klicken Sie auf Erstellen.
    2. Fügen Sie das TLS-Zertifikat einschließlich aller Zwischenzertifikate hinzu, die Ihrer Domäne zugeordnet sind. Wenn das Zertifikat als separate Dateien bereitgestellt wird, verketten Sie den Inhalt der Dateien. Sie können diese Informationen in einer Datei angeben.
    3. Fügen Sie den privaten Schlüssel hinzu, der zu Ihrem Zertifikat gehört. Sie können diese Informationen in einer Datei angeben.

    Beispielformat für eine Zertifikatskette

    -----BEGIN CERTIFICATE-----
    ...certificate...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...intermediate-certificate...
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    ...intermediate-certificate...
    -----END CERTIFICATE-----
    

    Um einen vorhandenen geheimen TLS-Schlüssel zu verwenden,

    1. Klicken Sie auf Auswählen.
    2. Wählen Sie den vorhandenen geheimen Schlüssel aus der Liste aus, den Sie verwenden möchten.
  5. Geben Sie den Domänennamen und die Zielkomponente an.

    • Geben Sie den vollständig qualifizierten Domänennamen für Ihren angepassten Domänennamen an, z. B. www.example.com.
    • Wählen Sie eine vorhandene Zielfunktion aus, z. B. myfunction. Für dieses Beispiel verwendet die Funktion myfunction das Beispielbild icr.io/codeengine/helloworld. Weitere Informationen zu dem Code, der für dieses Beispiel verwendet wird, finden Sie unter helloworld.
    • Beachten Sie das Feld CNAME-Ziel. Dieser Wert ist der CNAME-Eintrag, der erforderlich ist, wenn Sie die Konfiguration der angepassten Domäne mit Ihrem Domänenregistrator abschließen, sodass der Datenverkehr, der auf Ihre angepasste Domäne abzielt, an die angegebene Funktion weitergeleitet wird.
  6. Klicken Sie auf Erstellen, um die angepasste Domänenzuordnung zu erstellen.

Jetzt haben Sie eine Domänenzuordnung, die in Code Engineerstellt wird. Anforderungen, die an Ihre Funktion gesendet werden, werden jedoch noch nicht an Ihre angepasste Domäne weitergeleitet. Als Nächstes schließen Sie die angepasste Domänenkonfiguration mit Ihrem Domänenregistrator ab.

Angenommen, Sie möchten eine angepasste Domänenzuordnung für www.example.com und shop.example.com erstellen. In diesem Fall müssen Sie eine angepasste Domänenzuordnung für jede eindeutige Domäne oder Unterdomäne erstellen. Sie können denselben geheimen TLS-Schlüssel jedoch für mehrere angepasste Domänenzuordnungen wiederverwenden, wenn der geheime TLS-Schlüssel eine Zertifizierung für die Domäne enthält, die in der angepassten Domänenzuordnung angegeben ist. Der geheime TLS-Schlüssel kann Zertifikate enthalten, die bestimmten Domänen wie www.example.com und shop.example.com zugeordnet sind, oder eine Platzhalterdomäne wie *.example.com. Beachten Sie, dass Sie die Platzhalterdomäne nur einmal in einer Region verwenden können.

Angepasste Domänenzuordnungen über die Befehlszeilenschnittstelle konfigurieren

Verwenden Sie den Befehl domainmapping create, um eine angepasste Domänenzuordnung über die Befehlszeilenschnittstelle (CLI) zu erstellen. Dieser Befehl erfordert einen vollständig qualifizierten Domänennamen (FQDN), wie z. B. www.example.com, eine Zielfunktion und einen geheimen TLS-Schlüssel. Eine vollständige Liste der Optionen finden Sie unter dem Befehl ibmcloud ce domainmapping create.

Vorbereitende Schritte

Wenn Ihr Domänenname registriert ist, Sie über ein signiertes TLS-Zertifikat und den zugehörigen übereinstimmenden privaten Schlüssel für diese Domäne verfügen und Sie über eine vorhandene Funktion Code Engine verfügen, können Sie eine angepasste Domänenzuordnung hinzufügen. Sie können den Befehl domainmapping create in der Befehlszeilenschnittstelle verwenden, um eine angepasste Domänenzuordnung mit Ihrer Funktion Code Engine zu erstellen.

  1. Erstellen Sie einen geheimen TLS-Schlüssel mit dem signierten TLS-Zertifikat und dem privaten Schlüssel. In diesem Beispiel enthält die Datei mycert.txt das TLS-Zertifikat einschließlich aller Zwischenzertifikate, die Ihrer Domäne zugeordnet sind. Wenn das Zertifikat als separate Dateien bereitgestellt wird, verketten Sie den Inhalt der Dateien. Die Datei myprivatekey.txt enthält den entsprechenden privaten Schlüssel, der der Zertifikatskette entspricht.

    ibmcloud ce secret create --name mytlssecret --format tls --cert-chain-file  mycertchain.txt --private-key-file myprivatekey.txt
    

    Beispielausgabe

    Creating tls secret 'mytlssecret'...
    OK
    
  2. Erstellen Sie die angepasste Domänenzuordnung zwischen der Funktion Code Engine myfunction und der angepassten Domäne www.example.com. Verwenden Sie den geheimen TLS-Schlüssel, den Sie im vorherigen Schritt erstellt haben.

    ibmcloud ce domainmapping create --domain-name www.example.com --target myhellofun --tls-secret mytlssecret
    

    Beispielausgabe

    OK
    Domain mapping successfully created.
    

In der folgenden Tabelle sind die Optionen zusammengefasst, die in diesem Beispiel mit dem Befehl domainmapping create verwendet werden. Weitere Informationen zu diesem Befehl und seinen Optionen finden Sie unter dem Befehl ibmcloud ce domainmapping create.

Befehlsbeschreibung
Option Beschreibung
--domain-name Der Name der benutzerdefinierten Domänenzuordnung. Geben Sie den Namen Ihrer angepassten Domäne an, z. B. www.example.com. Dieser Wert ist erforderlich.
--target Der Name der Zielfunktion Code Engine. Dieser Wert ist erforderlich.
--tls-secret Der geheime TLS-Schlüssel für die Domänenzuordnung. Dieser Wert ist erforderlich.

Jetzt wird Ihre angepasste Domänenzuordnung in Code Engineerstellt. Anforderungen, die an Ihre Funktion gesendet werden, werden jedoch noch nicht an Ihre angepasste Domäne weitergeleitet. Als Nächstes müssen Sie die angepasste Domänenkonfiguration mit Ihrem Domänenregistrator abschließen.

Angepasste Domänenkonfiguration mit Ihrem Domänenregistrator abschließen

Nachdem die angepasste Domänenzuordnung Code Engine erstellt wurde, muss den DNS-Einstellungen der angepassten Domäne ein CNAME-Datensatz hinzugefügt werden, der dem vollständig qualifizierten Domänennamen entspricht. Die DNS-Einstellungen finden Sie in den Konfigurationseinstellungen des entsprechenden Domänenregistrators. Führen Sie diesen Schritt aus, damit Datenverkehr, der auf Ihre angepasste Domäne abzielt, an die Funktion Code Engine weitergeleitet wird, wie in Ihrer angepassten Domänenzuordnung Code Engine definiert.

Angepasste Domäne testen

Nachdem Sie die angepasste Domänenkonfiguration mit Ihrem Domänenregistrator abgeschlossen haben und die CNAME-Datensatzaktualisierungen veröffentlicht wurden, können Sie die Funktion mit der angepassten Domänenzuordnung testen.

Rufen Sie in einem Browser die Funktion auf, indem Sie die angepasste Domäne mit dem Befehl curl angeben.

curl -v -X GET https://www.example.com

Die Ausgabe des Aufrufs an die angepasste Domäne wird der Funktion myhellofun zugeordnet, die das Beispielbild icr.io/codeengine/helloworld verwendet.