Skip to content

[FORK] Serverless Plugin to Make working with Pipes Easier

License

Notifications You must be signed in to change notification settings

belonio/serverless-pipes

 
 

Repository files navigation

Serverless Pipes Plugin

Serverless Framework plugin called as "pipes", used to create EventBridge Pipes by providing the required event sources, targets and other parameters as needed.

Pull-back changes from original author:

Communication between the original author only takes place using the main branches. master branch is used to deploy changes to our GitHub Packages Storage, meaning after updates to main, always merge main -> master !

DON'T FORGET: Real fixes are done against main and then merged to master, as master is solely considered as deployment gateway! Also, this ensures changes being able to go to the origin repository!

Merge Strategy

Install

npm install serverless-pipes

or

yarn add serverless-pipes

Allowed Services

At the initial version of the plugin, the below mentioned AWS services are supported for the source, target and enrichment in the EventBridge Pipes. We will expand to other services in the future.

Source

Target

Enrichment

Usage

# serverless.yml

plugins:
  - serverless-pipes

functions:
  pipeEnricher:
    handler: functions/pipeEnricher.handler

pipes:
  testPipe: #pipeName
    enabled: true
    source:
      sqs:
        arn:
          Fn::GetAtt: [SourceSQSQueue, Arn]
    target:
      sns:
        arn:
          Fn::GetAtt: [TargetSNSTopic, TopicArn]
    enrichment:
      name: pipeEnricher
    filter:
      - Pattern: '{ "body": { "message": [ "hello" ], "city": [ "hey" ] }}'
    iamRolePipes:
      type: "individual"

  anotherTestPipe: #pipeName
    enabled: true
    source:
      sqs:
        arn: arn:aws:sqs:eu-central-1:123456789012:source-queue-name
    target:
      sns:
        arn: arn:aws:sqs:eu-central-1:123456789012:target-queue-name
    enrichment:
      name: pipeEnricher
    filter:
      - Pattern: '{ "body": { "message": [ "hello" ], "city": [ "hey" ] }}'
    iamRolePipes:
      type: "individual"

For documentation refer Docs

Packages

No packages published

Languages

  • TypeScript 99.7%
  • Shell 0.3%