8000 Keda Connectors · Issue #1663 · fission/fission · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Keda Connectors #1663

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
2 of 22 tasks
vishal-biyani opened this issue Jul 14, 2020 · 5 comments
Closed
2 of 22 tasks

Keda Connectors #1663

vishal-biyani opened this issue Jul 14, 2020 · 5 comments

Comments

@vishal-biyani
Copy link
Member
vishal-biyani commented Jul 14, 2020

As part of the PR #1657 - the Keda integration is in place (Solves #1565).

The initial PR had Kafka connector only and the following connectors need to be developed. The connectors are generic and are maintained in the https://github.com/fission/keda-connectors repo.

Instead of creating one issue for each connector, this issue will act as a single place to track all connectors and PRs can be linked as contributions come in.

@vishal-biyani
Copy link
Member Author

@therahulbhati Once your Keda integration is in - maybe a simple guide to writing a connector in this issue would be helpful for new contributors. You can take the example of Kafka or RabbitMQ connector and explain!

@therahulbhati
Copy link
Contributor

Sure @vishal-biyani will do that.

@ajoslin103
Copy link

Yes please, I need also MQTT

@vishal-biyani vishal-biyani changed the title Keda Adapters Keda Connectors Jul 14, 2020
@therahulbhati
Copy link
Contributor
therahulbhati commented Jul 21, 2020

Connector Development Guide

The job of the connector is to read messages from the topic, invoke fission function, and write response or error in the respective queues.

Following are steps required to write a connector:

  1. Message Queue Trigger Spec fields are exposed as environment variables while creating deployment which will be utilized while creating consumer, producer, and during function invocation. Parse all required parameters required by the connector.
  2. < 8000 li>Create a Consumer for the queue.
  3. Create a Producer for the queue.
  4. Read messages from the queue using the consumer.
  5. Create a POST request with the following headers using values specified during message queue trigger creation and headers from the consumed message.
{
   "X-Fission-MQTrigger-Topic": Topic,
   "X-Fission-MQTrigger-RespTopic": ResponseTopic,
   "X-Fission-MQTrigger-ErrorTopic": ErrorTopic,
   "Content-Type": ContentType
}
  1. Invoke fission function per consumed message in a retry loop using max retries parameter specified, while creating a message queue trigger.
  2. Write response in response queue, if reponse topic is specified while creating message queue trigger.
  3. Write error in error queue, if error topic is specified while creating message queue trigger.
  4. The final step would be to write a dockerfile to create docker image of the code.

Refer to Apache Kafka connecter for more implementation details.

@vishal-biyani
Copy link
Member Author

Closing this issue here as Keda-Connectors will be tracked in their own repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants
0