Skip to content

Instantly share code, notes, and snippets.

@ijin
ijin / lambda_ssh.py
Created February 12, 2016 18:00
ssh from lambda using keys fetched from KMS-SSE backed s3
from __future__ import print_function
from botocore.client import Config
import boto3
import paramiko
print('Loading function')
s3 = boto3.client('s3', config=Config(signature_version='s3v4'))
@ijin
ijin / cloudwatch_logs.py
Created December 9, 2015 16:40
AWS Lambda function that processes cloudwatch logs and invokes a slack function
import boto3
import datetime
import json
import urllib2
import base64
import gzip
from StringIO import StringIO
print('Loading function')
@ijin
ijin / eb_deploy_and_notify.sh
Last active September 29, 2023 16:41
Deploy to Elastic Beanstalk and notify via Slack
#!/bin/bash
set -x
export SHA1=`echo ${CIRCLE_SHA1} | cut -c1-7`
export ENV=`echo $1 | rev | cut -d \- -f1 | rev`
function dd_mute() {
if [[ ${DD_MUTE_ID+x} ]]; then
echo "muting DD monitor id: ${DD_MUTE_ID}"
curl -X POST "https://app.datadoghq.com/api/v1/monitor/${DD_MUTE_ID}/mute?api_key=${DD_API_KEY}&application_key=${DD_APP_KEY}"
@ijin
ijin / ebIP.py
Last active November 24, 2015 13:39
AWS Lambda function that returns Elastic Beanstalk instance ip address(es)
import boto3
import json
import re
print('Loading function')
def launch_time(item):
return (item.launch_time)
def lambda_handler(event, context):
@ijin
ijin / eb_api.yml
Last active November 3, 2015 17:25
Elastic Beanstalk API Gateway swagger file
swagger: '2.0'
info:
title: EB API
description: Elastic Beanstalk API
version: 1.0.0
host: api.ijin.io
schemes:
- https
basePath: /eb
produces:
@ijin
ijin / get-keys-for-github-user.sh
Last active April 5, 2016 07:58 — forked from rtlong/get-keys-for-github-user.sh
Put public keys for a github user in ~/.ssh/authorized keys with mucho ease
IFS="$(printf '\n\t')"
mkdir -p ~/.ssh
if ! [[ -f ~/.ssh/authorized_keys ]]; then
echo "Creating new ~/.ssh/authorized_keys"
touch ~/.ssh/authorized_keys
fi
user=$1
@ijin
ijin / slack.js
Last active January 19, 2016 00:12
aws lambda function to post slack
var aws = require('aws-sdk');
var kms = new aws.KMS({ region: 'us-east-1' });
var encrypted_slack_hook = 'CiD0R0tv46w7LNpO0GlZpLfZk2O0Oy66IF83rG6olDY7yBK0AQEBAgB49EdL\nb+OsOyzaTtBpWaS32ZNjtDsuuiBfN6xuqJQ2O8gAAACLMIGIBgkqhkiG9w0B\nBwagezB5AgEAMHQGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMWk63DEyG\ne+3v8STHAgEQgEfYBkRk3roZCsirvAsWbPhGN15PqfGA58M/Vh3ZqHFFCkf9\nceSWkIii4SZz3tlpHu3AXjk3x2AWTCMmVTX2EUkawF5sTNsNZA==\n';
//console.log('Loading function');
exports.handler = function(event, context) {
console.log('Received event:', JSON.stringify(event, null, 2));
var p = {CiphertextBlob: new Buffer(encrypted_slack_hook, 'base64')};
@ijin
ijin / processGitHubHook.js
Created August 11, 2015 17:51
aws lambda function to process github hook from sns, add user to team, and notify by slack.
var aws = require('aws-sdk');
var kms = new aws.KMS({ region: 'us-east-1' });
var lambda = new aws.Lambda({region: 'ap-northeast-1'});
var encrypted_token = 'CiD0R0tv46w7LNpO0GlZpLfZk2O0Oy66IF83rG6olDY7yBKwAQEBAgB49EdL\nb+OsOyzaTtBpWaS32ZNjtDsuuiBfN6xuqJQ2O8gAAACHMIGEBgkqhkiG9w0B\nBwagdzB1AgEAMHAGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMsDOYHRzB\nN/5q/XCTAgEQgEOnHbGFykvpf06OQ1uQG9P5VjooLu8oSynMp9Cqt5SvaPUC\nKpHkPnnew8nKYhDIcxyLYd/A3vYsHZGWZ3FwN7kx0tIx\n';
var team_id = 1234567;
var valid_comment = 'join';
//console.log('Loading function');
exports.handler = function(event, context) {
@ijin
ijin / github_sns_hook.json
Created August 11, 2015 17:05
github_sns_hook.json
{
"name": "amazonsns",
"events": [
"push"
],
"supported_events": [
"commit_comment",
"create",
"delete",
"deployment",
@ijin
ijin / george.jpg
Last active August 29, 2015 14:26
terraformer george
george.jpg