grpctrigger

package module
v0.0.0-...-dceaa68 Latest Latest
Warning

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

Go to latest
Published: Sep 29, 2020 License: MIT Imports: 9 Imported by: 0

README

gRPC trigger

Subscribe to gRPC messages

Installation

flogo install github.com/retgits/flogo-components/trigger/grpctrigger

Link for flogo web:

https://github.com/retgits/flogo-components/trigger/grpctrigger

Schema

Inputs and Outputs:

{
    "settings": [
        {
            "name": "tcpPort",
            "type": "string",
            "required": true
        },
        {
            "name": "protofileLocation",
            "type": "string",
            "required": true
        }
    ],
    "output": [
        {
            "name": "message",
            "type": "any"
        }
    ],
    "reply": [
        {
            "name": "data",
            "type": "any"
        }
    ],
    "handler": {
        "settings": [
            {
                "name": "service",
                "type": "string",
                "required": true
            },
            {
                "name": "rpc",
                "type": "string",
                "required": true
            }
        ]
    }
}

Settings (generic settings for the trigger)

Input Description
tcpPort The tcp port for the Flogo app to listen on
protofileLocation The location of the .proto file to use

Ouputs (data sent to the flow)

Output Description
message The JSON representation of the gRPC message

Reply (data sent back to the trigger)

Input Description
data The JSON representation of the gRPC message

Handler (flow specific settings)

Handler Description
channel The channel you want to listen to

Usage

To use this trigger you'll need to have gRPC and Protocol Buffers V3 installed. Because these dependencies are not installed in Flogo Web by default, you can only build an app using the CLI (designing an app will work perfectly in the Flogo Web UI)

The below install instructions are from the gRPC quickstart

Install gRPC

To install gRPC use the following command

$ go get -u google.golang.org/grpc
Install Protocol Buffers v3

Install the protoc compiler that is used to generate gRPC service code. The simplest way to do this is to download pre-compiled binaries for your platform(protoc-<version>-<platform>.zip) from here: https://github.com/google/protobuf/releases

  • Unzip this file.
  • Update the environment variable PATH to include the path to the protoc binary file.

Next, install the protoc plugin for Go

$ go get -u github.com/golang/protobuf/protoc-gen-go

The compiler plugin, protoc-gen-go, will be installed in $GOBIN, defaulting to $GOPATH/bin. It must be in your $PATH for the protocol compiler, protoc, to find it.

$ export PATH=$PATH:$GOPATH/bin
Create a .proto file

The basis of gRPC is the .proto file. In order to successfully build the app you'll need to have one. An example proto file looks like:

syntax = "proto3";

option java_multiple_files = true;
option java_package = "com.leon.helloleon";
option java_outer_classname = "HelloLeonProto";

package helloleon;

service SaySomethingCool {
    rpc Awesomeness(InMessage) returns (OutMessage) {}
}

message InMessage {
    string name = 1;
}

message OutMessage {
    string name = 1;
    string awesomeness = 2;
}
Install trigger

To install the trigger into your Web UI, create a new app and click on the “+” icon on the left hand side of the screen. From there click on “Install new” and paste https://github.com/retgits/flogo-components/trigger/grpctrigger into the input dialog to get this new trigger.

Create an app

With everythong installed you can create the app using the Web UI as you would for any other app. Note that while constructing the return activity, you start each field with a capital letter (generating the structs made all fields exported and with Go that means they start with a capital letter). For the example above, a valid return would be

{
  "Name": "You",
  "Awesomeness": "Incredible!"
}
Build

To build the app, you'll have to export it first. From the main screen of your app (where all flows are listed), click "export" and select "App". You can use the following commands to build the app

# Create the Flogo app
$ flogo create -f <app.json> <appname>
# Build an executable
$ cd <appname>
$ flogo build -shim receive_grpc_message
# Start the app
$ ./bin/<appname>

Documentation

Overview

Code generated by protoc-gen-go. DO NOT EDIT.

Package grpctrigger implements a trigger to receive messages over gRPC.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewFactory

func NewFactory(md *trigger.Metadata) trigger.Factory

NewFactory create a new Trigger factory

Types

type GRPCFactory

type GRPCFactory struct {
	// contains filtered or unexported fields
}

GRPCFactory gRPC Trigger factory

func (*GRPCFactory) New

func (t *GRPCFactory) New(config *trigger.Config) trigger.Trigger

New Creates a new trigger instance for a given id

type GRPCTrigger

type GRPCTrigger struct {
	// contains filtered or unexported fields
}

GRPCTrigger struct

func (*GRPCTrigger) Initialize

func (t *GRPCTrigger) Initialize(ctx trigger.InitContext) error

Initialize makes sure the trigger is completely set up for the Start method to work

func (*GRPCTrigger) Metadata

func (t *GRPCTrigger) Metadata() *trigger.Metadata

Metadata implements trigger.Trigger.Metadata

func (*GRPCTrigger) Start

func (t *GRPCTrigger) Start() error

func (*GRPCTrigger) Stop

func (t *GRPCTrigger) Stop() error

Directories

Path Synopsis
+build example
+build example

Jump to

Keyboard shortcuts

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