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
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)
| 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 |