Skip to content

Azure deployments

Resource groups

MACH composer will create a resource group per site.

Only when a resource_group is explicitly set, it won't be managed by MACH composer.

HTTP routing

Only when a MACH composer stack contains components that have an endpoint defined, MACH composer will set up a Frontdoor instance to be able to route traffic to that component.

Default endpoint

If you have defined your component with a default endpoint, MACH composer will create a Frontdoor instance for you which includes the default Azure domain.

components:
  - name: payment
    source: git::ssh://git@github.com/your-project/components/payment-component.git//terraform
    endpoints:
      public: default
    version: ....

This default endpoint doesn't need to be defined in your endpoints' definition.

Custom endpoint

Whenever a custom endpoint from your endpoints definition is used, MACH composer will require that you have configured frontdoor for additional DNS information that it needs to set up your Frontdoor instance.

In addition to that it will also set up the necessary DNS record.

Component routing

For each component with an endpoint MACH composer will add a route to the Frontdoor instance using the name of the component.

So when having the following components defined:

components:
  - name: payment
    source: git::ssh://git@github.com/your-project/components/payment-component.git//terraform
    endpoints:
      public: main
    version: ....
  - name: api-extensions
    source: git::ssh://git@github.com/your-project/components/api-extensions-component.git//terraform
    version: ....
  - name: graphql
    source: git::ssh://git@github.com/your-project/components/graphql-component.git//terraform
    endpoints:
      public: main
    version: ....

The routing in Frontdoor that will be created:

Frontdoor routes

Frontdoor resource

An important thing to keep in mind is that the Frontdoor resource in Terraform is managed as a single resource, including all the routing to the components.

This means the components can't create the routing themselves (as with AWS) but need to instruct MACH composer how to set up routing. This can be done by defining routing options in output values.

App service plans

What kind and how many service plans it will create depends on what service plans are needed by the components, and how the service_plans configuration looks like.

By default, MACH composer will create a default service plan which is a Consumption plan, if any of the components have service_plan: default set in their configuration.

In this case, you don't need to define the service plan yourself, MACH composer automatically creates this default for you:

service_plans:
  default:
    kind: "FunctionApp"
    tier: "Dynamic"
    size: "Y1"

Action groups

When an Alert group is configured, an Action group will be created.

Components can use that action group to attach alert rules to.