Submit social housing lettings and sales data (CORE)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

2.0 KiB

nav_order
11

Running Rake Tasks

On CORE, we sometimes need to run a Rake task manually on one of our deployed environments.

Rake Tasks

Rake tasks are defined in the lib/tasks directory of a Rails application.

Running Rake Tasks locally

This can be done from the command line:

bundle exec rake <task>

Running Rake Tasks on CORE infrastructure

Get access to an AWS CLI

TODO docs on this

Set up environment variables

Set the env as appropriate:

export env=prod

Other options are staging or review-XXXX, where XXXX is the review app number.

Set up the Rake Task as appropriate:

export rake_task=<task>

Where <task> is the name of the Rake task you want to run, local equivalent would be bundle exec rake <task>.

Set up the CPU and memory requirements for the task:

export cpu_value=1024
export memory_value=2048

See the AWS documentation for valid CPU and memory pairs.

Set the other environment variables:

export cluster=core-$env-app
export service=core-$env-app
export ad_hoc_task_definition=core-$env-ad-hoc
export network=$(aws ecs describe-services --cluster $cluster --services $service --query services[0].networkConfiguration)
export overrides="{ \"containerOverrides\" : [{ \"name\" : \"app\", \"command\" : [\"bundle\", \"exec\", \"rake\", \"$rake_task\"], \"memory\" : $memory_value, \"cpu\" : $cpu_value }] }"

Start the Rake Task

aws ecs run-task --cluster $cluster --task-definition $ad_hoc_task_definition --network-configuration "$network" --overrides "$overrides" --launch-type FARGATE --query tasks[0].taskArn

The task ARN will be printed to the console.

View the Task progress

This can be viewed in the AWS console by navigating to the ECS cluster specified in the environment variables, listing all tasks in the cluster, and selecting the task with the ARN printed in the previous step.