Skip to content

Instantly share code, notes, and snippets.

View marianobrc's full-sized avatar

Mariano Martinez Grasso marianobrc

  • worldwide
View GitHub Profile
@marianobrc
marianobrc / custom.conf
Last active April 9, 2022 19:48
A ustom configuration for softwaremill/elasticmq docker image to run SQS locally with docker
include classpath("application.conf")
# What is the outside visible address of this ElasticMQ node
# Used to create the queue URL (may be different from bind address!)
node-address {
protocol = http
host = "*"
port = 9324
context-path = ""
}
@marianobrc
marianobrc / sqs_bootstrap.sh
Created April 7, 2022 17:08
A script to create queues when the localstack container running SQS starts
#!/usr/bin/env bash
set -euo pipefail
# enable debug
# set -x
echo "Configuring SQS..."
echo "HOSTNAME:${HOSTNAME}"
echo "AWS_REGION_NAME:${AWS_REGION_NAME}"
@marianobrc
marianobrc / elasticmq.conf
Created April 6, 2022 15:02
SQS configuration for rciorba/alpine-sqs docker image
include classpath("application.conf")
node-address {
protocol = http
host = "*"
port = 9324
context-path = ""
}
rest-sqs {
@marianobrc
marianobrc / start-celery-worker.sh
Created April 6, 2022 14:23
A script to start a velery worker to process messages from a queue
#!/bin/sh
celery -A app worker -Q $1 -l info
@marianobrc
marianobrc / docker.django.celery.multistage.Dockerfile
Created April 6, 2022 13:29
A multistage Dockerfile for Django and Celery workers
# Base off the official python image
# Define a common stage for dev and prod images called base
FROM python:3.10 as base
# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# Create a user to avoid running containers as root in production
RUN addgroup --system web \
&& adduser --system --ingroup web web
# Install os-level dependencies (as root)
@marianobrc
marianobrc / django.with.celery.docker-compose.yml
Last active April 9, 2022 18:34
A docker-compose file to run django with sqs and celery locally.
version: '3.5'
services:
db:
image: postgres:10
restart: always
ports:
- ${DB_PORT}:${DB_PORT}
environment:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
@marianobrc
marianobrc / ecs.fargete.run_cmd.py
Created April 4, 2022 12:40
A python script to run commands as fargate tasks in ECS
import os
import json
import boto3
import argparse
AWS_ACCOUNT_ID = os.getenv("AWS_ACCOUNT_ID")
AWS_ACCESS_KEY_ID = os.getenv("AWS_ACCESS_KEY_ID")
AWS_SECRET_ACCESS_KEY = os.getenv("AWS_SECRET_ACCESS_KEY")
AWS_REGION_NAME = os.getenv("AWS_REGION_NAME")
from aws_cdk import (
Stack,
aws_ec2 as ec2,
aws_ecs as ecs,
aws_ecs_patterns as ecs_patterns,
aws_certificatemanager as acm,
aws_elasticloadbalancingv2 as elbv2,
)
from constructs import Construct
@marianobrc
marianobrc / cdk.app.py
Last active March 28, 2022 15:38
The entrypoint of a CDK project using pipelines
#!/usr/bin/env python3
import os
import aws_cdk as cdk
from aws_cdk import (
Environment,
)
from my_django_app.pipeline_stack import MyDjangoAppPipelineStack
app = cdk.App()
@marianobrc
marianobrc / cdk.pipeline_stack.py
Last active April 5, 2022 21:24
A CDK Stack defining a self-mutating Pipeline
from constructs import Construct
from aws_cdk import (
Stack,
pipelines as pipelines,
aws_ssm as ssm,
aws_secretsmanager as secretsmanager,
aws_rds as rds,
)
from .deployment_stage import MyDjangoAppPipelineStage