Skip to content

Instantly share code, notes, and snippets.

✌️
Happy coding!

Alex Casalboni alexcasalboni

✌️
Happy coding!
Block or report user

Report or block alexcasalboni

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@alexcasalboni
alexcasalboni / template.yml
Last active Mar 3, 2019
AWS CloudFormation Macro - Transform the entire template
View template.yml
AWSTemplateFormatVersion: 2010-09-09
Transform: MyUniqueMacroName
Resources:
MyWebsite:
Type: MyCompany::StaticWebsite
@alexcasalboni
alexcasalboni / macro-template.yml
Last active Mar 3, 2019
CloudFormation Macro definition
View macro-template.yml
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::Serverless-2016-10-31
Resources:
MyProcessingFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
Runtime: python2.7
# ...
@alexcasalboni
alexcasalboni / template.yml
Created Feb 26, 2019
Amazon Kinesis Data Firehose - AWS Lambda data transformation app (YAML)
View template.yml
AWSTemplateFormatVersion : '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
DeliveryBucket:
Type: AWS::S3::Bucket
StreamProcessFunction:
Type: AWS::Serverless::Function
Properties:
@alexcasalboni
alexcasalboni / handler.py
Created Feb 26, 2019
Amazon Kinesis Data Firehose - AWS Lambda processor
View handler.py
import json
from base64 import b64decode, b64encode
# some useful constants
STATUS_OK = 'Ok'
STATUS_DROPPED = 'Dropped'
STATUS_FAIL = 'ProcessingFailed'
class DroppedRecordException(Exception):
""" This exception can be raised if a record needs to be skipped/dropped """
@alexcasalboni
alexcasalboni / template.yml
Last active Feb 25, 2019
AWS Config - AWS Lambda Custom Rule example (YAML)
View template.yml
AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Resources:
MyFunction:
Type: 'AWS::Serverless::Function'
Properties:
Handler: index.handler
# ...
# all the other properties here
# ...
@alexcasalboni
alexcasalboni / utility.js
Created Feb 25, 2019
AWS Config Custom Rule - AWS Lambda (utiity)
View utility.js
const aws = require('aws-sdk');
const config = new aws.ConfigService();
/**
* Get the configurationItem for the resource using the getResourceConfigHistory API.
*/
async function getConfigurationFromHistory(configurationHistory, callback) {
const params = {
resourceType: configurationHistory.resourceType,
resourceId: configurationHistory.resourceId,
@alexcasalboni
alexcasalboni / index.js
Last active Feb 25, 2019
AWS Config Custom Rule - AWS Lambda
View index.js
const aws = require('aws-sdk');
const utility = require('./utility');
const config = new aws.ConfigService();
/**
* In this example, the resource is compliant if it is an instance and its type matches the type specified as the desired type.
* If the resource is not an instance, then this resource is not applicable.
*/
function evaluateChangeNotificationCompliance(configurationItem, ruleParameters) {
if (configurationItem.resourceType !== 'AWS::EC2::Instance') {
@alexcasalboni
alexcasalboni / template.yml
Last active Feb 19, 2019
Amazon Cognito User Pools - AWS Lambda hook example (YAML)
View template.yml
AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Resources:
MyFunction:
Type: 'AWS::Serverless::Function'
Properties:
Handler: index.handler
# ...
# all the other properties here
# ...
@alexcasalboni
alexcasalboni / index.js
Created Feb 19, 2019
Amazon Cognito User Pools - Custom Message Hook with AWS Lambda (Node.js)
View index.js
exports.handler = (event, context, callback) => {
if(event.userPoolId === "theSpecialUserPool") {
// check event type
if(event.triggerSource === "CustomMessage_SignUp") {
// customize message and subject content
event.response.smsMessage = "Welcome to the service. Your confirmation code is " + event.request.codeParameter;
event.response.emailSubject = "Welcome to the service";
event.response.emailMessage = "Thank you for signing up. " + event.request.codeParameter + " is your verification code";
}
}
@alexcasalboni
alexcasalboni / aws-sam-automatic-rollback-demo.md
Last active May 19, 2019
AWS SAM Demo - Automatic Rollback for AWS Lambda with AWS CodeDeploy
View aws-sam-automatic-rollback-demo.md

How to Build and Deploy Serverless Apps [AWS Summit]

This demo was presented at the AWS Summit @ Cape Town on Jul 12th.

You can find the slides here.

What's included in this Gist?

  • index.js: The node.js code used for AWS Lambda
  • sam_template.yaml: The AWS SAM template in YAML format (i.e. CloudFormation)
You can’t perform that action at this time.