Skip to content

Instantly share code, notes, and snippets.

View ColeMurray's full-sized avatar

Cole Murray ColeMurray

View GitHub Profile
@ColeMurray
ColeMurray / gist:6f615e105aac4d93650c7089b16fc279
Created November 12, 2023 00:29
basic google search custom engine
import json
import sys
from article_agent.config import my_api_key, my_cse_id
from googleapiclient.discovery import build
def get_search_results(search_term: str, num_search_results: int = 10) -> json:
"""Perform a Google search using Custom Search API"""
# Build request
@ColeMurray
ColeMurray / nextjs-amplify-stack.ts
Created October 13, 2023 19:04
Next.js Amplify CDK stack
import {App, AutoBranchCreation} from '@aws-cdk/aws-amplify-alpha';
import {CfnOutput, SecretValue, Stack, StackProps} from 'aws-cdk-lib';
import {BuildSpec} from 'aws-cdk-lib/aws-codebuild';
import {Construct} from 'constructs';
import {ManagedPolicy, Role, ServicePrincipal} from 'aws-cdk-lib/aws-iam';
import {GitHubSourceCodeProvider} from '@aws-cdk/aws-amplify-alpha/lib/source-code-providers';
import {environmentVariables} from './environmentVariables';
import {CfnApp, CfnBranch} from "aws-cdk-lib/aws-amplify";
import {configuration} from "./config";
@ColeMurray
ColeMurray / lambdaServer.ts
Created August 13, 2023 04:11
source/lambdaServer.ts for starting serverless express
import serverlessExpress from '@vendia/serverless-express';
import {app} from './app';
let serverlessExpressInstance: any;
async function setup (event: any, context: any) {
serverlessExpressInstance = serverlessExpress({ app })
return serverlessExpressInstance(event, context)
}
@ColeMurray
ColeMurray / app.ts
Created August 13, 2023 04:10
source/app.ts from serverless express
import express from "express";
import cors from "cors";
import apiRoutes from "./api";
import {errorResponder} from "./middleware/errorResponder";
export const app = express();
app.use(cors({origin: '*'}));
app.use(express.json());
app.use(express.urlencoded({extended: true}))
@ColeMurray
ColeMurray / stage.ts
Created August 13, 2023 03:45
Deployment stack for serverless express cdk project
import {Stage, StageProps} from "aws-cdk-lib";
import {Construct} from "constructs";
import {DeploymentStack} from "./stack";
interface BackendServiceStageProps extends StageProps {
envVars?: Record<string, string>,
}
export class BackendServiceStage extends Stage {
@ColeMurray
ColeMurray / stack.ts
Created August 13, 2023 03:43
Deployment stack for serverless-express
import {Stack, StackProps} from "aws-cdk-lib";
import {Construct} from "constructs";
import {ApprovedNodeLambda} from "./constructs/approvedNodeLambdaConstruct";
import {Cors, LambdaIntegration, RestApi} from "aws-cdk-lib/aws-apigateway";
export interface DeploymentStackProps extends StackProps {
envVars?: Record<string, string>,
}
export class DeploymentStack extends Stack {
@ColeMurray
ColeMurray / approvedNodeLambdaConstruct.ts
Created August 13, 2023 03:35
Lambda Construct for serverless express
import {DockerImage, Duration} from 'aws-cdk-lib';
import {Alarm, Metric} from 'aws-cdk-lib/aws-cloudwatch';
import {LambdaDeploymentConfig, LambdaDeploymentGroup} from 'aws-cdk-lib/aws-codedeploy';
import {Alias, AssetCode, Function, IFunction, Runtime} from 'aws-cdk-lib/aws-lambda';
import {Construct} from 'constructs';
export interface ApprovedLambdaProps {
readonly alarmThreshold?: number;
readonly alarmEvaluationPeriod?: number;
readonly codeDir: string;
@ColeMurray
ColeMurray / pipeline.ts
Created August 13, 2023 03:32
Pipeline stack for serverless express
import {BackendServiceStage} from "./stage";
import {ComputeType} from "aws-cdk-lib/aws-codebuild";
import {CodeBuildStep, CodePipeline, CodePipelineSource, ManualApprovalStep} from "aws-cdk-lib/pipelines";
import {PolicyStatement} from "aws-cdk-lib/aws-iam";
import {Stack, StackProps} from "aws-cdk-lib";
import {Construct} from "constructs";
interface PipelineStackProps extends StackProps {
repoName: string,
branch: string,
@ColeMurray
ColeMurray / Dockerfile
Last active July 19, 2023 03:35
basic-multi-layer-docker-build
FROM python:3.10-slim as sources
RUN apt-get -y update --fix-missing
ENV DEBIAN_FRONTEND=noninteractive
ARG SSH_KEY_PRIV
RUN apt-get update -qq && apt-get install -y git openssh-server
# Authorize SSH Host
@ColeMurray
ColeMurray / tornado-repo-download.sh
Created August 23, 2022 00:01
Script for downloading all repos from tornado-repositories
set -euxo
REPO_NAMES=(
"deployer"
"tornado-root-updater"
"tornado-verified-forks"
"tornado-deploy"
"tornado-aggregator"
"tornado-relayer-registry-subgraph"
"tornado-trees"