event-publisher-proxy

module
v0.0.0-...-cc7cbc4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 21, 2021 License: Apache-2.0

README

Event Publisher Proxy

Overview

The Event Publisher Proxy receives legacy and Cloud Event publishing requests from the cluster workloads (microservice or Serverless functions) and redirects them to the Enterprise Messaging Service Cloud Event Gateway. It also fetches a list of subscriptions for a connected application.

Prerequisites

  • Go modules
  • ko
  • lint
    • Install lint on the local environment:
curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | bash -s -- -b $GOPATH/bin

Development

  • check code quality before a commit:
$ make code-check
Build
$ go mod vendor
Test
$ make test-local
Deploy inside a cluster
$ ko apply -f config/event-publisher-proxy/
Send Events

This command supports cloud events:

curl -v -X POST \
    -H "Content-Type: application/cloudevents+json" \
    --data @<(<<EOF
    {
        "specversion": "1.0",
        "source": "/default/sap.kyma/kt1",
        "type": "sap.kyma.FreightOrder.Arrived.v1",
        "eventtypeversion": "v1",
        "id": "A234-1234-1234",
        "data" : "{\"foo\":\"bar\"}",
        "datacontenttype":"application/json"
    }
EOF
    ) \
    http://<hostname>/publish

This command supports legacy events:

curl -v -X POST \
    -H "Content-Type: application/json" \
    --data @<(<<EOF
    {
        "event-type": "order.created",
        "event-type-version": "v0",
        "event-time": "2020-04-02T21:37:00Z",
        "data" : "{\"foo\":\"legacy-mode-on\"}"
    }
EOF
    ) \
    http://<hostname>/application-name/v1/events
Get a list of subscriptions for a connected application
curl -v -X GET \
    -H "Content-Type: application/json" \
    http://hostname/:application-name/v1/events/subscribed

Environment Variables

Environment Variable Default Value Description
INGRESS_PORT 8080 The ingress port for the Cloud Events Gateway Proxy.
MAX_IDLE_CONNS 100 The maximum number of idle (keep-alive) connections across all hosts. Zero means no limit.
MAX_IDLE_CONNS_PER_HOST 2 The maximum idle (keep-alive) connections to keep per-host. Zero means the default value.
REQUEST_TIMEOUT 5s The timeout for the outgoing requests to the Messaging server.
CLIENT_ID The Client ID used to acquire Access Tokens from the Authentication server.
CLIENT_SECRET The Client Secret used to acquire Access Tokens from the Authentication server.
TOKEN_ENDPOINT The Authentication Server Endpoint to provide Access Tokens.
EMS_PUBLISH_URL The Messaging Server Endpoint that accepts publishing Cloud Events to it.
BEB_NAMESPACE The name of the namespace in BEB.
EVENT_TYPE_PREFIX The prefix of the eventType as per the BEB event specification.

Flags

Flag Default Value Description
max-request-size 65536 The maximum size of the request.
metrics-addr :9090 The address the metric endpoint binds to.

Directories

Path Synopsis
cmd
pkg
application/applicationtest
Package applicationtest provides utilities for Application testing.
Package applicationtest provides utilities for Application testing.
ems
env
handler/handlertest
Package handlertest provides utilities for Handler testing.
Package handlertest provides utilities for Handler testing.
metrics/metricstest
Package metricstest provides utilities for metrics testing.
Package metricstest provides utilities for metrics testing.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL