Skip to content

Instantly share code, notes, and snippets.

View marcelog's full-sized avatar

Marcelo Gornstein marcelog

View GitHub Profile
@marcelog
marcelog / ec2_start_stop_aws_policy.json
Created February 25, 2017 19:35
Policy needed for a Lambda function used to start and stop EC2 instances
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:log-group:/aws/lambda/*:*:*",
#!/bin/bash
$ git clone https://github.com/PortaText/nasanews-shortcode-serverless
$ cd nasanews-shortcode-serverless/
$ npm install
$ bin/package.sh
@marcelog
marcelog / nginx_with_external_openssl.sh
Created October 29, 2016 18:32
How to send specific linker options for nginx without using LDFLAGS
#!/bin/bash
./configure --with-ld-opt="-L/my/ssl/location"
@marcelog
marcelog / example_logs_json.txt
Created October 22, 2016 22:16
Example JSON logs to be filtered by CloudWatch with filters
{"level":"INFO","message":"some message"}
{"level":"DEBUG","message":"some message"}
{"level":"ERROR","message":"some message"}
{"level":"WARN","message":"some message"}
@marcelog
marcelog / example_logs.txt
Created October 22, 2016 20:46
Example logs to be filtered by CloudWatch with filters
[DEBUG] - some message
[INFO] - some message
[WARN] - some message
[ERROR] - some message
@marcelog
marcelog / lambda-website-checker.js
Created October 22, 2016 12:10
This AWS Lambda can be used to check your website for availability
'use strict';
var url = require('url');
var target = 'http://www.yourwebsite.com'; // Change this one
exports.handler = function(event, context, callback) {
var urlObject = url.parse(target);
var mod = require(
urlObject.protocol.substring(0, urlObject.protocol.length - 1)
);
@marcelog
marcelog / turn_on_mysql_event_scheduler.txt
Created October 16, 2016 12:16
Turn on MySQL Event Scheduler
SET GLOBAL event_scheduler = ON; # In the MySQL CLI
event_scheduler=DISABLED # or OFF, or 0, or ON, or 1 in the [mysqld] section of your my.cnf file
--event-scheduler=DISABLED # or OFF, or 0, or ON, or 1 when starting your mysql daemon
@marcelog
marcelog / mysql_table_for_user_expirable_sessions.sql
Created October 16, 2016 11:43
A MySQL table definition to support expirable user sessions with events
CREATE TABLE `session` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`last_activity` int(11) NOT NULL,
`token` varchar(64) NOT NULL,
`user_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `session_client_token` (`token`),
KEY `session_per_client_id` (`user_id`),
CONSTRAINT `session_per_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
@marcelog
marcelog / session_expiration_event_mysql.sql
Created October 16, 2016 11:41
Creating an event to remove sessions on expiration with MySQL events
CREATE EVENT `remove_sessions_production`
ON SCHEDULE EVERY 1 MINUTE
DO DELETE FROM `production_db`.`session` WHERE UNIX_TIMESTAMP(CURRENT_TIMESTAMP) - `last_activity` > 1800;
@marcelog
marcelog / pack_transcoder_lambda.sh
Created October 9, 2016 22:38
Installing and packing the audio transcoder Lambda described in https://github.com/marcelog/aws-sqs-lambda-audio-transcoding
#!/bin/bash
npm install
zip -r transcoder.zip *