7.3. Plugins CLI Knative
Le CLI Knative (kn
) supporte l'utilisation de plugins, qui vous permettent d'étendre les fonctionnalités de votre installation kn
en ajoutant des commandes personnalisées et d'autres commandes partagées qui ne font pas partie de la distribution principale. Les plugins de l'interface de programmation Knative (kn
) sont utilisés de la même manière que la fonctionnalité principale kn
.
Actuellement, Red Hat prend en charge le plugin kn-source-kafka
et le plugin kn-event
.
Le plugin kn-event
est une fonctionnalité d'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas leur utilisation en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir un retour d'information pendant le processus de développement.
Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique.
7.3.1. Construire des événements en utilisant le plugin kn-event
Vous pouvez utiliser l'interface de type constructeur de la commande kn event build
pour créer un événement. Vous pouvez ensuite envoyer cet événement ultérieurement ou l'utiliser dans un autre contexte.
Conditions préalables
-
Vous avez installé le CLI Knative (
kn
).
Procédure
Créer un événement :
$ kn event build --field <field-name>=<value> --type <type-name> --id <id> --output <format>
où :
-
L'option
--field
ajoute des données à l'événement sous la forme d'une paire champ-valeur. Vous pouvez l'utiliser plusieurs fois. -
L'option
--type
vous permet de spécifier une chaîne de caractères désignant le type d'événement. -
L'indicateur
--id
précise l'identifiant de l'événement. Vous pouvez utiliser les arguments
json
ouyaml
avec l'option--output
pour modifier le format de sortie de l'événement.Tous ces indicateurs sont facultatifs.
Construire un événement simple
$ kn event build -o yaml
Événement résultant au format YAML
data: {} datacontenttype: application/json id: 81a402a2-9c29-4c27-b8ed-246a253c9e58 source: kn-event/v0.4.0 specversion: "1.0" time: "2021-10-15T10:42:57.713226203Z" type: dev.knative.cli.plugin.event.generic
Création d'un exemple d'événement de transaction
$ kn event build \ --field operation.type=local-wire-transfer \ --field operation.amount=2345.40 \ --field operation.from=87656231 \ --field operation.to=2344121 \ --field automated=true \ --field signature='FGzCPLvYWdEgsdpb3qXkaVp7Da0=' \ --type org.example.bank.bar \ --id $(head -c 10 < /dev/urandom | base64 -w 0) \ --output json
Événement résultant au format JSON
{ "specversion": "1.0", "id": "RjtL8UH66X+UJg==", "source": "kn-event/v0.4.0", "type": "org.example.bank.bar", "datacontenttype": "application/json", "time": "2021-10-15T10:43:23.113187943Z", "data": { "automated": true, "operation": { "amount": "2345.40", "from": 87656231, "to": 2344121, "type": "local-wire-transfer" }, "signature": "FGzCPLvYWdEgsdpb3qXkaVp7Da0=" } }
-
L'option
7.3.2. Envoi d'événements à l'aide du plugin kn-event
Vous pouvez utiliser la commande kn event send
pour envoyer un événement. Les événements peuvent être envoyés soit à des adresses publiques, soit à des ressources adressables à l'intérieur d'un cluster, comme les services Kubernetes, ainsi que les services Knative, les brokers et les canaux. La commande utilise la même interface de type constructeur que la commande kn event build
.
Conditions préalables
-
Vous avez installé le CLI Knative (
kn
).
Procédure
Envoyer un événement :
$ kn event send --field <field-name>=<value> --type <type-name> --id <id> --to-url <url> --to <cluster-resource> --namespace <namespace>
où :
-
L'option
--field
ajoute des données à l'événement sous la forme d'une paire champ-valeur. Vous pouvez l'utiliser plusieurs fois. -
L'option
--type
vous permet de spécifier une chaîne de caractères désignant le type d'événement. -
L'indicateur
--id
précise l'identifiant de l'événement. -
Si vous envoyez l'événement à une destination accessible au public, indiquez l'URL à l'aide de l'indicateur
--to-url
. Si vous envoyez l'événement à une ressource Kubernetes en cluster, spécifiez la destination à l'aide de l'indicateur
--to
.-
Spécifiez la ressource Kubernetes en utilisant le format
<Kind>:<ApiVersion>:<name>
.
-
Spécifiez la ressource Kubernetes en utilisant le format
L'option
--namespace
spécifie l'espace de noms. S'il est omis, l'espace de noms est pris dans le contexte actuel.Tous ces indicateurs sont facultatifs, à l'exception de la spécification de la destination, pour laquelle vous devez utiliser
--to-url
ou--to
.L'exemple suivant montre l'envoi d'un événement à une URL :
Example command
$ kn event send \ --field player.id=6354aa60-ddb1-452e-8c13-24893667de20 \ --field player.game=2345 \ --field points=456 \ --type org.example.gaming.foo \ --to-url http://ce-api.foo.example.com/
L'exemple suivant montre l'envoi d'un événement à une ressource du cluster :
Example command
$ kn event send \ --type org.example.kn.ping \ --id $(uuidgen) \ --field event.type=test \ --field event.data=98765 \ --to Service:serving.knative.dev/v1:event-display
-
L'option