Services

We provide a services.yaml file to configure all of your services supported and used by Magento Commerce (Cloud). These services include MySQL, PHP, Redis, ElasticSearch (for 2.1.X and later), and so on. You don’t need to subscribe to external service providers.

This file is located at .magento/services.yaml in your project.

When you push your Git branch, our deploy script uses the values defined by configuration files in the .magento directory. After deployment, the script deletes the directory and its contents. Your local development environment isn't affected.

To see an example, see this sample services.yaml file.

For Pro:

For Pro projects **created before October 23, 2017**, the changes you make using this YAML file affects your Integration environment only. To make these changes in a Staging or Production environment, you must Add Staging and Production to Pro projects UI.

The following sections discuss properties in services.yaml.

How this file works

The .magento.app.yaml and services.yaml files set the services, applications, and configurations to build and include in an environment. If you add services with specific versions, the initial push and deployment of your branches with these updated files directs the PaaS environment to provision the environment with those services. When you make changes to the services, the environment updates.

This affects the following environments:

  • All Starter environments including Production master
  • Pro Integration environments

To install and update services in Pro Staging and Production environments (IaaS), you must enter a Support ticket. Indicate the service changes needed and your updated .magento.app.yaml and services.yaml files in the ticket.

Default services

Your Git branch includes the following default services.yaml file:

mysql:
   type: mysql:10.0
   disk: 2048

redis:
   type: redis:3.0

solr:
   type: solr:4.10
   disk: 1024

Modify this file to use specific and additional services in your deployment. See the type section to see the services we support and deploy for you if you add them to the file.

Service values

To add a service, you add the following data to services.yaml:

name: type: name:version disk: value

For example:

mysql: type: mysql:10.0 disk: 2048

name

name identifies the service in the project. The name can consist only of lower case alphanumeric characters: az and 09. For example, Redis is entered as redis.

You can have multiple instances of each service type. For example, you could have multiple Redis instances. For example, we use multiple Redis instances, one for session and one for cache.

redis: type: redis:3.0

redis2: type: redis:3.0

Be aware, if you rename a service in services.yaml, the following is permanently removed:

  • The existing service before creating a new service with the new name you specify.
  • All existing data for the service is removed. We strongly recommend you snapshot your environment before you change the name of an existing service.

type

The type of your service in the format type:version

We support and deploy the following services:

disk

disk specifies the size of the persistent disk storage (in MB) allocated to the service.

For example, the current default storage amount per project is 5GB, or 5120MB. You can distribute this amount between your application and each of its services. See relationships.

Using the services

For services to be available to an application in your project, you must specify relationships between applications and services in .magento.app.yaml.