Coder Social home page Coder Social logo

triggermesh / aws-custom-runtime Goto Github PK

View Code? Open in Web Editor NEW
46.0 5.0 14.0 332 KB

Knative Function Using the AWS Lambda Runtime API

Home Page: https://triggermesh.com

License: Apache License 2.0

Go 87.36% Shell 4.74% Makefile 7.90%
serverless management platform knative kubernetes aws aws-lambda

aws-custom-runtime's Introduction

TriggerMesh Logo

Release CircleCI Go Report Card Slack

The TriggerMesh Cloud Native Integration Platform consists of a set of APIs which allows you to build event-driven applications. Implemented as a set of Kubernetes CRDs and a Kubernetes controller, it gives you a way to declaratively define your event sources and event targets, in addition to potential actions needed in your applications: content-based event filtering, event splitting, event transformation and event processing via functions.

Getting Started

Installation

To install TriggerMesh, follow the installation instructions.

TL;DR

Register TriggerMesh APIs by deploying the Custom Resources Definitions:

kubectl apply -f https://github.com/triggermesh/triggermesh/releases/latest/download/triggermesh-crds.yaml

Deploy the platform:

kubectl apply -f https://github.com/triggermesh/triggermesh/releases/latest/download/triggermesh.yaml

Namespaced installation

By default, TriggerMesh works with resources across all namespaces in the Kubernetes cluster. This requires permissions provided by ClusterRoles and ClusterRoleBindings. If cluster-wide permissions are not desired, TriggerMesh can be configured to run in a single namespace. To get the namespace-scoped installation, first, deploy the CRDs:

kubectl apply -f https://github.com/triggermesh/triggermesh/releases/latest/download/triggermesh-crds.yaml

And then, using kubectl's "kustomization" feature, install customized manifests:

kubectl apply -k config/kustomization/namespaced/

Controllers created with this command won't reconcile resources outside the triggermesh namespace, ClusterRoleBindings will have the namespace scope.

Contributing

Please refer to our guidelines for contributors.

Commercial Support

TriggerMesh Inc. offers commercial support for the TriggerMesh platform. Email us at [email protected] to get more details.

License

This software is licensed under the Apache License, Version 2.0.

Additionally, the End User License Agreement included in the EULA.pdf file applies to compiled executables and container images released by TriggerMesh Inc.

aws-custom-runtime's People

Contributors

adrien-f avatar evankanderson avatar sameersbn avatar sebgoa avatar stesie avatar tzununbekov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

aws-custom-runtime's Issues

ISSUE: TM Function does not handle inner reference response

Per the triggermesh docs ->

"Functions may be used to implement custom event flow logic"

Expectation:

Using a function to do a custom/complex transformation before reaching an inner processing ksvc will perform the transformation and return the result of the ksvc.

Reality:

It does the custom transformation, but the response is nil.

https://github.com/triggermesh/aws-custom-runtime/blob/main/pkg/sender/sender.go#L56

Simple Example

# perform modification (only user code part) to attestation input
apiVersion: extensions.triggermesh.io/v1alpha1
kind: Function
metadata:
  name: custom-tsf
  namespace: default
spec:
  runtime: python
  public: true
  entrypoint: main
  sink:
    ref:
      name: example-inner
      namespace: default
      kind: Service
      apiVersion: serving.knative.dev/v1
  code: |
    def main(payload, context):
        payload['metdata'] = 'some change'

        return payload

hitting this function will always return nil, because it sends to an inner ksvc, I do not think you should have to create a sinkbinding or assume the broker for the inner ksvc each time to return the event...I think it should match the flow of a transformation which returns it to the same broker the transformation reads from (same with a filter).

It just seems like the function is unique in this regard, and it breaks expectations.

RUST build fails

bash example works great.

rust fails at:

docker run --rm --user "$(id -u)":"$(id -g)" -v "$PWD":/usr/src/myapp -w /usr/src/myapp rust:1.30.0 cargo build -p lambda_runtime --example basic --release
...
 Downloading backtrace-sys v0.1.24
 Downloading rustc-demangle v0.1.9
 Downloading cc v1.0.25
 Downloading ryu v0.2.6
   Compiling lambda_runtime_client v0.1.0 (/usr/src/myapp/lambda-runtime-client)
error: Edition 2018 is unstable and only available for nightly builds of rustc.

error: Could not compile `lambda_runtime_client`.

To learn more, run the command again with --verbose.

Update CI

CI pipeline must include test run and linter checks, release procedure, etc.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.