Skip to content

Instantly share code, notes, and snippets.

View alexcasalboni's full-sized avatar
✌️
Happy coding!

Alex Casalboni alexcasalboni

✌️
Happy coding!
View GitHub Profile
@alexcasalboni
alexcasalboni / template.yml
Created October 9, 2019 07:07
Amazon Pinpoint - Custom Segment Lambda function with centralized settings (YAML)
myAppSettings:
Type: AWS::Pinpoint::ApplicationSettings
Properties:
ApplicationId: !Ref myPinpointApp
CampaignHook:
LambdaFunctionName: !Ref myHookFunction
Mode: FILTER
@alexcasalboni
alexcasalboni / template.yml
Created October 8, 2019 16:09
Amazon Pinpoint - Custom Segment Lambda function (YAML)
AWSTemplateFormatVersion : '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
myHookFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
# ...
# all the other properties here
@alexcasalboni
alexcasalboni / index.py
Last active October 8, 2019 14:21
Amazon Pinpoint - Custom Segment Lambda function (Python)
import random
def handler(event, context):
# fetch events from input event
endpoints = event['Endpoints']
# iterate over endpoints one by one
for id, endpoint in endpoints.items():
print("Processing endpoint with id: %s" % id)
@alexcasalboni
alexcasalboni / event.json
Last active October 8, 2019 13:59
Amazon Pinpoint - AWS Lambda event (JSON)
{
"MessageConfiguration": {...},
"ApplicationId": "ABC",
"CampaignId": "XYZ",
"TreatmentId": "XYZ2",
"ActivityId": "123",
"ScheduledTime": "2019-10-08T15:00:00.000Z",
"Endpoints": {...}
}
@alexcasalboni
alexcasalboni / template.yml
Last active October 8, 2019 15:40
AWS CodePilpeline - Lambda stage (YAML)
AWSTemplateFormatVersion : '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
myPipelineFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
Policies:
- AWSLambdaExecute # Managed Policy
@alexcasalboni
alexcasalboni / index.js
Last active February 22, 2022 22:45
AWS CodePilpeline - Lambda stage (Node.js)
const http = require('http');
const AWS = require('aws-sdk');
const codepipeline = new AWS.CodePipeline();
exports.handler = async (event, context) => {
// Retrieve event data
const jobData = event["CodePipeline.job"];
const jobId = jobData.id;
const url = jobData.data.actionConfiguration.configuration.UserParameters;
@alexcasalboni
alexcasalboni / template.yml
Last active October 2, 2019 21:51
AWS CodeDeploy - Lambda pre-traffic hook (YAML)
AWSTemplateFormatVersion : '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
myFunctionToBeDeployed:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
AutoPublishAlias: live
DeploymentPreference:
Type: Linear10PercentEvery1Minute
@alexcasalboni
alexcasalboni / index.js
Last active October 2, 2019 21:31
AWS CodeDeploy - Lambda hook (Node.js)
const AWS = require('aws-sdk');
const codedeploy = new AWS.CodeDeploy();
exports.handler = async (event, context) => {
const {DeploymentId, LifecycleEventHookExecutionId} = event;
const functionToTest = process.env.NewVersion; // to be defined in CFN
/* Enter validation tests here */
const status = 'Succeeded'; // 'Succeeded' or 'Failed'
@alexcasalboni
alexcasalboni / primes.py
Created September 30, 2019 13:45
Primes Test with AWS Lambda
import json
import numpy as np
def compute_primes_up_to(n):
# https://stackoverflow.com/questions/2068372/fastest-way-to-list-all-primes-below-n-in-python/3035188#3035188
""" Input n>=6, Returns a array of primes, 2 <= p < n """
sieve = np.ones(int(n/3) + (n%6==2), dtype=np.bool)
sieve[0] = False
for i in range(int(int(n**0.5)/3+1)):
if sieve[i]:
@alexcasalboni
alexcasalboni / recording.py
Created July 5, 2019 17:01
Console Recorder for AWS - Bug
# pip install boto3
import boto3
lambda_client = boto3.client('lambda', region_name='us-west-2')
response = lambda_client.list_functions()
iam_client = boto3.client('iam', region_name='us-west-2')