Skip to content

Instantly share code, notes, and snippets.

@ppshein
ppshein / tags.sh
Last active November 10, 2022 08:08
#!/bin/bash
ARGS=${@:1}
input="./tags.txt"
tagCluster() {
local clusterName=$1
local region=$2
nodeGroups=$(aws eks list-nodegroups --cluster-name $clusterName --region $region --query 'nodegroups' --output text)
# Time complexity = O(n^3)
for nodeGroup in $nodeGroups; do
autoScalings=$(aws eks describe-nodegroup --cluster-name $clusterName --nodegroup-name $nodeGroup --region $region --query 'nodegroup.resources.autoScalingGroups[0]' --output text)

Terraforming API Gateway to SQS queue

Example of a bare-minimum terraform script to setup an API Gateway endpoint that takes records and puts them into an SQS queue.

SQS

Start by creating the SQS queue.

resource "aws_sqs_queue" "queue" {
resources = [{
bu = "netflix"
title = ["title_1", "title_2", "title_3", "title_4", "title_5", "title_6"]
query = ["SELECT max(provider.currItems.Maximum) FROM DatastoreSample as 'Cache Items' FROM DatastoreSample WHERE provider='ElastiCacheRedisNode' AND providerAccountName = 'xxx' AND displayName LIKE '${widget_line.value}%' TIMESERIES AUTO FACET displayName", "query_2", "query_3", "query_4", "query_5", "query_6"]
}, {
bu = "apple"
title = ["title_1", "title_2", "title_3", "title_4", "title_5", "title_6"]
query = ["query_1", "query_2", "query_3", "query_4", "query_5", "query_6"]
}, {
bu = "youtube"
variable "resources" {
description = "My Dashboard"
type = list(object({
bu = string
title = string
query = list(string)
}))
}
resource "newrelic_one_dashboard" "this" {
name = var.dashboard_name
permissions = "public_read_only"
# To create TABS in dashboard
dynamic "page" {
for_each = var.resources
content {
# To display TABS name in dashboard
name = page.value["bu"]
# To create graph in dashboard
resource "aws_iam_role" "firehose_role" {
name = "firehose_es_delivery_role"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
@ppshein
ppshein / docker-compose.yml
Created May 3, 2020 13:18 — forked from pantsel/docker-compose.yml
example docker-compose.yml for kong, postgres and konga
version: "3"
networks:
kong-net:
driver: bridge
services:
#######################################
# Postgres: The database used by Kong
const AWS = require("aws-sdk");
const s3 = new AWS.S3({ apiVersion: "2006-03-01" });
const fs = require("fs");
AWS.config.update({
accessKeyId: "",
secretAccessKey: "",
region: "ap-southeast-1",
Bucket: "mobile-ayaplus-backend-dev",
})
@ppshein
ppshein / serverless.yml
Created March 3, 2020 10:16
Sample serverless.yml file to deploy nodejs application to AWS Lambda and API Gateway
service: my-nodejs-api
custom:
customDomain:
domainName: api.ppshein.com
basePath: ''
stage: ${self:provider.stage}
createRoute53Record: true
provider:
name: aws
runtime: nodejs8.10
@ppshein
ppshein / example-api-gateway.yaml
Created February 28, 2020 03:25 — forked from elerch/example-api-gateway.yaml
YAML version of tmaslen's API Gateway cloudformation template - useful when you don't want to use SAM
---
AWSTemplateFormatVersion: '2010-09-09'
Description: Sample template that contains a Lambda function behind an API GW
Resources:
# BEGIN: Should only need this in an empty API Gateway situation
ApiGatewayCloudWatchLogsRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: '2012-10-17'