Introducing the CloudEvents Player
In this tutorial, you use the CloudEvents Player to showcase the core concepts of Knative Eventing. By the end of this tutorial, you should have an architecture that looks like this:
The above image is Figure 6.6 from Knative in Action.
Creating your first Source¶
The CloudEvents Player acts as a Source for CloudEvents by intaking the URL of the Broker as an environment variable,
BROKER_URL. You will send CloudEvents to the Broker through the CloudEvents Player application.
Create the CloudEvents Player Service:
kn service create cloudevents-player \ --image ruromero/cloudevents-player:latest \ --env BROKER_URL=http://broker-ingress.knative-eventing.svc.cluster.local/default/example-broker
Service 'cloudevents-player' created to latest revision 'cloudevents-player-vwybw-1' is available at URL: http://cloudevents-player.default.127.0.0.1.nip.io
Why is my Revision named something different!
Because we didn't assign a
revision-name, Knative Serving automatically created one for us. It's okay if your Revision is named something different.
apiVersion: serving.knative.dev/v1 kind: Service metadata: name: cloudevents-player spec: template: metadata: annotations: autoscaling.knative.dev/minScale: "1" spec: containers: - image: ruromero/cloudevents-player:latest env: - name: BROKER_URL value: http://broker-ingress.knative-eventing.svc.cluster.local/default/example-broker
Once you've created your YAML file, named something like
cloudevents-player.yaml, apply it by running the command:
kubectl apply -f cloudevents-player.yaml
Examining the CloudEvents Player¶
You can use the CloudEvents Player to send and receive CloudEvents. If you open the Service URL in your browser, the Create Event form appears:
What do these fields mean?
||A unique ID. Click the loop icon to generate a new one.|
||An event type.|
||An event source.|
||Demarcates which CloudEvents spec you're using (should always be 1.0).|
For more information on the CloudEvents Specification, check out the CloudEvents Spec.
- Fill in the form with whatever you data you want.
- Ensure your Event Source does not contain any spaces.
- Click SEND EVENT.
Clicking the shows you the CloudEvent as the Broker sees it.
The icon in the "Status" column implies that the event has been sent to our Broker... but where has the event gone? Well, right now, nowhere!
A Broker is simply a receptacle for events. In order for your events to be sent anywhere, you must create a Trigger which listens for your events and places them somewhere. And, you're in luck: you'll create your first Trigger on the next page!