Skip to content

Instantly share code, notes, and snippets.

@xose
xose / com.99designs.aws-vault.plist
Created July 24, 2019 23:27
LaunchAgent configuration for aws-vault ecs-server
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.99designs.aws-vault</string>
<key>Program</key>
<string>/usr/local/bin/aws-vault</string>
<key>ProgramArguments</key>
<array>
@xose
xose / AWSInstancePricing.gs
Created May 23, 2019 17:21
AWS Instance Pricing Formula
// Google Sheets custom formula to pull latest AWS Instance pricing info
// Example: https://docs.google.com/spreadsheets/d/11jfqBnbeaqWzdn1xXIvIlH8Vkl9gcpG0EL2ti-8Tc-4/edit?usp=sharing
// Uses data from https://ec2instances.info
var INSTANCES_JSON = 'https://raw.githubusercontent.com/powdahound/ec2instances.info/master/www/instances.json';
// https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/apply_ri.html#ri-normalization-factor
var INSTANCES_NORMALIZATION = {
'nano': 0.25,
'micro': 0.5,
@xose
xose / whack-a-target.py
Created April 17, 2019 09:35
Keep a target deregistered from a target group
#!/usr/bin/env python3
import boto3
import logging
import sys
import time
logging.basicConfig(level=logging.INFO)
if len(sys.argv) != 4:
@xose
xose / main.go
Created February 25, 2019 15:45
API Gateway signer
var (
sess = session.Must(session.NewSession())
client = &http.Client{
Transport: NewAWSSigner(sess, "execute-api", http.DefaultTransport),
Timeout: 10 * time.Second,
}
}
@xose
xose / sqs.go
Created September 26, 2018 18:20
Read S3 events from SQS
package main
import (
"encoding/json"
"errors"
"log"
"github.com/aws/aws-lambda-go/events"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/session"