Production Application
Your production application runs on AWS and its resources are defined in the workspace/prd_resources.py
file. This guide shows how to:
Workspace Settings
The WorkspaceSettings
object in the workspace/settings.py
file defines common settings used by your workspace apps and resources.
Build your production image
Your application uses the phidata
images by default. To use your own image:
- Create a Repository in
ECR
and authenticate or useDockerhub
. - Open
workspace/settings.py
file - Update the
image_repo
to your image repository - Set
build_images=True
andpush_images=True
- Optional - Set
build_images=False
andpush_images=False
to use an existing image in the repository
Create an ECR Repository
To use ECR, create the image repo and authenticate with ECR before pushing images.
1. Create the image repository in ECR
The repo name should match the ws_name
. Meaning if you’re using the default workspace name, the repo name would be ai
.
2. Authenticate with ECR
You can also use a helper script to avoid running the full command
Update the script with your ECR repo before running.
Update the WorkspaceSettings
The image_repo
defines the repo for your image.
- If using dockerhub it would be something like
phidata
. - If using ECR it would be something like
[ACCOUNT_ID].dkr.ecr.us-east-1.amazonaws.com
Build a new image
Build the production image using:
To force
rebuild images, use the --force
or -f
flag
Because the only docker resources in the production env are docker images, you can also use:
ECS Task Definition
If you updated the Image, CPU, Memory or Environment Variables, update the Task Definition using:
ECS Service
To redeploy the production application, update the ECS Service using:
If you ONLY rebuilt the image, you do not need to update the task definition and can just patch the service to pickup the new image.
Was this page helpful?