Zusammenarbeit mit dem Veranstalter „ Kafka “
Ein „ Code Engine “- Kafka-Abonnement überwacht, ob neue Nachrichten in einer „ Kafka “-Instanz erscheinen. Wenn Sie eine Subskription für eine Gruppe von Themen erstellen, empfängt Ihre Anwendung oder Ihr Job ein separates Ereignis für jede neue Nachricht, die in einem der Themen angezeigt wird. Pro Projekt können Sie maximal 100 „ Kafka “-Abonnements erstellen.
Sie können zwar jede beliebige „ Kafka “-Instanz verwenden, in den Beispielen dieses Themas wird jedoch der Dienst „ IBM® Event Streams for IBM Cloud® “ verwendet. „ Event Streams “ ist ein „ IBM “-Ereignis-Streaming-Dienst für „ Kafka “-Ereignisse. Weitere Informationen zu diesem Dienst finden Sie unter Event Streams Dokumentation.
Einrichten des „ Kafka “-Ereignis-Producers
Sie können Ihren „ Kafka “-Nachrichtenproduzenten so einrichten, dass er Nachrichten an die Ereignisabonnements „ Code Engine “ und „ Kafka “ sendet. Verwenden Sie Ihr „ Code Engine “- Kafka-Ereignisabonnement, um Anwendungen oder Jobs auszulösen, sobald eine „ Kafka “-Nachricht eingeht.
Erstellen Sie zunächst eine Event Streams-Serviceinstanz für Ihren Event-Streaming-Service. Während Sie die Konsole oder die Befehlszeilenschnittstelle verwenden können, wird in den folgenden Schritten beschrieben, wie Sie den Ereigniserzeuger Event Streams mit der Befehlszeilenschnittstelle einrichten.
Event Streams-CLI-Umgebung einrichten
-
Laden Sie die IBM Cloud-Befehlszeilenschnittstelle herunter und installieren Sie diese. Melden Sie sich bei der IBM Cloud-CLI an.
ibmcloud login -
Laden Sie die Code Engine-Befehlszeilenschnittstelle herunter und installieren Sie sie.
ibmcloud plugin install code-engine -f -
Wenn Sie den Service Event Streams zum Erstellen Ihrer Kafka-Instanz verwenden möchten, laden Sie die Event Streams-CLI herunter und installieren Sie sie.
ibmcloud plugin install event-streams -f -
Melden Sie sich bei Ihrem IBM Cloud-Konto an und legen Sie eine Ressourcengruppe als Ziel fest. Führen Sie den folgenden Befehl aus, um eine Ressourcengruppe als Ziel festzulegen. Um eine Liste Ihrer Ressourcengruppen anzuzeigen, führen Sie den Befehl „
ibmcloud resource groups“ aus.ibmcloud target -g <resource_group>
Einrichten Ihrer „ Kafka “-Instanz
-
Erstellen Sie eine Serviceinstanz für Event Streams. Der Name des Event Streams-CLI-Service lautet
messagehub. Erstellen Sie für dieses Beispiel eine Event Streams-Serviceinstanz namensmyeventstream.ibmcloud resource service-instance-create myeventstream messagehub lite us-south -
Erstellen Sie einen Serviceschlüssel, um Berechtigungsnachweise für Ihre Serviceinstanz bereitzustellen.
ibmcloud resource service-key-create myeventstream-key Manager --instance-name myeventstreamBeispielausgabe
Creating service key of service instance myeventstream under account <user_account>... OK Service key crn:v1:bluemix:public:messagehub:us-south:a/e43abfcbd191404cb17ef650e9681dd3:c0736069-3f4a-438a-b614-6846877d692d:resource-key:4c8edfdb-abcd-abcd-abcd-abcdabcdabcd was created. Name: myeventstream-key ID: crn:v1:bluemix:public:messagehub:us-south:a/e43abfcbd191404cb17ef650e9681dd3:c0736069-3f4a-438a-b614-6846877d692d:resource-key:4c8edfdb-abcd-abcd-abcd-abcdabcdabcd Created At: Mon Mar 21 18:36:09 UTC 2022 State: active Credentials: api_key: abcdeH9tu3qE5Sn8VbJfcDEWtjR_l0iPisB3abcdefgh apikey: abcdeH9tu3qE5Sn8VbJfcDEWtjR_l0iPisB3abcdefgh iam_apikey_description: Auto-generated for key crn:v1:bluemix:public:messagehub:us-south:a/e43abfcbd191404cb17ef650e9681dd3:c0736069-3f4a-438a-b614-6846877d692d:resource-key:4c8edfdb-abcd-abcd-abcd-abcdabcdabcd iam_apikey_name: myeventstream-key iam_role_crn: crn:v1:bluemix:public:iam::::serviceRole:Manager iam_serviceid_crn: crn:v1:bluemix:public:iam-identity::a/e43abfcbd191404cb17ef650e9681dd3::serviceid:ServiceId-3e99caa5-b174-4f04-9845-5c5d783b8bc7 instance_id: c0736069-3f4a-438a-b614-6846877d692d kafka_admin_url: https://abcdabcdabcdabcd.svc07.us-south.eventstreams.cloud.ibm.com kafka_brokers_sasl: [broker-1-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 broker-2-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 broker-5-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 broker-3-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 broker-4-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 broker-0-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093] kafka_http_url: https://abcdabcdabcdabcd.svc07.us-south.eventstreams.cloud.ibm.com password: abcdeH9tu3qE5Sn8VbJfcDEWtjR_l0iPisB3abcdefgh user: tokenNotieren Sie sich die Werte für
user,passwordundkafka-brokers_saslfür Ihren Serviceschlüssel. Sie benötigen diese Informationen, wenn Sie Ihre Subskription für Code Engine Kafka einrichten. Die Werte fürpasswordundapikeysind im Serviceschlüssel für Ihre Event Streams-Serviceinstanz identisch. Sie können auch den Befehlibmcloud resource service-key myeventstream-keyverwenden, um die Serviceschlüsselinformationen abzurufen. -
Initialisieren Sie das Plug-in Event Streams relativ zu Ihrer Event Streams-Serviceinstanz.
ibmcloud es init --instance-name myeventstream -
Erstellen Sie ein „ Event Streams “-Thema.
ibmcloud es topic-create kafka-topic1
Einrichten einer Code Engine-Beispielapp zum Erzeugen von Kafka-Nachrichten
Verwenden Sie für dieses Szenario eine Anwendung Code Engine, um als Ereigniserzeuger von Kafka-Nachrichten zu fungieren. Der Zweck dieser Anwendung ist das Herstellen einer Verbindung zu Ihrer Event Streams-Instanz und das Senden von Kafka-Nachrichten.
Diese Anwendung verwendet die Code Engine Kafka-Beispielapp für Sender zum Senden von Kafka-Nachrichten. Dieses Beispielabsender-Image erfordert
die Umgebungsvariable BROKERS und einen geheimen Schlüssel, der die password-Berechtigungsnachweise enthält. Sie können diese Anwendung über die Konsole oder mithilfe der CLI erstellen.
Achten Sie darauf, den Header „ Content-Type “ anzugeben, wenn Sie „ Kafka “-Nachrichten an Event Streams senden. Geben Sie diesen Header an, damit der Consumer Nachrichten mit dem erwarteten Inhaltstyp empfangen kann, z. B. application/json.
Geheimen Schlüssel mit Berechtigungsnachweisen erstellen, die für die Kafka-Beispiele erforderlich sind
Bevor Sie die Anwendung Code Engine erstellen, um Kafka-Nachrichten zu senden, erstellen Sie einen geheimen Schlüssel Code Engine, der die erforderlichen Berechtigungsnachweise enthält.
Vorbereitende Schritte
- Bestimmen Sie das Code Engine-Projekt, das Sie verwenden möchten, und vergewissern Sie sich, dass dieses Projekt ausgewählt ist. Siehe Projekt erstellen und mit einem Projekt arbeiten.
Der Einfachheit halber erstellen Sie in diesem Szenario ein Geheimnis ( kafka-subscription-secret), das die Anmeldeinformationen enthält, die sowohl für die Absender-Beispiel-App „ Kafka “ als auch für das Ereignisabonnement
„ Kafka “ erforderlich sind, das die Empfänger-Beispiel-App „ Kafka “ verwendet. Diese Anmeldedaten sind erforderlich, damit die Beispiel-Sender-App „ Kafka “ und das Ereignisabonnement „ Code Engine “ unter Kafka mit der Service-Instanz
unter Event Streams kommunizieren können. Es ist zwar nicht erforderlich, diesen geheimen Schlüssel vor der Erstellung der „ Kafka “-Absender-App und des Ereignisabonnements anzulegen, doch vereinfacht dieser Schritt die erforderlichen
Vorgänge.
Geheimen Schlüssel mit Berechtigungsnachweisen erstellen, die für die Kafka-Beispiele in der Konsole erforderlich sind
Rufen Sie zum Erstellen des geheimen kafka-subscription-secret-Schlüssels über die Konsole Secrets and configmaps auf, klicken Sie auf Create und wählen Sie den zu erstellenden geheimen Schlüssel
aus. Weitere Informationen finden Sie unter Geheimen Schlüssel über die Konsole erstellen.
- Geben Sie den Schlüssel
usernamemit dem Wertuseran, der in den Details der Serviceberechtigungsnachweise in der Serviceinstanz Event Streams aufgelistet ist. Für die Serviceinstanz von Event Streams lautet dieser Werttoken. Dieser Schlüssel ist für die Authentifizierung zwischen der Kafka-Ereignissubskription Code Engine und dem Kafka-Nachrichtenbroker erforderlich. - Geben Sie den Schlüssel
passwordmit dem Wertapikeyan, der in den Details der Serviceberechtigungsnachweise in der Serviceinstanz Event Streams aufgelistet ist. Dieser Schlüssel ist für das Senderbeispiel und zum Aktivieren der Kommunikation zwischen der Ereignissubskription Code Engine Kafka und dem Kafka-Nachrichtenbroker erforderlich.
Geheimen Schlüssel mit Berechtigungsnachweisen erstellen, die für die Kafka-Beispiele über die Befehlszeilenschnittstelle erforderlich sind
Fügen Sie zum Erstellen des geheimen Schlüssels kafka-subscription-secret über die CLI eine Literalumgebungsvariable für password und username hinzu. Weitere Informationen finden Sie unter Geheimen Schlüssel mit der Befehlszeilenschnittstelle erstellen.
-
Geben Sie den Schlüssel
usernamemit dem Wertuseran, der in den Details der Serviceberechtigungsnachweise in der Serviceinstanz Event Streams aufgelistet ist. Für die Serviceinstanz von Event Streams lautet dieser Werttoken. Dieser Schlüssel ist für die Authentifizierung zwischen der Kafka-Ereignissubskription Code Engine und dem Kafka-Nachrichtenbroker erforderlich. -
Geben Sie den Schlüssel
passwordmit dem Wertapikeyan, der in den Details der Serviceberechtigungsnachweise in der Serviceinstanz Event Streams aufgelistet ist. Dieser Schlüssel ist für das Senderbeispiel und zum Aktivieren der Kommunikation zwischen der Ereignissubskription Code Engine Kafka und dem Kafka-Nachrichtenbroker erforderlich.ibmcloud ce secret create --name kafka-subscription-secret --from-literal password=<value_of_apikey> --from-literal username=<value_of_user>Beispiel:
ibmcloud ce secret create --name kafka-subscription-secret --from-literal password=abcdeH9tu3qE5Sn8VbJfcDEWtjR_l0iPisB3abcdefgh --from-literal username=token
App Code Engine zum Senden von Ereignissen erstellen
Erstellen Sie eine „ Code Engine “-App, um eine Verbindung zu Ihrer „ Event Streams “-Instanz herzustellen und „ Kafka “-Nachrichten an einen Empfänger von „ Kafka “-Nachrichten ( Kafka-Consumer) zu erzeugen (zu senden).
Code Engine-App zum Senden von Ereignissen über die Konsole erstellen
Um die Anwendung „ kafka-sender-app “ über die Konsole zu erstellen, führen Sie die folgenden Schritte aus.
-
Erstellen Sie eine Code Engine-Anwendung mit dem Namen
kafka-sender-appund den folgenden Informationen.- Referenzieren Sie das
icr.io/codeengine/kafka-sender-Container-Image für diese App. Dieses Image wird aussender.goerstellt, das über die -Beispiele für IBM Cloud Code Engine GitHub repoverfügbar ist. Diese Beispiel-Sender-App erfordert Werte fürpasswordundBROKERS. - Fügen Sie im Abschnitt Umgebungsvariablen (optional) die folgenden Umgebungsvariablen hinzu.
- Fügen Sie die Literalumgebungsvariable
BROKERShinzu. Geben Sie als Wert dieses Schlüssels mindestens einen der Broker-Hosts an, die in den Details der Serviceberechtigungsnachweise in der Serviceinstanz von Event Streams aufgelistet sind. - Fügen Sie eine weitere Umgebungsvariable hinzu, um auf den vollständigen geheimen Schlüssel zu verweisen,
kafka-subscription-secret. Dieser geheime Schlüssel enthält die Berechtigungsnachweise fürpassword.
- Fügen Sie die Literalumgebungsvariable
- (Optional) Geben Sie im Abschnitt Ressourcen & Skalierung
1für die minimale Anzahl von Instanzen an, damit die App immer eine Instanz hat, die aktiv ist und nicht auf null skaliert wird. Eine solche Konfiguration, bei der die Anwendung stets über eine aktive Instanz verfügt, ist nützlich, wenn Sie Protokolle anzeigen. Wenn Sie in einer Produktionsumgebung arbeiten, berücksichtigen Sie die Kosten für das Beibehalten einer aktiven Instanz Ihrer App oder ob Code Engine automatisch auf null skaliert werden soll. Standardmäßig wird die App auf null skaliert, wenn sie nicht verwendet wird. - Klicken Sie auf Create, um Ihre App zu erstellen und bereitzustellen.
- Referenzieren Sie das
-
Vergewissern Sie sich, dass sich diese App im Status
readybefindet.
App Code Engine zum Senden von Ereignissen über die Befehlszeilenschnittstelle erstellen
Verwenden Sie die folgenden Befehle, um die kafka-sender-app-Anwendung über die Befehlszeilenschnittstelle zu erstellen.
-
Erstellen Sie eine Code Engine-Anwendung mit dem Namen
kafka-sender-appund den folgenden Informationen.- Geben Sie die Option
--imagean, um auf das Container-Imageicr.io/codeengine/kafka-senderzu verweisen. Dieses Image wird aussender.goerstellt, das über die -Beispiele für IBM Cloud Code Engine GitHub repoverfügbar ist. Diese Beispiel-Sender-App erfordert diepassword-Berechtigungsnachweise, die in Ihremkafka-subscription-secretgespeichert sind, und die UmgebungsvariableBROKERS. - Geben Sie die Option
--env-from-secretan, um auf den vollständigen geheimen Schlüsselkafka-subscription-secretzu verweisen, der diepassword-Berechtigungsnachweise enthält. - Geben Sie die Option
--envan, um die LiteralumgebungsvariableBROKERShinzuzufügen, und geben Sie den Namen eines der Broker-Hosts an, die in den Details der Serviceberechtigungsnachweise in der Serviceinstanz Event Streams aufgelistet sind. Wenn Sie jedoch mehrere Broker-Hostnamen angeben möchten, verwenden Sie das Format--env BROKERS-broker1,broker2,broker3. - (optional) Geben Sie die Option „
--min-scale=1“ an, damit die App stets über eine laufende Instanz verfügt und nicht auf null skaliert wird. Eine solche Konfiguration, bei der die Anwendung stets über eine aktive Instanz verfügt, ist nützlich, wenn Sie Protokolle anzeigen. Wenn Sie in einer Produktionsumgebung arbeiten, berücksichtigen Sie die Kosten für das Beibehalten einer aktiven Instanz Ihrer App oder ob Code Engine automatisch auf null skaliert werden soll. Standardmäßig wird die App auf null skaliert, wenn sie nicht verwendet wird.
ibmcloud ce app create --name kafka-sender-app --image icr.io/codeengine/kafka-sender --env-from-secret kafka-subscription-secret --env BROKERS=broker-4-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 --min-scale 1 - Geben Sie die Option
Code Engine für den Empfang von Kafka-Ereignissen für eine App einrichten
Damit „ Code Engine “ mit „ Kafka “-Ereignissen funktioniert, richten Sie über die Konsole oder die CLI ein Abonnement für „ Code Engine “- Kafka-Ereignisse ein, um eine Verbindung zu „ Kafka “-Ereignisbrokern herzustellen und auf „ Kafka “-Ereignisse zu warten. Richten Sie außerdem eine „ Code Engine “-App (oder einen Job) ein, die als Empfänger der „ Kafka “-Ereignisse fungiert. Das „ Kafka “-Ereignisabonnement definiert die Beziehung zwischen dem „ Kafka “-Produzenten (Absender) und dem „ “-Konsumenten (Empfänger) von Ereignissen.
Das Code Engine Kafka Ereignisabonnement stellt eine Verbindung zu Ihrem Kafka Message Broker her und sendet HTTP Post-Anforderungen für jede eingehende Kafka Nachricht an die Empfängeranwendung. Weitere Informationen finden Sie im Thema Informationen zu HTTP-Headern und -Hauptteilen für Ereignisse.
Kafka-Ereignisse für eine App über die Konsole abonnieren
Über die Konsole können Sie ein Abonnement für „ Kafka “-Ereignisse einrichten, sodass Ereignisse an eine „ Code Engine “-Anwendung gesendet werden.
Code Engine-App zum Empfangen von Kafka-Ereignissen über die Konsole erstellen
- Erstellen Sie eine Code Engine-Anwendung als Ereigniskonsument von Kafka-Nachrichten und empfangen Sie die Kafka-Ereignisse. Erstellen Sie beispielsweise
eine Anwendung mit dem Namen
kafka-receiver-app, die dasicr.io/codeengine/kafka-receiver-Image verwendet. Dieses Image wird ausreceiver.goerstellt, das über die -Beispiele für IBM Cloud Code Engine GitHub repoverfügbar ist. Dieses Beispiel erfordert keine Umgebungsvariablen. - Vergewissern Sie sich nach der Bereitstellung dieser App, dass sie sich im Status
readybefindet.
Wenn Sie die Konsole verwenden, muss die App oder der Job, mit der bzw. dem Sie „ Kafka “-Ereignisse empfangen, nicht unbedingt bereits vorhanden sein, bevor Sie das Abonnement für das „ Kafka “-Ereignis erstellen. Wenn die App oder der Job jedoch beim Erstellen der Ereignissubskription nicht vorhanden ist, gibt der Status der Subskription an, dass der Konsument nicht vorhanden ist. Sie müssen die App oder den Job erstellen, bevor sich das Abonnement im Bereitstatus befindet und Ereignisse über dieses Abonnement empfangen kann.
Code Engine Kafka-Ereignissubskription für eine App über die Konsole erstellen
Das „ Kafka “-Ereignisabonnement definiert die Beziehung zwischen dem „ Kafka “-Produzenten (Absender) und dem „ “-Konsumenten (Empfänger) von Ereignissen.
Vorbereitende Schritte
- Bestimmen Sie das Code Engine-Projekt, das Sie verwenden möchten, und vergewissern Sie sich, dass dieses Projekt ausgewählt ist. Siehe Projekt erstellen und mit einem Projekt arbeiten.
Führen Sie die folgenden Schritte aus, um über die Konsole ein „ Kafka “-Ereignisabonnement für eine Anwendung zu erstellen.
- Rufen Sie auf der Seite „ Code Engine-Projekte“ Ihr Projekt auf.
- Klicken Sie auf der Seite 'Übersicht' auf Ereignisabonnements.
- Klicken Sie auf der Seite 'Ereignisabonnements' auf Erstellen, um Ihr Abonnement zu erstellen.
- Wählen Sie auf der Seite 'Ereignissubskription erstellen' die Kachel
Event Streams / Kafkaaus, um den Ereignistyp anzugeben. - Geben Sie für Allgemein einen Namen für die
Event Streams / Kafka-Subskription an. Fahren Sie durch Klicken auf Weiter fort. - Weitere Informationen zum Message Broker finden Sie unter,
- Geben Sie die Hosts des „ Kafka “-Message-Broker für die Nachrichtenwarteschlangen an, aus denen Nachrichten als Ereignisse über dieses Abonnement empfangen werden. Um Informationen zu den Broker-Hosts, Themen und Zugriffsberechtigungsnachweisen
abzurufen, zeigen Sie die Details der Serviceberechtigungsnachweise für Ihre Serviceinstanz in der Event Streams-Konsole an. Geben Sie beispielsweise
"broker-0-abcdabcdabcdabcd.kafka.svc01.us-south.eventstreams.cloud.ibm.com:9093", "broker-1-abcdabcdabcdabcd.kafka.svc01.us-south.eventstreams.cloud.ibm.com:9093"für die Nachrichtenbrokerhosts für diemyeventstream-key-Serviceinstanz an. Sie finden die Broker für die Serviceinstanz in Event Streams im FeldKafka_brokers_sasl. - Klicken Sie auf Konfigurieren, um den Zugriff auf den Nachrichtenbroker zu konfigurieren. Zur Authentifizierung von Code Engine bei Ihrer Kafka-oder Event Streams-Instanz müssen Sie einen geheimen Schlüssel für den
Zugriff auf den Nachrichtenbroker bereitstellen.
- Sie können einen neuen geheimen Schlüssel erstellen, einen vorhandenen geheimen Schlüssel auswählen oder, wenn keine Berechtigungsnachweise für den Zugriff auf die Nachrichtenbroker erforderlich sind,
Nonewählen. - Klicken Sie zum Erstellen eines geheimen Schlüssels auf Erstellen. Geben Sie einen Namen für den geheimen Schlüssel und Werte für
usernameundpasswordan. Die Werte fürusernameundpasswordmüssen mit den Werten in den Serviceberechtigungsnachweisen für die Instanz Kafka oder Event Streams übereinstimmen. Der Wert fürusernameist beispielsweise der Wert vonuser, der in den Details der Serviceberechtigungsnachweise in der Serviceinstanz Event Streams aufgelistet ist. Der Wert fürpasswordist der Wert vonapikey, der in den Details der Serviceberechtigungsnachweise in der Event Streams-Serviceinstanz aufgelistet ist. - Verwenden Sie für dieses Beispiel den vorhandenen geheimen Schlüssel
kafka-subscription-secret, der zuvor erstellt wurde.
- Sie können einen neuen geheimen Schlüssel erstellen, einen vorhandenen geheimen Schlüssel auswählen oder, wenn keine Berechtigungsnachweise für den Zugriff auf die Nachrichtenbroker erforderlich sind,
- Geben Sie den Namen vorhandener Themen für die Nachrichtenwarteschlangen an. Beispiel:
kafka-topic1. Um Informationen zu vorhandenen Themen für Ihre Serviceinstanz abzurufen, rufen Sie Ihre Serviceinstanz in der Event Streams-Konsole auf und zeigen Sie Themen an. - (Optional) Geben Sie eine Consumergruppe an. Konsumenten von Kafka-Nachrichten können in Konsumentengruppen gruppiert werden. Wenn Sie Konsumentengruppen verwenden, steuert die Topickonfiguration den Nachrichtenfluss zu Konsumenten in der Konsumentengruppe. Wenn ein Konsument einer Konsumentengruppe hinzugefügt oder aus einer Konsumentengruppe entfernt wird, kann sich der Nachrichtenfluss aus diesem Thema ändern. Diese Aktion kann dazu führen, dass vorhandene Konsumenten keine Nachrichten mehr von diesem Topic empfangen.
- Fahren Sie durch Klicken auf Weiter fort.
- Geben Sie die Hosts des „ Kafka “-Message-Broker für die Nachrichtenwarteschlangen an, aus denen Nachrichten als Ereignisse über dieses Abonnement empfangen werden. Um Informationen zu den Broker-Hosts, Themen und Zugriffsberechtigungsnachweisen
abzurufen, zeigen Sie die Details der Serviceberechtigungsnachweise für Ihre Serviceinstanz in der Event Streams-Konsole an. Geben Sie beispielsweise
- Geben Sie für den Event-Consumer die Anwendung „ Code Engine “ als Empfänger der Ereignisse an. Beachten Sie, dass Sie aus einer Liste definierter Anwendungen und Jobs auswählen können, oder Sie können einen Namen für
eine App (oder einen Job) angeben, die bzw. der noch nicht erstellt wurde. Es ist nicht erforderlich, dass die App oder der Job vorhanden ist, wenn Sie die Ereignissubskription mit der Konsole erstellen. Wenn die Subskription erstellt
wird, spiegelt der Status der Subskription jedoch wider, dass der Konsument nicht vorhanden ist. Sie müssen die App oder den Job erstellen, bevor sich das Abonnement im Bereitstatus befindet und Ereignisse über dieses Abonnement empfangen
kann. Verwenden Sie für dieses Beispiel die
kafka-receiver-app-Anwendung, die dasicr.io/codeengine/kafka-receiver-Image referenziert. Wenn Ihre Anwendung nicht vorhanden ist, geben Sie den Namen Ihrer Anwendung an und erstellen Sie Ihre Anwendung, sobald Sie die Kafka-Subskription erstellen. Nur bei Anwendungen können Sie optional einen Pfad angeben. Ereignisse werden standardmäßig an die Stamm-URL der Zielanwendung weitergeleitet. Durch die Angabe eines Pfades können Sie Ereignisse an ein anderes Ziel innerhalb der App senden. Wenn in Ihrem Subskriptionspfad beispielsweise/eventsangegeben ist, werden die Ereignisse anhttps://<base application URL>/eventsgesendet. Fahren Sie durch Klicken auf Weiter fort. - Überprüfen Sie abschließend die Einstellungen für Ihr „ Kafka “-Ereignisabonnement und nehmen Sie gegebenenfalls Änderungen vor. Wenn Sie bereit sind, klicken Sie auf „Erstellen“, um das „ Kafka “-Abonnement anzulegen.
Ereignisse über die Konsole an die empfangende App senden
Nachdem Sie nun Ihr „ Kafka “-Ereignisabonnement erstellt haben, das auf die Anwendung „ kafka-receiver-app “ verweist, verwenden Sie die Schnittstelle „ kafka-sender-app “, um Nachrichtenereignisse an die Empfängeranwendung
zu senden.
-
Starten Sie die Protokollierung für die Empfängeranwendung, um Anwendungsprotokolle über die Konsole anzuzeigen, um Ereignisse anzuzeigen.
-
(optional) Starten Sie die Protokollierung für die Senderanwendung zum Anzeigen von Anwendungsprotokollen über die Konsole, um Informationen zu gesendeten Ereignissen anzuzeigen.
-
Nachdem die Protokollierung gestartet wurde, rufen Sie die Anwendung
kafka-sender-appmitcurlauf und geben Sie die öffentliche Adresse URL derkafka-sender-app, den Namen Ihres Themas und die Anzahl der zu sendenden Nachrichten an. Sie können die öffentliche URL dieser Anwendung über die Registerkarte Domänenzuordnungen für Ihre Anwendung erhalten. Beispiel:curl "<public_URL_of_Kafka_sender_app>?topic=<your_topic_name>&num=<number_of_messages_to_produce>"
Achten Sie darauf, den Wert für 'curl' in Anführungszeichen einzuschließen, um sicherzustellen, dass er als einzelne Zeichenfolge behandelt wird.
Kafka-Ereignisse für eine App über die CLI abonnieren
Sie können die Befehlszeilenschnittstelle (CLI) verwenden, um ein „ Kafka “-Ereignisabonnement einzurichten, sodass Ereignisse an eine „ Code Engine “-Anwendung gesendet werden.
Ereignisse werden als HTTP-POST-Anforderungen an Anwendungen gesendet. Weitere Informationen zu den Daten, die in „ Kafka “-Ereignissen enthalten sind, finden Sie unter „ HTTP “-Header und -Inhaltsdaten für Ereignisse. Wenn Ihr Ereignis an einen „ Code Engine “-Job gesendet wird, erhält der Job die Ereignisse als Umgebungsvariablen. Weitere Informationen zu den Umgebungsvariablen für „ Kafka “-Abonnements finden Sie unter „ Umgebungsvariablen für Ereignisse “.
Code Engine-App für den Empfang von Kafka-Ereignissen über die Befehlszeilenschnittstelle erstellen
Vorbereitende Schritte
-
Erstellen Sie eine Code Engine-Anwendung als Ereigniskonsument von Kafka-Nachrichten und empfangen Sie die Kafka-Ereignisse. Erstellen Sie beispielsweise eine Anwendung mit dem Namen
kafka-receiver-app2, die dasicr.io/codeengine/kafka-receiver-Image verwendet. Dieses Image wird ausreceiver.goerstellt, das über die -Beispiele für IBM Cloud Code Engine GitHub repoverfügbar ist. Dieses Beispiel erfordert keine Umgebungsvariablen. Optional können Sie die Option „--min-scale=1“ angeben, damit die App stets über eine laufende Instanz verfügt und nicht auf null skaliert wird. Eine solche Konfiguration, bei der die Anwendung stets über eine aktive Instanz verfügt, ist nützlich, wenn Sie Protokolle anzeigen. Wenn Sie in einer Produktionsumgebung arbeiten, berücksichtigen Sie die Kosten für das Beibehalten einer aktiven Instanz Ihrer App oder ob Code Engine automatisch auf null skaliert werden soll. Standardmäßig wird die App auf null skaliert, wenn sie nicht verwendet wird.ibmcloud ce app create -n kafka-receiver-app2 --image icr.io/codeengine/kafka-receiver --min-scale 1Ereignisse werden standardmäßig an die Stamm-URL der Zielanwendung weitergeleitet. Sie können Ereignisse an ein anderes Ziel innerhalb der App senden, indem Sie die Option
--pathverwenden. Wenn Ihre Subskription beispielsweise--path /eventangibt, wird das Ereignis anhttps://<base application URL>/eventsgesendet. -
Führen Sie nach der Bereitstellung dieser App den Befehl
app getaus, um zu bestätigen, dass sich die App im Statusreadybefindet.ibmcloud ce app get -n kafka-receiver-app2
Code Engine Kafka-Ereignissubskription für eine App über die Befehlszeilenschnittstelle erstellen
Mit der CLI können Sie ein „ Kafka “-Ereignisabonnement erstellen, das die Beziehung zwischen dem „ Kafka “-Produzenten (Absender) und dem „ “-Konsumenten (Empfänger) von Ereignissen definiert.
-
Erstellen Sie eine Code Engine Kafka-Ereignissubskription für Ihre Kafka-Ereignisse mit dem Befehl
ibmcloud ce sub kafka create. Verwenden Sie den geheimen Schlüsselkafka-subscription-secret, den Sie zuvor erstellt haben, um auf den Nachrichtenbroker zuzugreifen. Geben Sie die Brokerinformationen basierend auf den Serviceberechtigungsinformationen für Ihre Kafka-Ressource an. In diesem Beispiel können Sie die Brokerinformationen aus der Ausgabe des Befehlsibmcloud resource service-key myeventstream-keyabrufen. Beachten Sie, dass Sie für jeden Broker für Ihr Thema die Option--brokerangeben müssen. Die Option--destinationgibt die Ressource Code Engine an, die die Ereignisse empfängt.ibmcloud ce sub kafka create --name mykafkasubscription --destination kafka-receiver-app2 --secret kafka-subscription-secret --topic kafka-topic1 --broker broker-3-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 --broker broker-5-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 --broker broker-0-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 --broker broker-1-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 --broker broker-4-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 --broker broker-2-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 -
Zeige die Details des Abonnements für das Ereignis „ Kafka “ an.
ibmcloud ce sub kafka get -n mykafkasubscriptionBeispielausgabe
Getting Kafka event subscription 'mykafkasubscription'... OK Name: mykafkasubscription [...] Destination Type: app Destination: kafka-receiver-app2 Brokers: broker-3-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 broker-5-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 broker-0-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 broker-1-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 broker-4-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 broker-2-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 Consumer Group: knative-kafka-source-a4072fe1-1dfa-4470-9d07-bf7a0ff8e340 Topics: kafka-topic1 Secret key reference (user): kafka-subscription-secret.username Secret key reference (password): kafka-subscription-secret.password Ready: true Conditions: Type OK Age Reason ConnectionEstablished true 24s InitialOffsetsCommitted true 24s Ready true 24s Scheduled true 24s SinkProvided true 24s Events: Type Reason Age Source Messages Normal FinalizerUpdate 26s kafkasource-controller Updated "mykafkasubscription" finalizers
Ereignisse über die Befehlszeilenschnittstelle an die empfangende App senden
Nachdem Sie nun Ihr „ Kafka “-Ereignisabonnement erstellt haben, das auf die Anwendung „ kafka-receiver-app “ verweist, verwenden Sie die Schnittstelle „ kafka-sender-app “, um Nachrichtenereignisse an die Empfängeranwendung
zu senden.
-
Holen Sie sich die öffentliche URL der Ziel-App,
kafka-sender-app, indem Sie denibmcloud ce app getmit der Option--output url, um die URL Ihrer Anwendung zu finden.ibmcloud ce app get -n kafka-sender-app --output urlBeispielausgabe
https://kafka-sender-app.abcdabcdabc.us-south.codeengine.appdomain.cloud -
Führen Sie die Kafka-Ereigniserzeuger-App
kafka-sender-appaus, um Ereignisse an die Zielanwendung Code Engine zu senden. Rufen Sie die Anwendungkafka-sender-appmitcurlauf und geben Sie Werte für das Topic und die Anzahl der Nachrichten an. Verwenden Sie die Ausgabe desibmcloud ce app getBefehls, um die öffentliche URL Ihrer App zu ermitteln. Achten Sie darauf, den Wert für 'curl' in Anführungszeichen einzuschließen, um sicherzustellen, dass er als einzelne Zeichenfolge behandelt wird.curl "<public_URL_of_Kafka_sender_app>?topic=<your_topic_name>&num=<number_of_messages_to_produce>"Beispiel:
curl "https://kafka-sender-app.abcdabcdabc.us-south.codeengine.appdomain.cloud?topic=kafka-topic1&num=1" -
Ereignisse in Protokollen anzeigen. Wenn Ihre Kafka-Ereignissubskription mit einem Broker, gültigen Topics und einem gültigen geheimen Zugriffsschlüssel erstellt wird und Sie über eine Kafka-Anwendung verfügen, die Nachrichten zu diesem Topic erzeugt (z. B.
kafka-sender-app), können Sie Ereignisse in Protokollen für Ihre Zielanwendung Code Engine anzeigen, die Kafka-Nachrichten wiekafka-receiver-appempfängt. Wenn Sie die Empfängerapp Kafka (icr.io/codeengine/kafka-receiver) verwenden, suchen Sie in den Protokollen für die Empfängeranwendung nachEvent data, um die empfangenen Nachrichten anzuzeigen.ibmcloud ce app logs -n kafka-receiver-app2Beispielausgabe
Getting logs for all instances of application 'kafka-receiver-app2'... OK kafka-receiver-app2-00001-deployment-66976f7988-9xttm/user-container: 2022/03/31 22:19:45 Listening on port 8080 2022/03/31 22:19:46 ---------- 2022/03/31 22:19:46 Path: / 2022/03/31 22:19:46 Header: Accept-Encoding=[gzip] 2022/03/31 22:19:46 Header: Ce-Id=[partition:0/offset:167] 2022/03/31 22:19:46 Header: Ce-Source=[/apis/v1/namespaces/glxo4k7nj7d/kafkasources/mykafkasubscription#kafka-topic1] 2022/03/31 22:19:46 Header: Ce-Specversion=[1.0] 2022/03/31 22:19:46 Header: Ce-Subject=[partition:0#167] 2022/03/31 22:19:46 Header: Ce-Time=[2022-03-31T22:19:36.499Z] 2022/03/31 22:19:46 Header: Ce-Type=[dev.knative.kafka.event] 2022/03/31 22:19:46 Header: Content-Length=[8] 2022/03/31 22:19:46 Header: Forwarded=[for=172.30.208.213;proto=http, for=127.0.0.6] 2022/03/31 22:19:46 Header: K-Proxy-Request=[activator] 2022/03/31 22:19:46 Header: Traceparent=[00-b033708685c715a7c2384cdf05797785-65540b0937e9b0ce-00] 2022/03/31 22:19:46 Header: User-Agent=[Go-http-client/1.1] 2022/03/31 22:19:46 Header: X-B3-Parentspanid=[e1a785d7fdbead6c] 2022/03/31 22:19:46 Header: X-B3-Sampled=[1] 2022/03/31 22:19:46 Header: X-B3-Spanid=[abcde9901e6bf83f] 2022/03/31 22:19:46 Header: X-B3-Traceid=[abcde490a426573772fa0bf60caf5ddb] 2022/03/31 22:19:46 Header: X-Envoy-Attempt-Count=[1] 2022/03/31 22:19:46 Header: X-Forwarded-For=[172.30.208.213, 127.0.0.6, 127.0.0.6] 2022/03/31 22:19:46 Header: X-Forwarded-Proto=[http] 2022/03/31 22:19:46 Header: X-Request-Id=[abcdeb4e-c5ac-abcd-abcd-60e6278abcde] 2022/03/31 22:19:46 Event data: test1: 1Bitte beachten Sie, dass die Protokollinformationen für Apps nur eine Stunde lang gespeichert bleiben. Weitere Informationen zum Anzeigen von Protokollen für Apps (oder Jobs) finden Sie unter Protokolle anzeigen.
Header-und Hauptteilinformationen für Kafka-Ereignisse, die an Apps übermittelt werden
Alle Ereignisse, die an Anwendungen übergeben werden, werden als HTTP-POST-Nachrichten empfangen. Ereignisse enthalten bestimmte HTTP-Header, die Ihnen dabei helfen, schnell die wichtigsten Informationen zu den Ereignissen zu ermitteln, ohne
den Hauptteil (die Geschäftslogik) des Ereignisses durchsuchen zu müssen. Weitere Informationen finden Sie in der Spezifikation „ CloudEvents “.
Header für Apps
| Überschrift | Beschreibung |
|---|---|
ce-id |
Eine eindeutige Kennung für das Ereignis, sofern ein Ereignis nicht wiederholt wird; im Fall einer Wiederholung wird ihm dieselbe ID zugeordnet. |
ce-source |
Ein URI-Verweis, der den Ursprung des Ereignisses innerhalb des Ereignisproduzenten angibt. Für Kafka-Ereignisse hat dieser Header das folgende Format: /apis/v1/namespaces/[PROJECT_SUBDOMAIN]/kafkasources/[KAFKA_SUBSCRIPTION_NAME]#[TOPIC_NAME]. |
ce-specversion |
Die Version der CloudEvents-Spezifikation. Dieser Wert ist immer 1.0. |
ce-subject |
Die Kafka-Partitionsnummer und -Offset. Beispiel: partition:0#1 bezieht sich auf Partition 0 und Offset 1. |
ce-time |
Der Zeitpunkt, an dem das Ereignis generiert wurde. |
ce-type |
Der Typ des Ereignisses. Für Kafka-Ereignisse ist dies dev.knative.kafka.event. |
Beispielausgabe
Ce-Id=[partition:0/offset:0]
Ce-Source=[/apis/v1/namespaces/ewgz38l13ts/kafkasources/mykafkasubscription#kafka-topic1]
Ce-Specversion=[1.0]
Ce-Subject=[partition:0#0]
Ce-Time=[2021-09-27T16:39:01.36Z]
Ce-Type=[dev.knative.kafka.event]
HTTP körper für Anwendungen
Der Text des „ HTTP “-Körpers enthält die Nachricht „ Kafka “ und hat das Format, das Sie beim Erstellen oder Aktualisieren des Abonnements festlegen.
Einrichten von Code Engine zum Empfangen von Kafka-Ereignissen für einen Job
Damit „ Code Engine “ mit „ Kafka “-Ereignissen funktioniert, richten Sie über die Konsole oder die CLI ein Abonnement für „ Code Engine “- Kafka-Ereignisse ein, um eine Verbindung zu „ Kafka “-Ereignisbrokern herzustellen und auf „ Kafka “-Ereignisse zu warten. Richten Sie außerdem einen „ Code Engine “-Job (oder eine App) ein, der bzw. die als Empfänger der „ Kafka “-Ereignisse fungiert. Das „ Kafka “-Ereignisabonnement definiert die Beziehung zwischen dem „ Kafka “-Produzenten (Absender) und dem „ “-Konsumenten (Empfänger) von Ereignissen.
Kafka-Ereignisse für einen Job über die Konsole abonnieren
Über die Konsole können Sie ein Abonnement für „ Kafka “-Ereignisse einrichten, sodass Ereignisse an einen „ Code Engine “-Job gesendet werden.
Wenn Sie eine Ereignissubskription für einen Job erstellen, wird eine Jobausführung für jedes ausgelöste Ereignis erstellt. Diese Jobausführung enthält die Umgebungsvariablen, die sich auf den Job beziehen. Das Ereignisabonnement „ Code Engine “ ( Kafka ) stellt eine Verbindung zu Ihrem „ Kafka “-Message-Broker her und sendet Umgebungsvariablen, die sich auf den Job beziehen. Weitere Informationen zu den Umgebungsvariablen, die von Kafka übermittelt werden, finden Sie unter „ Umgebungsvariablen für Ereignisse “.
Erstellen eines Code Engine-Jobs zum Empfangen von Kafka-Ereignissen von der Konsole
- Erstellen Sie einen Code Engine-Job als Ereigniskonsument von Kafka-Nachrichten und empfangen Sie die Kafka-Ereignisse. Erstellen Sie beispielsweise einen Job mit
dem Namen „
kafka-receiver-job“, der das Beispiel-Image „icr.io/codeengine/codeengine“ verwendet. Dieses Bild wurde auf der Grundlage von „codeengine.go“ erstellt, das im Repository „Samples for IBM Cloud Code Engine “(GitHub ) verfügbar ist. Dieses Beispiel erfordert keine Umgebungsvariablen. - Nachdem Sie diesen Job erstellt haben, vergewissern Sie sich, dass er sich im Status
readybefindet.
Wenn Sie die Konsole verwenden, muss die App oder der Job, mit der bzw. dem Sie „ Kafka “-Ereignisse empfangen, nicht unbedingt bereits vorhanden sein, bevor Sie das Abonnement für das „ Kafka “-Ereignis erstellen. Wenn die App oder der Job jedoch beim Erstellen der Ereignissubskription nicht vorhanden ist, gibt der Status der Subskription an, dass der Konsument nicht vorhanden ist. Sie müssen die App oder den Job erstellen, bevor sich das Abonnement im Bereitstatus befindet und Ereignisse über dieses Abonnement empfangen kann.
Code Engine Kafka-Ereignissubskription für einen Job über die Konsole erstellen
Das „ Kafka “-Ereignisabonnement definiert die Beziehung zwischen dem „ Kafka “-Produzenten (Absender) und dem „ “-Konsumenten (Empfänger) von Ereignissen.
Vorbereitende Schritte
- Bestimmen Sie das Code Engine-Projekt, das Sie verwenden möchten, und vergewissern Sie sich, dass dieses Projekt ausgewählt ist. Siehe Projekt erstellen und mit einem Projekt arbeiten.
Führen Sie die folgenden Schritte aus, um über die Konsole ein „ Kafka “-Ereignisabonnement für eine Anwendung zu erstellen.
- Rufen Sie auf der Seite „ Code Engine-Projekte“ Ihr Projekt auf.
- Klicken Sie auf der Seite 'Übersicht' auf Ereignisabonnements.
- Klicken Sie auf der Seite 'Ereignisabonnements' auf Erstellen, um Ihr Abonnement zu erstellen.
- Wählen Sie auf der Seite 'Ereignissubskription erstellen' die Kachel
Event Streams / Kafkaaus, um den Ereignistyp anzugeben. - Geben Sie für Allgemein einen Namen für die
Event Streams / Kafka-Subskription an. Fahren Sie durch Klicken auf Weiter fort. - Weitere Informationen zum Message Broker finden Sie unter,
- Geben Sie die Hosts des „ Kafka “-Message-Broker für die Nachrichtenwarteschlangen an, aus denen Nachrichten als Ereignisse über dieses Abonnement empfangen werden. Um Informationen zu den Broker-Hosts, Themen und Zugriffsberechtigungsnachweisen
abzurufen, zeigen Sie die Details der Serviceberechtigungsnachweise für Ihre Serviceinstanz in der Event Streams-Konsole an. Geben Sie beispielsweise
"broker-0-abcdabcdabcdabcd.kafka.svc01.us-south.eventstreams.cloud.ibm.com:9093", "broker-1-abcdabcdabcdabcd.kafka.svc01.us-south.eventstreams.cloud.ibm.com:9093"für die Nachrichtenbrokerhosts für diemyeventstream-key-Serviceinstanz an. - Klicken Sie auf Konfigurieren, um den Zugriff auf den Nachrichtenbroker zu konfigurieren. Zur Authentifizierung von Code Engine bei Ihrer Kafka-oder Event Streams-Instanz müssen Sie einen geheimen Schlüssel für den
Zugriff auf den Nachrichtenbroker bereitstellen.
- Sie können einen neuen geheimen Schlüssel erstellen, einen vorhandenen geheimen Schlüssel auswählen oder, wenn keine Berechtigungsnachweise für den Zugriff auf die Nachrichtenbroker erforderlich sind,
Nonewählen. - Klicken Sie zum Erstellen eines geheimen Schlüssels auf Erstellen. Geben Sie einen Namen für den geheimen Schlüssel und Werte für
usernameundpasswordan. Die Werte fürusernameundpasswordmüssen mit den Werten in den Serviceberechtigungsnachweisen für die Instanz Kafka oder Event Streams übereinstimmen. Der Wert fürusernameist beispielsweise der Wert vonuser, der in den Details der Serviceberechtigungsnachweise in der Serviceinstanz Event Streams aufgelistet ist. Der Wert fürpasswordist der Wert vonapikey, der in den Details der Serviceberechtigungsnachweise in der Event Streams-Serviceinstanz aufgelistet ist. - Verwenden Sie für dieses Beispiel den vorhandenen geheimen Schlüssel
kafka-subscription-secret, der zuvor erstellt wurde.
- Sie können einen neuen geheimen Schlüssel erstellen, einen vorhandenen geheimen Schlüssel auswählen oder, wenn keine Berechtigungsnachweise für den Zugriff auf die Nachrichtenbroker erforderlich sind,
- Geben Sie den Namen vorhandener Themen für die Nachrichtenwarteschlangen an. Beispiel:
kafka-topic1. Um Informationen zu vorhandenen Themen für Ihre Serviceinstanz abzurufen, rufen Sie Ihre Serviceinstanz in der Event Streams-Konsole auf und zeigen Sie Themen an. - (Optional) Geben Sie eine Consumergruppe an. Konsumenten von Kafka-Nachrichten können in Konsumentengruppen gruppiert werden. Wenn Sie Konsumentengruppen verwenden, steuert die Topickonfiguration den Nachrichtenfluss zu Konsumenten in der Konsumentengruppe. Wenn ein Konsument einer Konsumentengruppe hinzugefügt oder aus einer Konsumentengruppe entfernt wird, kann sich der Nachrichtenfluss aus diesem Thema ändern. Diese Aktion kann dazu führen, dass vorhandene Konsumenten keine Nachrichten mehr von diesem Topic empfangen.
- Fahren Sie durch Klicken auf Weiter fort.
- Geben Sie die Hosts des „ Kafka “-Message-Broker für die Nachrichtenwarteschlangen an, aus denen Nachrichten als Ereignisse über dieses Abonnement empfangen werden. Um Informationen zu den Broker-Hosts, Themen und Zugriffsberechtigungsnachweisen
abzurufen, zeigen Sie die Details der Serviceberechtigungsnachweise für Ihre Serviceinstanz in der Event Streams-Konsole an. Geben Sie beispielsweise
- Geben Sie für den Event-Consumer den Job „ Code Engine “ an, der die Ereignisse empfangen soll. Beachten Sie, dass Sie aus einer Liste definierter Jobs und Apps auswählen oder einen Namen für einen Job (oder eine App)
angeben können, der bzw. die noch nicht erstellt wurde. Es ist nicht erforderlich, dass die App oder der Job vorhanden ist, wenn Sie die Ereignissubskription mit der Konsole erstellen. Wenn die Subskription erstellt wird, spiegelt der
Status der Subskription jedoch wider, dass der Konsument nicht vorhanden ist. Sie müssen den Job (oder die App) erstellen, damit das Abonnement bereit ist und Ereignisse über dieses Abonnement empfangen kann. Für dieses Beispiel wählen
Sie
jobals Komponententyp aus und verwenden Sie den Jobkafka-receiver-job, der auf das Imageicr.io/codeengine/codeengineverweist, als Komponente zum Empfangen von Ereignissen. Falls Ihr Job noch nicht existiert, geben Sie den Namen Ihres Jobs an und erstellen Sie ihn, nachdem Sie das „ Kafka “-Abonnement eingerichtet haben. Nur bei Anwendungen können Sie optional einen Pfad angeben. Fahren Sie durch Klicken auf Weiter fort. - Überprüfen Sie abschließend die Einstellungen für Ihr „ Kafka “-Ereignisabonnement und nehmen Sie gegebenenfalls Änderungen vor. Wenn Sie bereit sind, klicken Sie auf „Erstellen“, um das „ Kafka “-Abonnement anzulegen.
Ereignisse von der Konsole an den empfangenden Job senden
Nachdem Sie nun Ihr „ Kafka “-Ereignisabonnement erstellt haben, das auf den Job „ kafka-receiver-job “ verweist, verwenden Sie die „ kafka-sender-app “, um Nachrichtenereignisse an den Empfänger-Job zu senden.
-
Starten Sie die Protokollierung für den Empfängerjob zum Anzeigen von Jobprotokollen über die Konsole, um Ereignisse anzuzeigen.
-
(optional) Starten Sie die Protokollierung für die Senderanwendung zum Anzeigen von Anwendungsprotokollen über die Konsole, um Informationen zu gesendeten Ereignissen anzuzeigen.
-
Nachdem die Protokollierung gestartet wurde, rufen Sie die Anwendung
kafka-sender-appmitcurlauf und geben Sie die öffentliche Adresse URL derkafka-sender-app, den Namen Ihres Themas und die Anzahl der zu sendenden Nachrichten an. Sie können die öffentliche URL dieser Anwendung über die Registerkarte Domänenzuordnungen für Ihre Anwendung erhalten. Beispiel:curl "<public_URL_of_Kafka_sender_app>?topic=<your_topic_name>&num=<number_of_messages_to_produce>"
Achten Sie darauf, den Wert für 'curl' in Anführungszeichen einzuschließen, um sicherzustellen, dass er als einzelne Zeichenfolge behandelt wird.
Wenn Ihre Kafka-Subskription mit einem Broker, Themen und einem gültigen geheimen Zugriffsschlüssel erstellt wird und Sie über einen Kafka-Job verfügen, der Nachrichten zu diesem Thema generiert (z. B. kafka-sender-app), können
Sie Ereignisse in Protokollen für Ihren Code Engine-Job anzeigen, der Kafka-Nachrichten empfängt, z. B. kafka-receiver-job. Wenn Sie den Empfängerjob Kafka (icr.io/codeengine/codeengine) verwenden, suchen Sie
in den Protokollen für den Empfängerjob nach CE_DATA, um die empfangenen Nachrichten anzuzeigen.
Kafka-Ereignisse für einen Job über die CLI abonnieren
Sie können die Befehlszeilenschnittstelle (CLI) verwenden, um ein „ Kafka “-Ereignisabonnement einzurichten, sodass Ereignisse an einen „ Code Engine “-Job gesendet werden.
Wenn Sie eine Ereignissubskription für einen Job erstellen, wird eine Jobausführung für jedes ausgelöste Ereignis erstellt. Diese Jobausführung enthält die Umgebungsvariablen, die sich auf den Job beziehen. Das Ereignisabonnement „ Code Engine “ ( Kafka ) stellt eine Verbindung zu Ihrem „ Kafka “-Message-Broker her und sendet Umgebungsvariablen, die sich auf den Job beziehen. Weitere Informationen zu den Umgebungsvariablen, die von Kafka übermittelt werden, finden Sie unter „ Umgebungsvariablen für Ereignisse “.
Erstellen eines Code Engine-Jobs zum Empfangen von Kafka-Ereignissen über die Befehlszeilenschnittstelle
Vorbereitende Schritte
-
Erstellen Sie einen Code Engine-Job als Ereigniskonsument von Kafka-Nachrichten und empfangen Sie die Kafka-Ereignisse. Erstellen Sie beispielsweise einen Job mit dem Namen
kafka-receiver-job, der dasicr.io/codeengine/codeengine-Image verwendet. Dieses Bild wurde auf der Grundlage von „codeengine.go“ erstellt, das im Repository „Samples for IBM Cloud Code Engine “(GitHub ) verfügbar ist.ibmcloud ce job create -n kafka-receiver-job --image icr.io/codeengine/codeengine -
(Optional) Führen Sie nach der Erstellung dieses Jobs den Befehl
job getaus, um Informationen über den Job anzuzeigen.ibmcloud ce job get -n kafka-receiver-job
Code Engine Kafka-Ereignissubskription für einen Job über die Befehlszeilenschnittstelle erstellen
Mit der CLI können Sie ein „ Kafka “-Ereignisabonnement erstellen, das die Beziehung zwischen dem „ Kafka “-Produzenten (Absender) und dem „ “-Konsumenten (Empfänger) von Ereignissen definiert.
-
Erstellen Sie eine Code Engine Kafka-Ereignissubskription für Ihre Kafka-Ereignisse mit dem Befehl
ibmcloud ce sub kafka create. Verwenden Sie den geheimen Schlüsselkafka-subscription-secret, den Sie zuvor erstellt haben, um auf den Nachrichtenbroker zuzugreifen. Geben Sie die Brokerinformationen basierend auf den Serviceberechtigungsinformationen für Ihre Kafka-Ressource an. In diesem Beispiel können Sie die Brokerinformationen aus der Ausgabe des Befehlsibmcloud resource service-key myeventstream-keyabrufen. Beachten Sie, dass Sie für jeden Broker für Ihr Thema die Option--brokerangeben müssen. Die Option--destinationgibt die Ressource Code Engine an, die die Ereignisse empfängt. Wenn Sie mit einem empfangenden Job arbeiten, müssen Sie auch die Option--destination-typeangeben, um anzugeben, dass die Ressource ein Job ist, da der Standardwert für diese Optionappist.ibmcloud ce sub kafka create --name mykafkasubscription-withjob --destination-type job --destination kafka-receiver-job --secret kafka-subscription-secret --topic kafka-topic1 --broker broker-3-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 --broker broker-5-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 --broker broker-0-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 --broker broker-1-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 --broker broker-4-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 --broker broker-2-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 -
Zeige die Details des Abonnements für das Ereignis „ Kafka “ an.
ibmcloud ce sub kafka get -n mykafkasubscription-withjobBeispielausgabe
Getting Kafka event subscription 'mykafkasubscription-withjob'... OK Name: mykafkasubscription-withjob [...] Destination Type: job Destination: kafka-receiver-job Brokers: broker-3-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 broker-5-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 broker-0-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 broker-1-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 broker-4-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 broker-2-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 Consumer Group: knative-kafka-source-a4072fe1-1dfa-4470-9d07-bf7a0ff8e340 Topics: kafka-topic1 Secret key reference (user): kafka-subscription-secret.username Secret key reference (password): kafka-subscription-secret.password Ready: true [...]
Ereignisse über die Befehlszeilenschnittstelle an den empfangenden Job senden
Nachdem Sie nun Ihr „ Kafka “-Ereignisabonnement erstellt haben, das auf die Anwendung „ kafka-receiver-job “ verweist, verwenden Sie die Schnittstelle „ kafka-sender-app “, um Nachrichtenereignisse an die Empfängeranwendung
zu senden.
-
Beziehen Sie die öffentliche URL der Ziel-App,
kafka-sender-app, indem Sie denibmcloud ce app getbefehl die URL Ihrer Anwendung finden.ibmcloud ce app get -n kafka-sender-app --output urlBeispielausgabe
https://kafka-sender-app.abcdabcdabc.us-south.codeengine.appdomain.cloud -
Führen Sie die Kafka-Event-Producer-App
kafka-sender-appaus, um Ereignisse an den Zieljob Code Engine zu senden. Rufen Sie die Anwendungkafka-sender-appmitcurlauf und geben Sie Werte für das Topic und die Anzahl der Nachrichten an. Verwenden Sie die Ausgabe des Befehlsibmcloud ce app getbefehls, um die öffentliche URL Ihrer ereigniserzeugenden Anwendung zu finden. Achten Sie darauf, den Wert für 'curl' in Anführungszeichen einzuschließen, um sicherzustellen, dass er als einzelne Zeichenfolge behandelt wird. Beispiel:curl "<public_URL_of_Kafka_sender_app>?topic=<your_topic_name>&num=<number_of_messages_to_produce>"Beispiel:
curl "https://kafka-sender-app.abcdabcdabc.us-south.codeengine.appdomain.cloud?topic=kafka-topic1&num=1" -
Ereignisse in Protokollen anzeigen. Wenn Ihre Kafka-Ereignissubskription mit einem Broker, Topics und einem gültigen geheimen Zugriffsschlüssel erstellt wird und Sie über eine Kafka-App verfügen, die Nachrichten zu diesem Topic erstellt (z. B.
kafka-sender-app), können Sie Ereignisse in Protokollen für Ihren Zieljob Code Engine anzeigen, der Kafka-Nachrichten empfängt, z. B.kafka-receiver-job. Für jede Nachricht, die mitcurlgesendet wird, wird dieselbe Anzahl von Jobausführungen durch die Kafka-Ereignisse ausgelöst. Verwenden Sie den Befehlibmcloud ce jobrun logs, um die an Jobs gesendeten Ereignisse anzuzeigen.- Mit dem Befehl
ibmcloud ce jobrun listkönnen Sie die Jobausführungen für den Jobkafka-receiver-jobauflisten.
ibmcloud ce jobrun list --job kafka-receiver-job ``` 2. Mit dem Befehl **`ibmcloud ce jobrun logs`** können Sie die Protokolle für eine bestimmte Jobausführung abrufen. ```txt {: pre} ibmcloud ce jobrun logs -n kafka-receiver-job-abcde ``` Beispielausgabe ```txt {: screen} Getting logs for all instances of job run 'kafka-receiver-job-abcde'... Getting jobrun 'kafka-receiver-job-abcde'... Getting instances of jobrun 'kafka-receiver-job-abcde'... OK kafka-receiver-job-abcde-0-0/kafka-receiver-job: Hello from helloworld! I'm a batch job! Index: 0 Hello World from: . ___ __ ____ ____ ./ __)/ \( \( __) ( (__( O )) D ( ) _) .\___)\__/(____/(____) .____ __ _ ___ __ __ _ ____ ( __)( ( \ / __)( )( ( \( __) .) _) / /( (_ \ )( / / ) _) (____)\_)__) \___/(__)\_)__)(____) Some Env Vars: -------------- CE_DATA=test1: 2 CE_DOMAIN=us-south.codeengine.appdomain.cloud CE_ID=partition:0/offset:249 CE_JOB=kafka-receiver-job CE_JOBRUN=kafka-receiver-job-abcde CE_SOURCE=/apis/v1/namespaces/p99k7iy919d/kafkasources/kafkasub-job-ui#kafka-topic1 CE_SPECVERSION=1.0 CE_SUBDOMAIN=p99k7iy919d CE_SUBJECT=partition:0#249 CE_TIME=2022-06-21T12:19:24.06Z CE_TYPE=dev.knative.kafka.event HOME=/root HOSTNAME=kafka-receiver-job-abcde-0-0 JOB_INDEX=0 KUBERNETES_PORT=tcp://172.21.0.1:443 KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443 KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1 KUBERNETES_PORT_443_TCP_PORT=443 KUBERNETES_PORT_443_TCP_PROTO=tcp KUBERNETES_SERVICE_HOST=172.21.0.1 KUBERNETES_SERVICE_PORT=443 KUBERNETES_SERVICE_PORT_HTTPS=443 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin PWD=/ SHLVL=1 z=Set env var 'SHOW' to see all variables ``` Wenn Sie den Empfängerjob Kafka (`icr.io/codeengine/codeengine`) verwenden, suchen Sie in den Protokollen für den Empfängerjob nach `CE_DATA`, um die empfangenen Nachrichten anzuzeigen. Bitte beachten Sie, dass die Protokollinformationen zu den Auftragsausführungen nur eine Stunde lang gespeichert bleiben. Weitere Informationen zum Anzeigen von Protokollen für Anwendungen oder Jobs finden Sie unter [Protokolle anzeigen](/docs/codeengine?topic=codeengine-logging). - Mit dem Befehl
Umgebungsvariablen für „ Kafka “-Ereignisse, die an Jobs übermittelt werden
Alle Ereignisse, die an Jobs übergeben werden, werden als Umgebungsvariablen empfangen. Diese Umgebungsvariablen enthalten das Präfix „ CE_ “ und basieren auf der Spezifikation „ CloudEvents “.
Jedes Ereignis enthält einige allgemeine Umgebungsvariablen, die jedes Mal angezeigt werden, wenn das Ereignis an einen Job übergeben wird. In den tatsächlichen Variablen in den einzelnen Ereignissen können weitere Optionen enthalten sein.
Weitere Informationen finden Sie unter den Attributen von „ CloudEvent “.
In der folgenden Tabelle werden die Umgebungsvariablen beschrieben, die speziell für Ereignisse im Zusammenhang mit „ Kafka “ gelten.
| Variable | Beschreibung |
|---|---|
CE_DATA |
Die Daten (der Hauptteil) für das Ereignis. |
CE_DOMAIN |
Der Domänennamensabschnitt der URL der Anwendung (und des Projekts). |
CE_ID |
Eine eindeutige Kennung für das Ereignis, sofern ein Ereignis nicht wiederholt wird; im Fall einer Wiederholung wird ihm dieselbe ID zugeordnet. |
CE_SOURCE |
Ein URI-Verweis, der den Ursprung des Ereignisses innerhalb des Ereignisproduzenten angibt. Für Kafka-Ereignisse hat dieser Header das folgende Format: /apis/v1/namespaces/[PROJECT_SUBDOMAIN]/kafkasources/kafkasub#[TOPIC_NAME]. |
CE_SPECVERSION |
Die Version der CloudEvents-Spezifikation. Dieser Wert ist immer 1.0. |
CE_SUBDOMAIN |
Der Teil der Unterdomäne der URL, die der Anwendung zugeordnet ist (und Projekt). Wenn Sie mit Kubernetes vertraut sind, ordnet die CE_SUBDOMAIN-Zuordnung dem Kubernetes-Namespace, der Ihrem Projekt zugeordnet ist, zu. |
CE_SUBJECT |
Die Kafka-Partitionsnummer und -Offset. Beispiel: partition:0#1 bezieht sich auf Partition 0 und Offset 1. |
CE_TIME |
Der Zeitpunkt, an dem das Ereignis generiert wurde. |
CE_TYPE |
Der Typ des Ereignisses. Für Kafka-Ereignisse ist dies dev.knative.kafka.event. |
Beispielausgabe
CE_DATA={"message":"This is a test message #","message_number":1}
CE_DOMAIN=us-south.codeengine.appdomain.cloud
CE_ID=partition:0/offset:46
CE_SOURCE=/apis/v1/namespaces/ewgz38l13ts/kafkasources/mykafkasubscription-job#kafka-topic1
CE_SPECVERSION=1.0
CE_SUBDOMAIN=ewgz38l13ts
CE_SUBJECT=partition:0#46
CE_TIME=2021-09-27T18:02:17.7Z
CE_TYPE=dev.knative.kafka.event
Kafka-Ereignissubskriptionen anzeigen und aktualisieren
Sie können Details zu Ihrem Abonnement für „ Kafka “-Veranstaltungen einsehen oder das Abonnement aktualisieren.
Kafka-Ereignissubskriptionen über die Konsole anzeigen und aktualisieren
-
So rufen Sie Informationen zu Ihren Veranstaltungsabonnements ab
- Rufen Sie auf der Seite „ Code Engine-Projekte“ Ihr Projekt auf.
- Klicken Sie auf der Seite 'Übersicht' auf Ereignisabonnements, um eine Liste der definierten Abonnements anzuzeigen.
-
So aktualisieren Sie ein Ereignisabonnement
- Rufen Sie Ihre Abonnementseite auf. Um zu Ihrer Abonnementseite zu navigieren, wechseln Sie zur Seite 'Ereignissubskriptionen' und klicken Sie auf den Namen der Subskription, die Sie aktualisieren wollen.
- Aktualisieren Sie das Abonnement. Ändern Sie beispielsweise das Topic für eine Kafka-Subskription in ein anderes Topic. Entfernen Sie auf der Registerkarte Nachrichtenbrokerdetails das vorhandene Thema aus dem Abschnitt 'Themen' und fügen Sie den Namen Ihres neuen Themas hinzu.
- Klicken Sie auf Speichern, um Ihre Änderungen zu speichern.
Kafka-Ereignissubskriptionen über die Befehlszeilenschnittstelle anzeigen und aktualisieren
-
Verwenden Sie den Befehl
ibmcloud ce subscription kafka get, um Informationen zu Ihren Ereignissubskriptionen über die Befehlszeilenschnittstelle anzuzeigen.ibmcloud ce sub kafka get -n mykafkasubscriptionBeispielausgabe
Getting Kafka event subscription 'mykafkasubscription'... OK Name: mykafkasubscription ID: abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f Project Name: myproject Project ID: 01234567-abcd-abcd-abcd-abcdabcd1111 Age: 2m4s Created: 2022-06-18T16:59:12-04:00 Destination Type: app Destination: kafka-receiver-app2 Brokers: broker-3-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 broker-5-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 broker-0-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 broker-0-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 broker-4-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 broker-0-abcdabcdabcdabcd.kafka.svc07.us-south.eventstreams.cloud.ibm.com:9093 Consumer Group: knative-kafka-source-c577b304-dccd-40c8-bb62-138c39f6112a Topics: kafka-topic1 Secret key reference (user): kafka-subscription-secret.username Secret key reference (password): kafka-subscription-secret.password Ready: true Conditions: Type OK Age Reason ConnectionEstablished true 53m InitialOffsetsCommitted true 53m Ready true 52m Scheduled true 52m SinkProvided true 53m Events: Type Reason Age Source Messages Normal FinalizerUpdate 53m kafkasource-controller Updated "mykafkasubscription" finalizers -
Verwenden Sie den Befehl
ibmcloud ce subscription kafka update, um eine Ereignissubskription über die Befehlszeilenschnittstelle zu aktualisieren. Im folgenden Beispiel wird der Themenname aktualisiert.ibmcloud ce sub kafka update -n mykafkasubscription --topic kafka-topic2Sie können den
ibmcloud ce subscription kafka updateBefehl verwenden, um die Werte für das Abonnement „ Kafka “ zu aktualisieren. Sie können den Wert für die Consumergruppe jedoch nicht mit diesem Befehl ändern. Wenn Sie das Abonnement aktualisieren möchten, damit es auf ein anderes Thema verweist, stellen Sie sicher, dass das Thema „ Kafka “ vorhanden ist, bevor Sie das Abonnement aktualisieren.
Kafka-Ereignissubskription löschen
Wenn Sie ein „ Kafka “-Abonnement nicht mehr benötigen, können Sie es löschen.
Wenn Sie ein Abonnement löschen, werden die Anmeldeinformationen für die Instanz des Dienstes „ Event Streams “ verwendet, um Verbrauchergruppen aus der Instanz des Dienstes „ Event Streams “ zu entfernen. Wenn die Dienstanmeldeinformationen bereits gelöscht wurden oder zum Zeitpunkt des Löschens des Abonnements ungültig sind, können die Verbrauchergruppen nicht aus der Instanz des „ Event Streams “-Dienstes entfernt werden. Ihr Antrag auf Löschung des Abonnements für das Event „ Code Engine “ ( Kafka ) schlägt fehl.
Ein „ Kafka “-Abonnement über die Konsole löschen
- Rufen Sie auf der Seite „ Code Engine-Projekte“ Ihr Projekt auf.
- Klicken Sie auf der Seite 'Übersicht' auf Ereignisabonnements, um eine Liste der definierten Abonnements anzuzeigen.
- Löschen Sie in der Liste der Abonnements dasjenige Abonnement, das Sie aus Ihrer Anwendung oder Ihrem Job entfernen möchten.
Wenn Sie eine App oder einen Job löschen, der der Subskription zugeordnet ist, wird das Abonnement nicht gelöscht. Wenn Sie die Anwendung oder den Job (oder eine andere App oder einen Job mit demselben Namen) erneut erstellen, stellt Ihre Subskription die Verbindung zur App oder zum Job wieder her.
Ein „ Kafka “-Abonnement über die CLI löschen
Sie können ein „ Kafka “-Abonnement löschen, indem Sie den ibmcloud ce subscription kafka delete Befehl ausführen.
Verwenden Sie beispielsweise den folgenden Befehl, um ein „ Kafka “-Abonnement mit dem Namen „ mykafkasubscription “ zu löschen:
ibmcloud ce subscription kafka delete --name mykafkasubscription
Wenn Sie eine App oder einen Job löschen, der der Subskription zugeordnet ist, wird das Abonnement nicht gelöscht. Stattdessen wechselt er in den Bereitstatus von false, da die Subskription von der Verfügbarkeit der App oder des
Jobs abhängt. Wenn Sie die Anwendung oder den Job (oder eine andere App oder einen Job mit demselben Namen) erneut erstellen, wird Ihre Subskription erneut verbunden und der Bereitstatus ist true.
Zusätzliche Ereignisattribute definieren
Wenn Sie ein Abonnement erstellen, können Sie zusätzliche CloudEvent-Attribute definieren, die in alle generierten Ereignisse einbezogen werden sollen. Diese Attribute ähneln allen anderen CloudEvent-Attributen bei
der Zustellung des Ereignisses. Wenn Sie den Namen eines vorhandenen CloudEvent-Attributs angeben, wird der ursprüngliche Wert, der im Ereignis enthalten war, überschrieben.
Um zusätzliche Attribute zu definieren, verwenden Sie die Optionen „ --extension “ mit dem ibmcloud ce subscription kafka create CLI-Befehl.
Weitere Informationen finden Sie unter Kann ich andere CloudEvents-Spezifikationen verwenden?