Skip to content

Instantly share code, notes, and snippets.

View leegilmorecode's full-sized avatar
:atom:
Serverless Hero

Lee Gilmore leegilmorecode

:atom:
Serverless Hero
View GitHub Profile
@leegilmorecode
leegilmorecode / serverless.yml
Created November 15, 2021 15:05
InputTransformations in EventBridge rule
EventRule:
Type: AWS::Events::Rule
Properties:
Description: 'PayslipUploadedEventRule'
EventBusName: 'HREventBus'
EventPattern:
account:
- !Sub '${AWS::AccountId}'
source:
- 'payslip.uploaded'
@leegilmorecode
leegilmorecode / fulfilment.ts
Created October 4, 2021 12:58
quick example handler to retrieve an EventBridge event
import { SNSEvent, EventBridgeEvent, Handler } from 'aws-lambda';
export const handler: Handler<SNSEvent | EventBridgeEvent<any, any>> = (event) => {
console.log('Fulfilment handler');
console.log('event = ' + JSON.stringify(event));
};
import { APIGatewayProxyHandler, APIGatewayProxyResult, APIGatewayEvent } from 'aws-lambda';
import * as AWS from 'aws-sdk';
import { validate } from '../shared/validator';
import { OrderCreated } from '../../schema/order_create/ordercreated/OrderCreated';
import { OrderCreatedItem } from '../../schema/order_create/ordercreated/OrderCreatedItem';
import * as schema from '../../schema/order_create/ordercreated/[email protected]';
const eventBridge = new AWS.EventBridge({ region: 'eu-west-1' });
export const handler: APIGatewayProxyHandler = async ({ body }: APIGatewayEvent): Promise<APIGatewayProxyResult> => {
@leegilmorecode
leegilmorecode / serverless.yml
Created October 4, 2021 12:48
Example for the team :)
service: serverless-event-bridge
variablesResolutionMode: 20210326
provider:
name: aws
runtime: nodejs14.x
lambdaHashingVersion: 20201221
memorySize: 128
stage: ${opt:stage, 'dev'}
region: ${opt:region, 'eu-west-1'}
eventBridge:
export const randomErrors = (): void | Error => {
if (Math.random() > 0.9) {
throw new Error('spurious error');
}
};
@leegilmorecode
leegilmorecode / dependabot.yml
Created September 4, 2021 04:03
Dependabot example
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
# Maintain dependencies for npm
- package-ecosystem: "npm"
directory: "/"
@leegilmorecode
leegilmorecode / serverless.doc.yml
Created August 30, 2021 11:18
An example serverless.doc.yml file
documentation:
version: '1'
title: ${self:custom.openapiTitle}
description: ${self:custom.openapiTitle} - example OpenAPI document
endpoints:
getImage:
summary: "Get Image by ID"
description: "Get a pre-signed temporary download URL for the image by ID"
requestBody:
description: "Get a pre-signed temporary download URL for the image by ID"
@leegilmorecode
leegilmorecode / add-comment.ts
Created August 19, 2021 18:32
Example of a lambda handler checking the sentiment and PII of a comment in a POST request
import AWS from 'aws-sdk';
import { APIGatewayProxyHandler, APIGatewayProxyResult, APIGatewayEvent } from 'aws-lambda';
import { v4 as uuid } from 'uuid';
import { schema } from './add-comment.schema';
import { validate } from '../../shared/validator';
const METHOD = 'add-comment.handler';
const LANGUAGE_CODE = 'en';
type DetectPiiEntitiesResponse = AWS.Comprehend.DetectPiiEntitiesResponse;
@leegilmorecode
leegilmorecode / upload-file.ts
Created August 12, 2021 08:03
Example code for generating a pre-signed upload URL using AWS S3
import AWS from 'aws-sdk';
import { APIGatewayProxyHandler, APIGatewayProxyResult, APIGatewayEvent } from 'aws-lambda';
import { v4 as uuid } from 'uuid';
import config from '../../config';
const METHOD = 'upload-file.handler';
const s3 = new AWS.S3();
export const handler: APIGatewayProxyHandler = async ({
@leegilmorecode
leegilmorecode / get-file.ts
Created August 12, 2021 08:02
Example code for generating a pre-signed download URL using AWS S3
import AWS from 'aws-sdk';
import { APIGatewayProxyHandler, APIGatewayProxyResult, APIGatewayEvent } from 'aws-lambda';
import { v4 as uuid } from 'uuid';
import config from '../../config';
type HeadObjectRequest = AWS.S3.HeadObjectRequest;
type HeadObjectOutput = AWS.S3.HeadObjectOutput;
const METHOD = 'get-file.handler';