MACH composer will create a resource group per site.
Only when a
is explicitly set, it won't be managed by MACH composer.
Only when a MACH composer stack contains components that have an
endpoint defined, MACH composer
will setup a Frontdoor instance to be able to route traffic to that component.
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://firstname.lastname@example.org/your-project/components/payment-component.git//terraform endpoints: public: default version: ....
default endpoint doesn't need to be defined in your endpoints definition.
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 setup your Frontdoor instance.
In addition to that it will also setup the necessary DNS record.
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://email@example.com/your-project/components/payment-component.git//terraform endpoints: public: main version: .... - name: api-extensions source: git::ssh://firstname.lastname@example.org/your-project/components/api-extensions-component.git//terraform version: .... - name: graphql source: git::ssh://email@example.com/your-project/components/graphql-component.git//terraform endpoints: public: main version: ....
The routing in Frontdoor that will be created:
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¶
MACH composer can create an App service plan
that can be used for any MACH component that uses the
configuration option (either in the component definition
or the site-specific configuration).
What kind and how many service plans it will create depends on what service
plans are needed by the components, and how the
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
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"
Components can use that action group to attach alert rules to.