Pre-deploy routines¶
The idea behind PreDeployRoutine
is to allow for the definition of tasks to be performed
before deployment and the start of the experiment.
PreDeployRoutines can be added (in any number) at any point in the experiment’s timeline.
Below we give an example of a PreDeployRoutines that performs a configuration task on an Amazon S3 bucket.
from psynet.media import prepare_s3_bucket_for_presigned_urls
from psynet.timeline import PreDeployRoutine
PreDeployRoutine(
"prepare_s3_bucket_for_presigned_urls",
prepare_s3_bucket_for_presigned_urls,
{"bucket_name": "recordings_s3_bucket", "public_read": True, "create_new_bucket": True}
)
The PreDeployRoutine
expects three arguments:
A label
describing the pre-deployment task,
the function
to be executed,
and lastly the arguments
of the function to be executed.
This function will then be run automatically as part of experiment launch.
Note: If you alter the database state during a PreDeployRoutine then this change will be propagated to the deployed experiment. It can be useful for performing database setup tasks, therefore.