diff --git a/README.md b/README.md index 82dbaf58e..ba12bb3ee 100644 --- a/README.md +++ b/README.md @@ -156,6 +156,7 @@ This table is generated from https://github.com/serverless/plugins/blob/master/p --> | Plugin | Author | | :----- | :----: | +| **[Fullstack Serverless](https://github.com/MadSkills-io/fullstack-serverless)**
A Serverless plugin to create an AWS CloudFront distribution that serves static web content from S3 and routes API traffic to API Gateway. | [MadSkills-io](http://github.com/MadSkills-io) | | **[Go Serverless](https://github.com/thepauleh/goserverless)**
GoFormation for Serverless. Create serverless configs with Go Structs. | [thepauleh](http://github.com/thepauleh) | | **[Raml Serverless](https://github.com/andrewcurioso/raml-serverless)**
Serverless plugin to work with RAML API spec documents | [andrewcurioso](http://github.com/andrewcurioso) | | **[Serverless Alexa Plugin](https://github.com/rajington/serverless-alexa-plugin)**
Serverless plugin to support Alexa Lambda events | [rajington](http://github.com/rajington) | @@ -174,6 +175,8 @@ This table is generated from https://github.com/serverless/plugins/blob/master/p | **[Serverless Aws Documentation](https://github.com/9cookies/serverless-aws-documentation)**
Serverless plugin to add documentation and models to the serverless generated API Gateway | [9cookies](http://github.com/9cookies) | | **[Serverless Aws Nested Stacks](https://github.com/concon121/serverless-plugin-nested-stacks)**
Yet another AWS nested stack plugin! | [concon121](http://github.com/concon121) | | **[Serverless Aws Resource Names](https://github.com/concon121/serverless-plugin-aws-resource-names)**
Serverless plugin to alter the default naming conventions for sls resources via a simple mapping file. | [concon121](http://github.com/concon121) | +| **[Serverless Basic Authentication](https://github.com/svdgraaf/serverless-basic-authentication)**
Serverless Plugin for adding Basic Authentication to your api | [svdgraaf](http://github.com/svdgraaf) | +| **[Serverless Build Client](https://github.com/tgfischer/serverless-build-client)**
Build your static website with environment variables defined in serverless.yml | [tgfischer](http://github.com/tgfischer) | | **[Serverless Build Plugin](https://github.com/nfour/serverless-build-plugin)**
A Node.js focused build plugin for serverless. | [nfour](http://github.com/nfour) | | **[Serverless Cf Vars](https://gitlab.com/kabo/serverless-cf-vars)**
Enables use of AWS pseudo functions and Fn::Sub string substitution | [kabo](http://github.com/kabo) | | **[Serverless Cljs Plugin](https://github.com/nervous-systems/serverless-cljs-plugin)**
Enables Clojurescript as an implementation language for Lambda handlers | [nervous-systems](http://github.com/nervous-systems) | @@ -182,16 +185,21 @@ This table is generated from https://github.com/serverless/plugins/blob/master/p | **[Serverless Cloudformation Resource Counter](https://github.com/drexler/serverless-cloudformation-resource-counter)**
A plugin to count the resources generated in the AWS CloudFormation stack after deployment. | [drexler](http://github.com/drexler) | | **[Serverless Cloudformation Sub Variables](https://github.com/santiagocardenas/serverless-cloudformation-sub-variables)**
Serverless framework plugin for easily supporting AWS CloudFormation Sub function variables | [santiagocardenas](http://github.com/santiagocardenas) | | **[Serverless Coffeescript](https://github.com/duanefields/serverless-coffeescript)**
A Serverless plugin to compile your CoffeeScript into JavaScript at deployment | [duanefields](http://github.com/duanefields) | +| **[Serverless Cognito Add Custom Attributes](https://github.com/GetWala/serverless-cognito-add-custom-attributes)**
Serverless Plugin for adding custom attributes to an existing CloudFormation-managed CognitoUserPool and CognitoUserPoolClient without losing all your users | [GetWala](http://github.com/GetWala) | | **[Serverless Command Line Event Args](https://github.com/horike37/serverless-command-line-event-args)**
This module is Serverless Framework plugin. Event JSON passes to your Lambda function in commandline. | [horike37](http://github.com/horike37) | -| **[Serverless Content Encoding](https://github.com/xeno-dohai/serverless-content-encoding)**
Enable Content Encoding in AWS API Gateway during deployment | [xeno-dohai](http://github.com/xeno-dohai) | +| **[Serverless Content Encoding](https://github.com/dong-dohai/serverless-content-encoding)**
Enable Content Encoding in AWS API Gateway during deployment | [dong-dohai](http://github.com/dong-dohai) | +| **[Serverless Create Global Dynamodb Table](https://github.com/rrahul963/serverless-create-global-dynamodb-table)**
Serverless plugin to create dynamodb global tables | [rrahul963](http://github.com/rrahul963) | | **[Serverless Crypt](https://github.com/marcy-terui/serverless-crypt)**
Securing the secrets on Serverless Framework by AWS KMS encryption. | [marcy-terui](http://github.com/marcy-terui) | | **[Serverless Custom Packaging Plugin](https://github.com/hypoport/serverless-custom-packaging-plugin)**
Plugin to package your sourcecode using a custom target path inside the zip. | [hypoport](http://github.com/hypoport) | +| **[Serverless Dependson Plugin](https://github.com/bwinant/serverless-dependson-plugin)**
Serverless plugin that automatically generates DependsOn references for AWS Lambdas to prevent AWS RequestLimitExceeded errors. | [bwinant](http://github.com/bwinant) | +| **[Serverless Ding](https://github.com/sidgonuts/serverless-ding)**
Serverless plugin to audibly alert user after deployment | [sidgonuts](http://github.com/sidgonuts) | | **[Serverless Dir Config Plugin](https://github.com/economysizegeek/serverless-dir-config-plugin)**
EXPERIMENTAL - Serverless plugin to load function and resource definitions from a directory. | [economysizegeek](http://github.com/economysizegeek) | | **[Serverless Domain Manager](https://github.com/amplify-education/serverless-domain-manager)**
Serverless plugin for managing custom domains with API Gateways. | [amplify-education](http://github.com/amplify-education) | | **[Serverless Dotenv](https://github.com/Jimdo/serverless-dotenv)**
Fetch environment variables and write it to a .env file | [Jimdo](http://github.com/Jimdo) | | **[Serverless Dotnet](https://github.com/fruffin/serverless-dotnet)**
A serverless plugin to run 'dotnet' commands as part of the deploy process | [fruffin](http://github.com/fruffin) | | **[Serverless Dynalite](https://github.com/sdd/serverless-dynalite)**
Run dynalite locally (no JVM, all JS) to simulate DynamoDB. Watch serverless.yml for table config updates. | [sdd](http://github.com/sdd) | | **[Serverless Dynamodb Autoscaling](https://github.com/sbstjn/serverless-dynamodb-autoscaling)**
Configure Amazon DynamoDB's native Auto Scaling for your table capacities. | [sbstjn](http://github.com/sbstjn) | +| **[Serverless Dynamodb Fixtures](https://github.com/chechu/serverless-dynamodb-fixtures)**
Serverless Dynamodb Fixtures - Allows to load data on DynamoDB tables | [chechu](http://github.com/chechu) | | **[Serverless Dynamodb Local](https://github.com/99xt/serverless-dynamodb-local)**
Serverless Dynamodb Local Plugin - Allows to run dynamodb locally for serverless | [99xt](http://github.com/99xt) | | **[Serverless Dynamodb Ttl](https://github.com/Jimdo/serverless-dynamodb-ttl)**
Configure DynamoDB TTL in serverless.yml (until CloudFormation supports this). | [Jimdo](http://github.com/Jimdo) | | **[Serverless Enable Api Logs](https://github.com/paulSambolin/serverless-enable-api-logs)**
Enables Coudwatch logging for API Gateway events | [paulSambolin](http://github.com/paulSambolin) | @@ -200,12 +208,14 @@ This table is generated from https://github.com/serverless/plugins/blob/master/p | **[Serverless Event Constant Inputs](https://github.com/dittto/serverless-event-constant-inputs)**
Allows you to add constant inputs to events in Serverless 1.0. For more info see [constant values in Cloudwatch](https://aws.amazon.com/blogs/compute/simply-serverless-use-constant-values-in-cloudwatch-event-triggered-lambda-functions/) | [dittto](http://github.com/dittto) | | **[Serverless Export Env](https://github.com/arabold/serverless-export-env)**
Export environment variables into a .env file with automatic AWS CloudFormation reference resolution. | [arabold](http://github.com/arabold) | | **[Serverless Express](https://github.com/mikestaub/serverless-express)**
Making express app development compatible with serverless framework. | [mikestaub](http://github.com/mikestaub) | +| **[Serverless Finch](https://github.com/fernando-mc/serverless-finch)**
A Serverless plugin to deploy static website assets to AWS S3. | [fernando-mc](http://github.com/fernando-mc) | | **[Serverless Functions Base Path](https://github.com/kevinrambaud/serverless-functions-base-path)**
Easily define a base path where your serverless functions are located. | [kevinrambaud](http://github.com/kevinrambaud) | | **[Serverless Go Build](https://github.com/sean9keenan/serverless-go-build)**
Build go source files (or public functions) using yml definition file | [sean9keenan](http://github.com/sean9keenan) | | **[Serverless Gulp](https://github.com/rhythminme/serverless-gulp)**
A thin task wrapper around @goserverless that allows you to automate build, test and deploy tasks using gulp | [rhythminme](http://github.com/rhythminme) | | **[Serverless Haskell](https://github.com/seek-oss/serverless-haskell)**
Deploying Haskell applications to AWS Lambda with Serverless | [seek-oss](http://github.com/seek-oss) | | **[Serverless Hooks Plugin](https://github.com/uswitch/serverless-hooks-plugin)**
Run arbitrary commands on any lifecycle event in serverless | [uswitch](http://github.com/uswitch) | | **[Serverless Iam Roles Per Function](https://github.com/functionalone/serverless-iam-roles-per-function)**
Serverless Plugin for easily defining IAM roles per function via the use of iamRoleStatements at the function level. | [functionalone](http://github.com/functionalone) | +| **[Serverless Ignore](https://github.com/nya1/serverless-ignore)**
Serverless plugin to ignore files (.slsignore) | [nya1](http://github.com/nya1) | | **[Serverless Iot Local](https://github.com/tradle/serverless-iot-local)**
AWS Iot events with serverless-offline | [tradle](http://github.com/tradle) | | **[Serverless Jest Plugin](https://github.com/SC5/serverless-jest-plugin)**
A Serverless Plugin for the Serverless Framework which adds support for test-driven development using Jest | [SC5](http://github.com/SC5) | | **[Serverless Kms Secrets](https://github.com/SC5/serverless-kms-secrets)**
Allows to easily encrypt and decrypt secrets using KMS from the serverless CLI | [SC5](http://github.com/SC5) | @@ -226,7 +236,6 @@ This table is generated from https://github.com/serverless/plugins/blob/master/p | **[Serverless Package Common](https://github.com/onlicar/serverless-package-common)**
Deploy microservice Python Serverless services with common code | [onlicar](http://github.com/onlicar) | | **[Serverless Package Python Functions](https://github.com/ubaniabalogun/serverless-package-python-functions)**
Packaging Python Lambda functions with only the dependencies/requirements they need. | [ubaniabalogun](http://github.com/ubaniabalogun) | | **[Serverless Parameters](https://github.com/svdgraaf/serverless-parameters)**
Add parameters to the generated cloudformation templates | [svdgraaf](http://github.com/svdgraaf) | -| **[Serverless Plugin Api Docs](https://github.com/8select/serverless-plugin-api-docs)**
Serverless plugin to automatically create a lambda function which returns Swagger-UI HTML API Documentation Page based on the given swagger spec JSON file. | [8select](http://github.com/8select) | | **[Serverless Plugin Aws Alerts](https://github.com/ACloudGuru/serverless-plugin-aws-alerts)**
A Serverless plugin to easily add CloudWatch alarms to functions | [ACloudGuru](http://github.com/ACloudGuru) | | **[Serverless Plugin Aws Resolvers](https://github.com/DopplerLabs/serverless-plugin-aws-resolvers)**
Resolves variables from ESS, RDS, or Kinesis for serverless services | [DopplerLabs](http://github.com/DopplerLabs) | | **[Serverless Plugin Bespoken](https://github.com/bespoken/serverless-plugin-bespoken)**
Creates a local server and a proxy so you don't have to deploy anytime you want to test your code | [bespoken](http://github.com/bespoken) | @@ -237,16 +246,20 @@ This table is generated from https://github.com/serverless/plugins/blob/master/p | **[Serverless Plugin Cfauthorizer](https://github.com/SC5/serverless-plugin-cfauthorizer)**
This plugin allows you to define your own API Gateway Authorizers as the Serverless CloudFormation resources and apply them to HTTP endpoints. | [SC5](http://github.com/SC5) | | **[Serverless Plugin Chrome](https://github.com/adieuadieu/serverless-chrome/tree/master/packages/serverless-plugin)**
Plugin which bundles and ensures that Headless Chrome/Chromium is running when your AWS Lambda function handler is invoked. | [adieuadieu](http://github.com/adieuadieu) | | **[Serverless Plugin Cloudwatch Sumologic](https://github.com/ACloudGuru/serverless-plugin-cloudwatch-sumologic)**
Plugin which auto-subscribes a log delivery lambda function to lambda log groups created by serverless | [ACloudGuru](http://github.com/ACloudGuru) | +| **[Serverless Plugin Colocate](https://github.com/aronim/serverless-plugin-colocate)**
Serverless Plugin to keep your configuration next to your code. | [aronim](http://github.com/aronim) | | **[Serverless Plugin Common Excludes](https://github.com/dougmoscrop/serverless-plugin-common-excludes)**
Adds commonly excluded files to package.excludes | [dougmoscrop](http://github.com/dougmoscrop) | | **[Serverless Plugin Custom Domain](https://github.com/dougmoscrop/serverless-plugin-custom-domain)**
Reliably sets a BasePathMapping to an API Gateway Custom Domain | [dougmoscrop](http://github.com/dougmoscrop) | | **[Serverless Plugin Deploy Environment](https://github.com/DopplerLabs/serverless-plugin-deploy-environment)**
Plugin to manage deployment environment across stages | [DopplerLabs](http://github.com/DopplerLabs) | | **[Serverless Plugin Diff](https://github.com/nicka/serverless-plugin-diff)**
Compares your local AWS CloudFormation templates against deployed ones. | [nicka](http://github.com/nicka) | | **[Serverless Plugin Dynamodb Autoscaling](https://github.com/medikoo/serverless-plugin-dynamodb-autoscaling)**
Auto generate auto scaling configuration for configured DynamoDB tables | [medikoo](http://github.com/medikoo) | | **[Serverless Plugin Elastic Beanstalk](https://github.com/rawphp/serverless-plugin-elastic-beanstalk)**
A serverless plugin to deploy applications to AWS ElasticBeanstalk. | [rawphp](http://github.com/rawphp) | +| **[Serverless Plugin Embedded Env In Code](https://github.com/zaru/serverless-plugin-embedded-env-in-code)**
Replace environment variables with static strings before deployment. It’s for Lambda@Edge. | [zaru](http://github.com/zaru) | | **[Serverless Plugin Encode Env Var Objects](https://github.com/yonomi/serverless-plugin-encode-env-var-objects)**
Serverless plugin to encode any environment variable objects. | [yonomi](http://github.com/yonomi) | | **[Serverless Plugin External Sns Events](https://github.com/silvermine/serverless-plugin-external-sns-events)**
Add ability for functions to use existing or external SNS topics as an event source | [silvermine](http://github.com/silvermine) | +| **[Serverless Plugin Fastdeploy](https://github.com/aronim/serverless-plugin-fastdeploy)**
Serverless Plugin to perform fast deployments for large service packages. | [aronim](http://github.com/aronim) | | **[Serverless Plugin Git Variables](https://github.com/jacob-meacham/serverless-plugin-git-variables)**
A Serverless plugin to expose git variables (branch name, HEAD description, full commit hash) to your serverless services | [jacob-meacham](http://github.com/jacob-meacham) | | **[Serverless Plugin Graphiql](https://github.com/bencooling/serverless-plugin-graphiql)**
A Serverless plugin to run a local http server for graphiql and your graphql handler | [bencooling](http://github.com/bencooling) | +| **[Serverless Plugin Ifelse](https://github.com/anantab/serverless-plugin-ifelse)**
A Serverless Plugin to write If Else conditions in serverless YAML file | [anantab](http://github.com/anantab) | | **[Serverless Plugin Include Dependencies](https://github.com/dougmoscrop/serverless-plugin-include-dependencies)**
This is a Serverless plugin that should make your deployed functions smaller. | [dougmoscrop](http://github.com/dougmoscrop) | | **[Serverless Plugin Inject Dependencies](https://github.com/loanmarket/serverless-plugin-inject-dependencies)**
Painlessly deploy serverless projects with only the required dependencies. | [loanmarket](http://github.com/loanmarket) | | **[Serverless Plugin Iopipe](https://github.com/iopipe/serverless-plugin-iopipe)**
See inside your Lambda functions with high fidelity metrics and monitoring. | [iopipe](http://github.com/iopipe) | @@ -255,13 +268,14 @@ This table is generated from https://github.com/serverless/plugins/blob/master/p | **[Serverless Plugin Metric](https://github.com/alex20465/serverless-plugin-metric)**
Creates dynamically AWS metric-filter resources with custom patterns | [alex20465](http://github.com/alex20465) | | **[Serverless Plugin Multiple Responses](https://github.com/silvermine/serverless-plugin-multiple-responses)**
Enable multiple content-types for Response template | [silvermine](http://github.com/silvermine) | | **[Serverless Plugin Node Shim](https://github.com/jzimmek/serverless-plugin-node-shim)**
Serverless plugin to run your functions in nodejs version (8 LTS, 9+) on aws lambda | [jzimmek](http://github.com/jzimmek) | +| **[Serverless Plugin Offline Dynamodb Stream](https://github.com/orchestrated-io/serverless-plugin-offline-dynamodb-stream)**
Serverless Plugin for emulating dynamodb stream triggering lambda functions offline | [orchestrated-io](http://github.com/orchestrated-io) | | **[Serverless Plugin Offline Kinesis Events](https://github.com/DopplerLabs/serverless-plugin-offline-kinesis-events)**
Plugin that works with serverless-offline to allow offline testing of serverless functions that are triggered by Kinesis events. | [DopplerLabs](http://github.com/DopplerLabs) | -| **[Serverless Plugin Offline Kinesis](https://github.com/godu/serverless/tree/master/packages/serverless-offline-kinesis)**
ServerlessOffline's plugin which listens Kinesis stream and invokes locally your handlers | [godu](http://github.com/godu) | -| **[Serverless Plugin Offline DynamoDBStreams](https://github.com/godu/serverless/tree/master/packages/serverless-offline-dynamodb-streams)**
ServerlessOffline's plugin which listens DynamoDBStreams stream and invokes locally your handlers | [godu](http://github.com/godu) | | **[Serverless Plugin Optimize](https://github.com/FidelLimited/serverless-plugin-optimize)**
Bundle with Browserify, transpile with Babel to ES5 and minify with Uglify your Serverless functions. | [FidelLimited](http://github.com/FidelLimited) | | **[Serverless Plugin Package Dotenv File](https://github.com/ACloudGuru/serverless-plugin-package-dotenv-file)**
A Serverless plugin to copy a .env file into the serverless package | [ACloudGuru](http://github.com/ACloudGuru) | +| **[Serverless Plugin Parent](https://github.com/aronim/serverless-plugin-parent)**
Serverless Plugin that allows you to keep common configuration in a parent serverless.yml | [aronim](http://github.com/aronim) | | **[Serverless Plugin Provider Groups](https://github.com/loanmarket/serverless-plugin-provider-groups)**
A plugin to allow management of grouped settings within large serverless projects. | [loanmarket](http://github.com/loanmarket) | | **[Serverless Plugin Reducer](https://github.com/medikoo/serverless-plugin-reducer)**
Reduce Node.js lambda package so it contains only lambda dependencies | [medikoo](http://github.com/medikoo) | +| **[Serverless Plugin Registry](https://github.com/aronim/serverless-plugin-registry)**
Serverless plugin to register function names with AWS SSM Parameter Store. | [aronim](http://github.com/aronim) | | **[Serverless Plugin Scripts](https://github.com/mvila/serverless-plugin-scripts)**
Add scripting capabilities to the Serverless Framework | [mvila](http://github.com/mvila) | | **[Serverless Plugin Select](https://github.com/FidelLimited/serverless-plugin-select)**
Select which functions are to be deployed based on region and stage. | [FidelLimited](http://github.com/FidelLimited) | | **[Serverless Plugin Simulate](https://github.com/gertjvr/serverless-plugin-simulate)**
Simulate AWS Lambda and API Gateway locally using Docker | [gertjvr](http://github.com/gertjvr) | @@ -280,11 +294,13 @@ This table is generated from https://github.com/serverless/plugins/blob/master/p | **[Serverless Plugin Write Env Vars](https://github.com/silvermine/serverless-plugin-write-env-vars)**
Write environment variables out to a file that is compatible with dotenv | [silvermine](http://github.com/silvermine) | | **[Serverless Prune Plugin](https://github.com/claygregory/serverless-prune-plugin)**
Deletes old versions of functions from AWS, preserving recent and aliased versions | [claygregory](http://github.com/claygregory) | | **[Serverless Pseudo Parameters](https://github.com/svdgraaf/serverless-pseudo-parameters)**
Use ${AWS::AccountId} and other cloudformation pseudo parameters in your serverless.yml values | [svdgraaf](http://github.com/svdgraaf) | +| **[Serverless Puresec Cli](https://github.com/puresec/serverless-puresec-cli)**
Serverless Plugin for magically creating IAM roles that are least privileged per function. | [puresec](http://github.com/puresec) | | **[Serverless Python Individually](https://github.com/cfchou/serverless-python-individually)**
A serverless framework plugin to install multiple lambda functions written in python | [cfchou](http://github.com/cfchou) | | **[Serverless Python Requirements](https://github.com/UnitedIncome/serverless-python-requirements)**
Serverless plugin to bundle Python packages | [UnitedIncome](http://github.com/UnitedIncome) | | **[Serverless Reqvalidator Plugin](https://github.com/RafPe/serverless-reqvalidator-plugin)**
Serverless plugin to add request validator to API Gateway methods | [RafPe](http://github.com/RafPe) | | **[Serverless Resources Env](https://github.com/rurri/serverless-resources-env)**
After Deploy, this plugin fetches cloudformation resource identifiers and sets them on AWS lambdas, and creates local .-env file | [rurri](http://github.com/rurri) | | **[Serverless Run Function Plugin](https://github.com/lithin/serverless-run-function-plugin)**
Run serverless function locally | [lithin](http://github.com/lithin) | +| **[Serverless Rust](https://github.com/softprops/serverless-rust)**
Deploy Rustlang applications to AWS Lambda | [softprops](http://github.com/softprops) | | **[Serverless S 3 Encryption](https://github.com/tradle/serverless-s3-encryption)**
Set or remove the encryption settings on your s3 buckets | [tradle](http://github.com/tradle) | | **[Serverless S 3 Remover](https://github.com/sinofseven/serverless-s3-remover)**
A serverless plugin to make s3 buckets empty before deleting cloudformation stack when ```sls remove``` | [sinofseven](http://github.com/sinofseven) | | **[Serverless S 3 Sync](https://github.com/k1LoW/serverless-s3-sync)**
A plugin to sync local directories and S3 prefixes for Serverless Framework, | [k1LoW](http://github.com/k1LoW) | @@ -319,8 +335,9 @@ This table is generated from https://github.com/serverless/examples/blob/master/ --> | Project Name | Author | | :----------- | :----: | +| **[AWS Demo Java Spring Cloud Function Serverless](https://github.com/mbsambangi/aws-java-spring-cloud-function-demo)**
If Java is your choice of programming language-Spring Cloud Function,Serverless Framework makes a great technology stack. It boosts developer productivity by decoupling from Vendor specific FaaS API, and deployment activities. | [mbsambangi](http://github.com/mbsambangi) | | **[Serverless Architecture Boilerplate](https://github.com/msfidelis/serverless-architecture-boilerplate)**
Boilerplate to organize and deploy big projects using Serverless and CloudFormation on AWS | [msfidelis](http://github.com/msfidelis) | -| **[Babelbot](https://github.com/abiglobalhealth/babelbot)**
Lambda + API Gateway: Zero-to-chatbot in <10 lines of JS. Built-in integrations for Messenger, Telegram, Kik, Line, Twilio, Skype, and Wechat. Or roll your own! | [abiglobalhealth](http://github.com/abiglobalhealth) | +| **[Bablebot](https://github.com/abiglobalhealth/babelbot)**
Lambda + API Gateway: Zero-to-chatbot in <10 lines of JS. Built-in integrations for Messenger, Telegram, Kik, Line, Twilio, Skype, and Wechat. Or roll your own! | [abiglobalhealth](http://github.com/abiglobalhealth) | | **[Jwt Authorizr](https://github.com/serverlessbuch/jwtAuthorizr)**
Custom JWT Authorizer Lambda function for Amazon API Gateway with Bearer JWT | [serverlessbuch](http://github.com/serverlessbuch) | | **[Slack Signup Serverless](https://github.com/dzimine/slack-signup-serverless)**
Serverless signup to Slack and more. Lambda with Python, StepFunctions, and Web front end. Python boilerplate included. | [dzimine](http://github.com/dzimine) | | **[Serverless Graphql Api](https://github.com/boazdejong/serverless-graphql-api)**
Serverless GraphQL API using Lambda and DynamoDB | [boazdejong](http://github.com/boazdejong) | @@ -392,8 +409,10 @@ This table is generated from https://github.com/serverless/examples/blob/master/ | **[Serverless Kakao Bot](https://github.com/JisuPark/serverless-kakao-bot)**
Easy development for Kakaotalk Bot with Serverless | [JisuPark](http://github.com/JisuPark) | | **[Serverless Q A Example](https://github.com/jacksoncharles/serverless-qa-template-api)**
Inspired by the AWS example forum. A multitenancy Q&A template for surveys, forums and more | [jacksoncharles](http://github.com/jacksoncharles) | | **[Personal Access Tokens Cron Check](https://github.com/madtrick/cfpat-audit)**
Audit for leaked PAT in your Contentful organization. How to use serverless as cronjobs to keep your Personal Access Tokens secure | [madtrick](http://github.com/madtrick) | -| **[Slack Lunch Club](https://github.com/mikestaub/slack-lunch-club)**
Weekly lunch matches with your slack teams. PWA built with Serverless, React, GraphQL, ArangoDB, and AWS | [mikestaub](http://github.com/mikestaub) | -| **[Slack GitHub stats bot](https://github.com/threadheap/github-stats-bot)**
Slack bot that returns contributions stats for selected repository. Build with Typescript, React, PhantomJS and Nivo | [pavelvlasov](https://github.com/pavelvlasov) | +| **[Serverless Sns Api](https://github.com/eddielisc/serverless-sns-api)**
Build a SNS service on AWS, support backend API for SNS by device, by group and by user | [eddielisc](http://github.com/eddielisc) | +| **[Daily Instance Backups With AMI Rotation](https://github.com/AndrewFarley/AWSAutomatedDailyInstanceAMISnapshots)**
A simple Python application which scans through your entire AWS account for tagged instances, makes daily AMIs of them, and rotates their backups automatically | [AndrewFarley](http://github.com/AndrewFarley) | +| **[Serverless Instagram Crawler](https://github.com/kimcoder/serverless-instagram-crawler)**
Instagram hashtag Crawler with Lambda & DynamoDB. | [kimcoder](http://github.com/kimcoder) | +| **[Serving Binary Files](https://github.com/thomastoye/serverless-binary-files-xlsx)**
Small example showing how to serve binary files using Serverless on AWS with the serverless-apigw-binary plugin, using generated Excel files as an example | [thomastoye](http://github.com/thomastoye) | ## Contributing diff --git a/docs/providers/aws/guide/services.md b/docs/providers/aws/guide/services.md index 57e2975e9..c5736050b 100644 --- a/docs/providers/aws/guide/services.md +++ b/docs/providers/aws/guide/services.md @@ -64,6 +64,7 @@ Here are the available runtimes for AWS Lambda: * aws-csharp * aws-fsharp * aws-go +* aws-go-dep Check out the [create command docs](../cli-reference/create) for all the details and options. diff --git a/lib/plugins/create/templates/aws-go-dep/Makefile b/lib/plugins/create/templates/aws-go-dep/Makefile index 46a24c449..4e281fb7d 100644 --- a/lib/plugins/create/templates/aws-go-dep/Makefile +++ b/lib/plugins/create/templates/aws-go-dep/Makefile @@ -1,4 +1,12 @@ build: - dep ensure + dep ensure -v env GOOS=linux go build -ldflags="-s -w" -o bin/hello hello/main.go - env GOOS=linux go build -ldflags="-s -w" -o bin/world world/main.go \ No newline at end of file + env GOOS=linux go build -ldflags="-s -w" -o bin/world world/main.go + +.PHONY: clean +clean: + rm -rf ./bin ./vendor Gopkg.lock + +.PHONY: deploy +deploy: clean build + sls deploy --verbose diff --git a/lib/plugins/create/templates/aws-go-dep/hello/main.go b/lib/plugins/create/templates/aws-go-dep/hello/main.go index e75c5af04..2a4d5526f 100644 --- a/lib/plugins/create/templates/aws-go-dep/hello/main.go +++ b/lib/plugins/create/templates/aws-go-dep/hello/main.go @@ -1,17 +1,43 @@ package main import ( + "bytes" + "context" + "encoding/json" + + "github.com/aws/aws-lambda-go/events" "github.com/aws/aws-lambda-go/lambda" ) -type Response struct { - Message string `json:"message"` -} +// Response is of type APIGatewayProxyResponse since we're leveraging the +// AWS Lambda Proxy Request functionality (default behavior) +// +// https://serverless.com/framework/docs/providers/aws/events/apigateway/#lambda-proxy-integration +type Response events.APIGatewayProxyResponse -func Handler() (Response, error) { - return Response{ - Message: "Go Serverless v1.0! Your function executed successfully!", - }, nil +// Handler is our lambda handler invoked by the `lambda.Start` function call +func Handler(ctx context.Context) (Response, error) { + var buf bytes.Buffer + + body, err := json.Marshal(map[string]interface{}{ + "message": "Go Serverless v1.0! Your function executed successfully!", + }) + if err != nil { + return Response{StatusCode: 404}, err + } + json.HTMLEscape(&buf, body) + + resp := Response{ + StatusCode: 200, + IsBase64Encoded: false, + Body: buf.String(), + Headers: map[string]string{ + "Content-Type": "application/json", + "X-MyCompany-Func-Reply": "hello-handler", + }, + } + + return resp, nil } func main() { diff --git a/lib/plugins/create/templates/aws-go-dep/serverless.yml b/lib/plugins/create/templates/aws-go-dep/serverless.yml index 768194143..78a9ae602 100644 --- a/lib/plugins/create/templates/aws-go-dep/serverless.yml +++ b/lib/plugins/create/templates/aws-go-dep/serverless.yml @@ -16,6 +16,7 @@ service: aws-go-dep # NOTE: update this with your service name # You can pin your service to only deploy with a specific Serverless version # Check out our docs for more details # frameworkVersion: "=X.X.X" +frameworkVersion: ">=1.28.0 <2.0.0" provider: name: aws @@ -54,8 +55,16 @@ package: functions: hello: handler: bin/hello + events: + - http: + path: hello + method: get world: handler: bin/world + events: + - http: + path: world + method: get # The following are a few example events you can configure # NOTE: Please make sure to change your handler code to work with those events diff --git a/lib/plugins/create/templates/aws-go-dep/world/main.go b/lib/plugins/create/templates/aws-go-dep/world/main.go index bf46aa6fb..b49d1c4a1 100644 --- a/lib/plugins/create/templates/aws-go-dep/world/main.go +++ b/lib/plugins/create/templates/aws-go-dep/world/main.go @@ -1,17 +1,43 @@ package main import ( + "bytes" + "context" + "encoding/json" + + "github.com/aws/aws-lambda-go/events" "github.com/aws/aws-lambda-go/lambda" ) -type Response struct { - Message string `json:"message"` -} +// Response is of type APIGatewayProxyResponse since we're leveraging the +// AWS Lambda Proxy Request functionality (default behavior) +// +// https://serverless.com/framework/docs/providers/aws/events/apigateway/#lambda-proxy-integration +type Response events.APIGatewayProxyResponse -func Handler() (Response, error) { - return Response{ - Message: "Okay so your other function also executed successfully!", - }, nil +// Handler is our lambda handler invoked by the `lambda.Start` function call +func Handler(ctx context.Context) (Response, error) { + var buf bytes.Buffer + + body, err := json.Marshal(map[string]interface{}{ + "message": "Okay so your other function also executed successfully!", + }) + if err != nil { + return Response{StatusCode: 404}, err + } + json.HTMLEscape(&buf, body) + + resp := Response{ + StatusCode: 200, + IsBase64Encoded: false, + Body: buf.String(), + Headers: map[string]string{ + "Content-Type": "application/json", + "X-MyCompany-Func-Reply": "world-handler", + }, + } + + return resp, nil } func main() { diff --git a/lib/plugins/create/templates/aws-go/Makefile b/lib/plugins/create/templates/aws-go/Makefile index 3b697426e..4e281fb7d 100644 --- a/lib/plugins/create/templates/aws-go/Makefile +++ b/lib/plugins/create/templates/aws-go/Makefile @@ -1,4 +1,12 @@ build: - go get github.com/aws/aws-lambda-go/lambda + dep ensure -v env GOOS=linux go build -ldflags="-s -w" -o bin/hello hello/main.go - env GOOS=linux go build -ldflags="-s -w" -o bin/world world/main.go \ No newline at end of file + env GOOS=linux go build -ldflags="-s -w" -o bin/world world/main.go + +.PHONY: clean +clean: + rm -rf ./bin ./vendor Gopkg.lock + +.PHONY: deploy +deploy: clean build + sls deploy --verbose diff --git a/lib/plugins/create/templates/aws-go/hello/main.go b/lib/plugins/create/templates/aws-go/hello/main.go index e75c5af04..2a4d5526f 100644 --- a/lib/plugins/create/templates/aws-go/hello/main.go +++ b/lib/plugins/create/templates/aws-go/hello/main.go @@ -1,17 +1,43 @@ package main import ( + "bytes" + "context" + "encoding/json" + + "github.com/aws/aws-lambda-go/events" "github.com/aws/aws-lambda-go/lambda" ) -type Response struct { - Message string `json:"message"` -} +// Response is of type APIGatewayProxyResponse since we're leveraging the +// AWS Lambda Proxy Request functionality (default behavior) +// +// https://serverless.com/framework/docs/providers/aws/events/apigateway/#lambda-proxy-integration +type Response events.APIGatewayProxyResponse -func Handler() (Response, error) { - return Response{ - Message: "Go Serverless v1.0! Your function executed successfully!", - }, nil +// Handler is our lambda handler invoked by the `lambda.Start` function call +func Handler(ctx context.Context) (Response, error) { + var buf bytes.Buffer + + body, err := json.Marshal(map[string]interface{}{ + "message": "Go Serverless v1.0! Your function executed successfully!", + }) + if err != nil { + return Response{StatusCode: 404}, err + } + json.HTMLEscape(&buf, body) + + resp := Response{ + StatusCode: 200, + IsBase64Encoded: false, + Body: buf.String(), + Headers: map[string]string{ + "Content-Type": "application/json", + "X-MyCompany-Func-Reply": "hello-handler", + }, + } + + return resp, nil } func main() { diff --git a/lib/plugins/create/templates/aws-go/serverless.yml b/lib/plugins/create/templates/aws-go/serverless.yml index 47fd73787..9f15448c9 100644 --- a/lib/plugins/create/templates/aws-go/serverless.yml +++ b/lib/plugins/create/templates/aws-go/serverless.yml @@ -16,6 +16,7 @@ service: aws-go # NOTE: update this with your service name # You can pin your service to only deploy with a specific Serverless version # Check out our docs for more details # frameworkVersion: "=X.X.X" +frameworkVersion: ">=1.28.0 <2.0.0" provider: name: aws @@ -54,8 +55,16 @@ package: functions: hello: handler: bin/hello + events: + - http: + path: hello + method: get world: handler: bin/world + events: + - http: + path: world + method: get # The following are a few example events you can configure # NOTE: Please make sure to change your handler code to work with those events diff --git a/lib/plugins/create/templates/aws-go/world/main.go b/lib/plugins/create/templates/aws-go/world/main.go index bf46aa6fb..b49d1c4a1 100644 --- a/lib/plugins/create/templates/aws-go/world/main.go +++ b/lib/plugins/create/templates/aws-go/world/main.go @@ -1,17 +1,43 @@ package main import ( + "bytes" + "context" + "encoding/json" + + "github.com/aws/aws-lambda-go/events" "github.com/aws/aws-lambda-go/lambda" ) -type Response struct { - Message string `json:"message"` -} +// Response is of type APIGatewayProxyResponse since we're leveraging the +// AWS Lambda Proxy Request functionality (default behavior) +// +// https://serverless.com/framework/docs/providers/aws/events/apigateway/#lambda-proxy-integration +type Response events.APIGatewayProxyResponse -func Handler() (Response, error) { - return Response{ - Message: "Okay so your other function also executed successfully!", - }, nil +// Handler is our lambda handler invoked by the `lambda.Start` function call +func Handler(ctx context.Context) (Response, error) { + var buf bytes.Buffer + + body, err := json.Marshal(map[string]interface{}{ + "message": "Okay so your other function also executed successfully!", + }) + if err != nil { + return Response{StatusCode: 404}, err + } + json.HTMLEscape(&buf, body) + + resp := Response{ + StatusCode: 200, + IsBase64Encoded: false, + Body: buf.String(), + Headers: map[string]string{ + "Content-Type": "application/json", + "X-MyCompany-Func-Reply": "world-handler", + }, + } + + return resp, nil } func main() {