- Resource Group - that includes the following resources
- VNET with one subnet for the Private Link Service and another one for the Azure Container Apps Environment
- Container Registry - this sample uses a mcr hello world container image so the registry is not really used, but glues containers apps and the registry with a managed identity for the CI/CD process
- Log Analytics Workspace - to store the logs
- Application insights
- Key Vault
- Managed Identity to enable Container Apps access the Container Registry
- Container Apps Environment with internal networking (for an existing VNET)
- Container App with an API 1 and ingress limited to the Container App Environment
- Container App with an API 2 and ingress limited to the Container App Environment
- Container App with the UI and ingress limited to the VNet. API1 and API2 URI's are passed to this App with env vars.
- Private Link service for Container App Environment - after deploying the resource you must approve the private link connection for the sample to work. You may use the CLI with the command: az network private-endpoint-connection approve
- Front Door to expose the UI to the public
Reference:
- Container Apps documentation
- Quickstart - deploy an API
- Quickstart - deploy the UI
- Quickstart - Terraform with Azure
- Landing Zone Accelerator for Azure Container Apps
- Terraform provider for Container Apps
- Terraform provider for Key Vault
- Terraform provider for Front Door
This sample was inspired by this excelent article! If you are looking for a bicep equivalent and/or more architecture details please use this article.
1. Complete environment(s) creation using the IaC based blueprints
- Environment, custom VNet, ingress and proxying, network security, identities, secrets, Arc
- Terraform based quick start
2. Inner loop App development
- App bootstrapping using predefined templates (samples, azd templates, private repos)
- Dapr, authentication, event driven, background processing
- Visual Studio Code (+ extension), cloud build, local build, Visual Studio
3. App delivery with CI/CD workflows
4. Operations