Deployment Reference

Terraform Deployment

Use the Terraform deployer when your environment standardizes on Terraform state and you want to keep Simple Chat in the repo's container-based runtime model.

Terraform-managed infrastructure Container image first Native Python only if you switch models

Use Terraform when state-managed infrastructure is already your team standard and you are comfortable separating image publication from infrastructure application.

State-managed infra

Choose this path when Terraform workflows, reviews, and state handling are already part of how your platform team works.

Container runtime by default

The current deployer targets a container-based Azure Linux Web App, so the application runtime still follows the Docker image entrypoint.

Publish the image first

Terraform does not build the application image for you. Publish to ACR first, then point the deployment at the tag you intend to run.

Know when the rule changes

If you ever move Terraform away from containers and into native Python App Service, the startup-command rules change with it.

Terraform is not the image build step

The most common mistake with this path is assuming Terraform also handles the application image lifecycle. It does not. Treat image publication and infrastructure application as two separate steps in the release flow.

When to choose this path

  • Your team standardizes on Terraform state and workflows
  • You want Terraform-managed infrastructure rather than azd orchestration
  • You are comfortable publishing the application image before applying infrastructure

Runtime model

The current Terraform deployer in this repo provisions a container-based Azure Linux Web App.

Current behavior

  • Terraform sets the App Service to run the published container image.
  • Gunicorn startup is already handled by the container entrypoint in application/single_app/Dockerfile.
  • You do not need to configure App Service Stack Settings Startup command for the current Terraform deployment.

If you switch Terraform to native Python later

If you change the Terraform deployment model away from containers and into native Python App Service, deploy the application/single_app folder and use this Startup command:

python -m gunicorn -c gunicorn.conf.py app:app

References