Skip to content

Instantly share code, notes, and snippets.

@toddlers
toddlers / cfn.yml
Last active April 14, 2024 07:26
aws api gateway with step function execution
AWSTemplateFormatVersion: 2010-09-09
Description: My API Gateway and Lambda function
Parameters:
apiGatewayName:
Type: String
Default: my-api
apiGatewayStageName:
Type: String
AllowedPattern: "[a-z0-9]+"
@toddlers
toddlers / network-firewall-rule-group-error.txt
Created November 27, 2020 20:21
Error while creating the aws network firewall rule group with optional fields
aws_networkfirewall_rule_group.deny-http: Creating...
2020/11/27 21:19:37 [DEBUG] EvalApply: ProviderMeta config value set
2020/11/27 21:19:37 [DEBUG] aws_networkfirewall_rule_group.deny-http: applying the planned Create change
2020-11-27T21:19:37.025+0100 [DEBUG] plugin.terraform-provider-aws_v3.18.0_x5: 2020/11/27 21:19:37 [DEBUG] Creating NetworkFirewall Rule Group deny-http
2020-11-27T21:19:37.025+0100 [DEBUG] plugin.terraform-provider-aws_v3.18.0_x5: 2020/11/27 21:19:37 [DEBUG] [aws-sdk-go] DEBUG: Validate Request Network Firewall/CreateRuleGroup failed, not retrying, error InvalidParameter: 5 validation error(s) found.
2020-11-27T21:19:37.025+0100 [DEBUG] plugin.terraform-provider-aws_v3.18.0_x5: - missing required field, CreateRuleGroupInput.RuleGroup.RulesSource.StatefulRules[0].Header.Destination.
2020-11-27T21:19:37.025+0100 [DEBUG] plugin.terraform-provider-aws_v3.18.0_x5: - missing required field, CreateRuleGroupInput.RuleGroup.RulesSource.StatefulRules[0].Header.DestinationPort.
2020-11-27T21:19:
@toddlers
toddlers / README.md
Created November 23, 2020 10:42 — forked from avoidik/README.md
AWS query examples

Top 10 Examples of AWS CLI Query

List Volumes showing attachment using Dictionary Notation

$ aws ec2 describe-volumes \
  --query 'Volumes[*].{ID:VolumeId,InstanceId:Attachments[0].InstanceId,AZ:AvailabilityZone,Size:Size}'
[
    {
        "InstanceId": "i-a071c394",
@toddlers
toddlers / Makefile
Created May 25, 2020 10:57
language interpreters in Makefiles
.ONESHELL:
.SILENT:
main: \
python \
ruby \
R \
bash \
docker
@toddlers
toddlers / cfn-policy.sh
Created April 13, 2020 16:36
apply nested stack policy
function protect_nested_stacks() {
local parent_stack=$1 stack_policy_file=$2
local nested_stacks=$(aws cloudformation list-stack-resources \
--stack-name ${parent_stack} \
--query "StackResourceSummaries[?ResourceType=='AWS::CloudFormation::Stack'].[PhysicalResourceId]" \
--output text
)
for stack in ${nested_stacks}; do
aws cloudformation set-stack-policy --stack-name ${stack} --stack-policy-body file://${stack_policy_file}
@toddlers
toddlers / embed_interface.go
Created January 8, 2020 17:42
interfaces and type embedding golang
package main
import "fmt"
type Boss struct{}
func (b *Boss) AssignWork() {
fmt.Println("Boss assigned work")
}
@toddlers
toddlers / golambda.sh
Created January 6, 2020 16:23
golang-lambda
mkdir helloworld
cd !$
go get github.com/aws/aws-lambda-go/lambda
GOOS=linux go build -o helloworld
aws iam create-role --role-name lambda-basic-execution
--assume-role-policy-document file://lambda-trust-policy.json
@toddlers
toddlers / cobra-klog.go
Created December 28, 2019 13:10
klog-with-cobra
package main
import (
"flag"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"k8s.io/klog"
)
@toddlers
toddlers / awscli-jq.sh
Created July 26, 2019 09:27
awscli+jq usage
wget http://stedolan.github.io/jq/download/linux64/jq
aws ec2 describe-instances --filters "Name=tag:Name,Values=$NAME" \
"Name=instance-state-name,Values=running" \
| jq -r \
".Reservations[] | .Instances[] | .InstanceId" \
aws ec2 describe-volumes --filters \
"Name=status,Values=available" \
| jq -r ".Volumes[] | .VolumeId" \
@toddlers
toddlers / abbreviated-unbound.conf
Created January 15, 2019 14:40 — forked from bryanjswift/abbreviated-unbound.conf
Unbound (http://unbound.net/) configuration for local network device testing.
# The server clause sets the main parameters.
server:
# Allow network connections outside of localhost
interface: 0.0.0.0
# Don't automatically run in the background because I want to be able to kill it without hunting a pid
do-daemonize: no
# TODO: Change this to your network range, like `192.168.0.0/16 allow`
access-control: 10.0.0.0/16 allow
# TODO: Change this to your username, or whatever user you want to run/own the `unbound` process
username: "bryanjswift"