Skip to main content

Psychic Disco

  • Are you a poor dope with a program to deploy?

  • Need to produce a demo, but haven’t yet hit pay dirt?

  • Love python development, but not product delivery?

Then let Psychic Disco be your principal delegate for publicly displaying your work!

By leveraging the pioneering domains of AWS Lambda and the Serverless Web, Psychic Disco allows even plebian dummies like you and I to scale the platforms of our dreams on the cheap.

Stinking Badges

https://travis-ci.org/robertdfrench/psychic-disco.svg?branch=master https://coveralls.io/repos/github/robertdfrench/psychic-disco/badge.svg?branch=master

Installing

Install like so:

pip install psychic_disco

Assumptions

  • All your microservices live in python modules

  • All your entrypoints are decorated with @lambda_entry_point

Declaring Entrypoints and API methods

Make a new entrypoint:

@lambda_entry_point
def handler(event, context):
  # important code here

Making a new api method automatically registers the entrypoint:

@api_method("POST", "/cereal"):
def create_cereal(event, context):
  # cereal creation logic here

Definitions for your API methods are available in psychic_disco.Api.

Discovering Entrypoints

Do this thing:

psychic_disco discover_entrypoints

Or, if your code lives elsewhere:

psychic_disco --repo path/to/st/elsewhere discover_entrypoints

Creating a Deployment Package

Do this thing:

psychic_disco bundle

That will make a virtualenv, install your dependencies, and zip it all up for you. This assumes that you have psychic_disco.config.default_s3_bucket defined in your psychic_disco_config.py

Deploying Lambda Functions

Once a deployment package has been uploaded to Amazon S3, you can install the lambda functions you defined like so:

psychic_disco deploy_lambdas

This assumes that you have psychic_disco.config.default_iam_role defined in your psychic_disco_config.py

Querying AWS

You can see what has already been configured on AWS by running:

psychic_disoc show_installed_routes <api-name>

Which will output something like:

verb

path

lambda-function

GET

/users

users-list_all

POST

/users

users-create_new

PATCH

/user/7

users-update

Release files for psychic_disco 0.10.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for psychic_disco 0.10.2
File Size Uploaded
psychic_disco-0.10.2.tar.gz 10.1 kB Details

Release files / psychic_disco-0.10.2.tar.gz

Download URL psychic_disco-0.10.2.tar.gz
Size 10.1 kB
Tags Source
SHA-256 checksum
How to use checksums
49a8f6267e5e2de320712e2bd95353533d22ee1ccecd45b73e11890b798c1717
BLAKE2b-256 checksum
How to use checksums
b5069adcaaebeff63c1b34cf1a0dc1dd54784e1d0c3749e2301adc4d2c023ff0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.10.2 This release

1 release file

0.10.0

1 release file

0.9.1

1 release file

0.9.0

1 release file

0.8.0

1 release file

0.7.4

1 release file

0.7.3

1 release file

0.7.2

1 release file

0.7.1

1 release file

0.7.0

1 release file

0.6.5

1 release file

0.6.3

1 release file

0.6.2

1 release file

0.6.1

1 release file

0.6.0

1 release file

0.5.0

1 release file

0.4.0

1 release file

0.3.1

1 release file

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page