This demo was presented at the AWS Summit @ Cape Town on Jul 12th.
You can find the slides here.
- index.js: The node.js code used for AWS Lambda
- sam_template.yaml: The AWS SAM template in YAML format (i.e. CloudFormation)
AWSTemplateFormatVersion: 2010-09-09 | |
Transform: AWS::Serverless-2016-10-31 | |
Resources: | |
MyProcessingFunction: | |
Type: AWS::Serverless::Function | |
Properties: | |
Handler: index.handler | |
Runtime: python2.7 | |
# ... |
AWSTemplateFormatVersion : '2010-09-09' | |
Transform: AWS::Serverless-2016-10-31 | |
Resources: | |
DeliveryBucket: | |
Type: AWS::S3::Bucket | |
StreamProcessFunction: | |
Type: AWS::Serverless::Function | |
Properties: |
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 """ |
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 | |
# ... |
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, |
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') { |
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 | |
# ... |
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"; | |
} | |
} |
This demo was presented at the AWS Summit @ Cape Town on Jul 12th.
You can find the slides here.