イベントトリガサーバレスサービス - (3)のOpenShift Knative 4

多くのシナリオでのサーバレスの使用はイベントトリガ、Kative機構イベンティング背景Kativeサービスを呼び出すことによって、イベントの種類を受信したときに、あるに基づいており、この記事では、いくつかの異なるトリガがサーバレスを呼び出しについて説明します。
完了時に「(2)第一サーバレスアプリケーションのOpenShift Knative 4」は、この資料に従って達成することができた後、「サーバレスサービスを呼び出すことによって、イベント」

直接イベントによってトリガサーバレスサービス

イベントソースの作成

まず、私たちは基礎「CronJobSource」定期タスクのオブジェクトを作成し、スケジュールされたタスクをシンクしますオブジェクトを達成するために、前のステップで「ずんぐり-サーバレス」サービスに設定されています。

# event-source.yaml
apiVersion: sources.eventing.knative.dev/v1alpha1
kind: CronJobSource 
metadata:
  name: event-dumpy-cronjob-source
spec:
  schedule: "* * * * *"
  sink:
    apiVersion: serving.knative.dev/v1alpha1
    kind: Service
    name: dumpy-serverless 
$ oc create -f https://raw.githubusercontent.com/liuxiaoyu-git/knative-on-ocp4/master/eventing/event-source.yaml
$ oc get sources
NAME                                                                    AGE
cronjobsource.sources.eventing.knative.dev/event-dumpy-cronjob-source   24m

サーバレスサービスが起動されていることを確認し

  1. ポッドは、現時点では第2の実行ポッドがあるべきである、連続操作の場合に観察された、タイミングタスクはポッドイベントずんぐり-cronジョブソースを実行することで、他のポッドずんぐり、サーバレス動作が呼び出されています。
$ oc get pod | grep Running -w
cronjobsource-event-dumpy--390658a6-245e-11ea-9fb4-52fdfc072wr5   1/1     Running     0          29m
dumpy-serverless-xrjzq-2-deployment-99cfd764-g8wxz                2/2     Running     0          28m
  1. そして、ずんぐり-サーバーレスログ、サービスは1分に1回呼ばれていることを確認を探していることもできます。
$ oc logs -f dumpy-serverless-xrjzq-2-deployment-99cfd764-g8wxz -c user-container
{"body":""}
2019/12/22 01:58:00 Openshift Http Request Dumper received a message: POST / HTTP/1.1
Host: dumpy-serverless.kn-demo.svc.cluster.local
Accept-Encoding: gzip
Ce-Id: 22c8e7d2-ba8f-4e1a-8028-dd292d417b3d
Ce-Source: /apis/v1/namespaces/kn-demo/cronjobsources/event-dumpy-cronjob-source
Ce-Specversion: 0.3
Ce-Time: 2019-12-22T01:58:00.003275636Z
Ce-Type: dev.knative.cronjob.event
Content-Length: 11
Forwarded: for=10.128.1.41;proto=http, for=10.128.1.6
K-Proxy-Request: activator
User-Agent: Go-http-client/1.1
X-B3-Parentspanid: 56637b9df6d4dd2b
X-B3-Sampled: 0
X-B3-Spanid: c46f0865a4e03070
X-B3-Traceid: a362fd95fac310f94b7be06279e24e4f
X-Envoy-Decorator-Operation: dumpy-serverless-xrjzq-2.kn-demo.svc.cluster.local:80/*
X-Envoy-Expected-Rq-Timeout-Ms: 600000
X-Envoy-Internal: true
X-Forwarded-For: 10.128.1.41, 10.128.1.6, 10.128.1.9
X-Forwarded-Proto: http
X-Request-Id: 9feec76b-57b8-414e-a327-588533e34df9
。。。。
  1. その後、我々は、イベントソースを削除します。
$ oc delete cronjobsource.sources.eventing.knative.dev/event-dumpy-cronjob-source
  1. その後、ポッドの操作を監視し、サーバレスを実行し始めたポッドがあります、ちょっと待って、何があり、Knativeポッドは「0」に減少したサービスを実行します説明しません。
$ oc get pod | grep Running

サーバレスサービスをサブスクライブすることにより、トリガ・イベント

チャネルオブジェクトの作成

  1. チャネル・オブジェクトのタイプを作成InMemoryChannel(オブジェクトが一連のメッセージとして理解することができます)。
$ oc create -f https://raw.githubusercontent.com/liuxiaoyu-git/knative-on-ocp4/master/eventing/in-memory-channel.yaml 
$ oc get inmemorychannel
NAME             READY   REASON   HOSTNAME                                              AGE
ch-event-dumpy   True             ch-event-dumpy-kn-channel.kn-demo.svc.cluster.local   38s

次のようにこのオブジェクトはInMemoryChannel定義されています。

apiVersion: messaging.knative.dev/v1alpha1
kind: InMemoryChannel
metadata:
  name: ch-event-dumpy
  1. ターゲットのCronJobSource定義は、イベント・ソースとして、イベントは、前のステップInMemoryChannelで生成入れます。
apiVersion: sources.eventing.knative.dev/v1alpha1
kind: CronJobSource 
metadata:
  name: event-dumpy-cronjob-source
spec:
  schedule: "* * * * *"
  sink:
    apiVersion: messaging.knative.dev/v1alpha1
    kind: InMemoryChannel
    name: ch-event-dumpy

オブジェクトを作成するコマンドを実行しCronJobSource:

$ oc create -f https://raw.githubusercontent.com/liuxiaoyu-git/knative-on-ocp4/master/eventing/event-source-to-channel.yaml 
$ oc get cronjobsource
NAME                         AGE
event-dumpy-cronjob-source   13s
  1. オブジェクトがでInMemoryChannelからイベントを取得する契約を定義し、それがサーバレスサービスのずんぐり-サーバーレス命名渡します。
apiVersion: messaging.knative.dev/v1alpha1
kind: Subscription
metadata:
  name: event-dumpy-subscriber 
spec:
  channel:
    apiVersion: messaging.knative.dev/v1alpha1
    kind: InMemoryChannel
    name: ch-event-dumpy
  subscriber:
    ref:
      apiVersion: serving.knative.dev/v1alpha1
      kind: Service
      name: dumpy-serverless 

オブジェクトを作成するコマンドを実行してサブスクリプション:

$ oc create -f https://raw.githubusercontent.com/liuxiaoyu-git/knative-on-ocp4/master/eventing/event-subscription.yaml
$ oc get subscription.messaging.knative.dev
NAME                     READY   REASON   AGE
event-dumpy-subscriber   True             3m26s

サーバレスサービスが起動されていることを確認し

  1. ビューの操作のポッド。時限イベントのために、2が存在しなければならないポッドケース(第1以下)が生成され、他方がずんぐり、サーバレスイベント・コンシューマ・サービス(以下秒)を実行するために使用されます。
$ oc get pod | grep Running
cronjob-event-dumpy-cronjob-source-dzccx-76c95574c9-q6m2f   1/1     Running     0          8m54s
dumpy-serverless-956fn-deployment-65cb7f5d97-z6ffq          2/2     Running     0          60s
  1. 削除されたタイミングジェネレータタスクイベント・ソースイベント・ずんぐり-cronジョブソース。
$ oc delete cronjobsource.sources.eventing.knative.dev/event-dumpy-cronjob-source
  1. ポッドは後に実行ずんぐり-サーバレスの数が「0」に陥っていることを確認しました
$ oc get po | grep Running
  1. 最後に、あなたは、イベントサブスクリプションを削除することができます。
$ oc delete subscription.messaging.knative.dev/event-dumpy-subscriber
公開された54元の記事 ウォンの賞賛0 ビュー1112

おすすめ

転載: blog.csdn.net/weixin_43902588/article/details/103650822