Python library for interacting with the Event Gateway.
This is the Python SDK for interacting with the Event Gateway, the hub for connecting events to serverless functions.
pip install event-gateway-sdk
Use the emit
command to emit a CloudEvent payload to your Event Gateway. The event will be received by any function that is subscribed to your event.
from eventgateway import EventGateway
eg = EventGateway(url="https://mytenant-myapp.slsgateway.com")
cloudEvent = {
"eventType": "user.created",
"cloudEventsVersion": "0.1",
"source": "/services/users",
"data": {
"userId": "foo",
"userName": "bar"
}
}
eg.emit(cloudEvent=cloudEvent, path="/user/send-mail-user")
The emit()
function takes three arguments:
- an
event
which is a valid CloudEvent, - a
path
which is the path associated to the function (default:/
) - a
headers
object that represents the headers sent to the gateway (default:{"Content-type": "application/json"}
)
The function returns a request object. If your event has a sync
subscription attached, the fetch
response will have the status code and body from the subscription. If not, the response will return a 202 Accepted
status code with an empty body.
In the example above, we created an Event Gateway client using the application URL from the hosted Event Gateway provided by Serverless, Inc.
You can also use the Event Gateway SDK with your own, self-hosted Event Gateway. Constructor details are listed below.
Parameters
url
-string
- optional, Events API URL, default:http://localhost:4000
space
-string
- optional, space name, default:default
configurationUrl
-string
- optional, Configuration API URL. By default, it's the same asurl
but with4001
portconnectorUrl
-string
- optional, Connector API URL. By default, it's the same asurl
but with4002
portaccessKey
-string
- optional, access key for hosted Event Gateway. Access key is required for using Configuration API methods on hosted Event Gateway
Example
from eventgateway import EventGateway
eg = EventGateway(url="https://mytenant-myapp.slsgateway.com", space="user")
Used to check the connectivity to the Event Gateway (using the /v1/status
endpoint).
Example
from eventgateway import EventGateway
eg = EventGateway()
if eg.checkConnection():
print("Connection succesfull")
else:
print("Issue while connecting")
Utility to print the current configuration.
Example
from eventgateway import EventGateway
eg = EventGateway()
eg.printConfig()
Function to create an event type.
Example
from eventgateway import EventGateway
eventtype = {
"name": "http.request"
}
eg = EventGateway()
eg.createEventType(eventtype)
Function to get an event type.
Example
from eventgateway import EventGateway
eg = EventGateway()
eg.getEventType("user.created")
Function to get all event type.
Example
from eventgateway import EventGateway
eg = EventGateway()
eg.getAllEventType()
Function to create a function trigger.
Example
from eventgateway import EventGateway
function = {
"functionId": "new-user",
"type": "http",
"provider":{
"url": "http://myapp.com/user/new"
}
}
eg = EventGateway()
eg.createFunction(function)
Function to get a function.
Example
from eventgateway import EventGateway
eg = EventGateway()
eg.getFunction("new-user")
Function to get all functions.
Example
from eventgateway import EventGateway
eg = EventGateway()
eg.getAllFunction()
Function to subscribe to a function.
Example
from eventgateway import EventGateway
subscription = {
"functionId": "new-user",
"event": "http",
"method": "POST",
"path": "/user/new",
"eventType": "http.request",
"type": "async"
}
eg = EventGateway()
eg.createSubscription(subscription)
Function to get a subscription.
Example
from eventgateway import EventGateway
eg = EventGateway()
eg.getSubscription("YXN5bmMsaHR0cC5yZXF1ZXN0LG5ldy11c2VyLW9wZW5wYWFzLCUyRmppcmE")
Function to get all subscription.
Example
from eventgateway import EventGateway
eg = EventGateway()
eg.getAllSubscription()
TBD