Configuration des services

Le fichier services.yaml définit les services pris en charge et utilisés par Adobe Commerce sur les infrastructures cloud, telles que MySQL, Redis et Elasticsearch ou OpenSearch. Vous n’avez pas besoin de vous abonner à des fournisseurs de services externes.

NOTE
Le fichier .magento/services.yaml est géré localement dans le répertoire .magento de votre projet. La configuration est accessible pendant le processus de création afin de définir les versions de service requises dans l’environnement d’intégration uniquement. Elle est supprimée une fois le déploiement terminé. Vous ne les trouverez donc pas sur le serveur.

Le script de déploiement utilise les fichiers de configuration du répertoire .magento pour fournir à l’environnement les services configurés. Un service devient disponible pour votre application s’il est inclus dans la propriété relationships du fichier .magento.app.yaml. Le fichier services.yaml contient les valeurs type et disk. Le type de service définit le service nom et version.

La modification d’une configuration de service entraîne la mise en service de l’environnement par un déploiement avec les services mis à jour, ce qui affecte les environnements suivants :

  • Tous les environnements de démarrage, y compris les master de production
  • Environnements d’intégration Pro
TIP
Pour les projets Pro, vous devez envoyer un ticket d’assistance Adobe Commerce pour installer ou mettre à jour les services dans les environnements Staging et Production uniquement.
Indiquez les changements de service nécessaires, incluez vos fichiers .magento.app.yaml et services.yaml mis à jour, et indiquez la version PHP dans le ticket. Pour les modifications en libre-service de la version PHP, des extensions ou des paramètres d'environnement, voir paramètres PHP dans Configuration de l'application.
Pour apporter des modifications à un environnement de production en ligne (Pro uniquement), un préavis d’au moins 48 heures est requis. L’équipe en charge de l’infrastructure cloud dispose ainsi de suffisamment de temps pour rassembler les ressources et effectuer une mise à niveau sécurisée. La période de préavis commence lorsque l’équipe d’infrastructure accuse réception de la demande et planifie la mise à niveau, à l’exclusion des week-ends. Par exemple, pour que les mises à niveau de service soient terminées un lundi, un accusé de réception de la mise à niveau prévue doit être reçu avant le mercredi. Pendant les périodes de pointe, le traitement de votre demande peut prendre plus de temps.

Services par défaut et pris en charge

L’infrastructure cloud prend en charge et déploie les services suivants :

Vous pouvez afficher les versions par défaut et les valeurs de disque dans le fichier services.yaml actuel par défaut. L’exemple suivant montre les services mysql, redis, opensearch ou elasticsearch, et rabbitmq définis dans le fichier de configuration services.yaml :

mysql:
    type: mysql:10.4
    disk: 5120

redis:
    type: redis:6.2

opensearch:
    type: opensearch:2  # minor version not required; uses latest
    disk: 1024

rabbitmq:
    type: rabbitmq:3.9
    disk: 1024

Valeurs de service

Vous devez fournir l’ID de service et l’type: <name>:<version> de configuration du type de service. Si le service utilise le stockage persistant, vous devez fournir une valeur de disque.

Utilisez le format suivant :

<service-id>:
    type: <name>:<version>
    disk: <value-MB>

service-id

La valeur service-id identifie le service dans le projet. Vous pouvez uniquement utiliser des caractères alphanumériques en minuscules : a à z et 0 à 9, comme redis.

Cette valeur service-id est utilisée dans la propriété relationships du fichier de configuration .magento.app.yaml :

relationships:
    redis: "<name>:redis"

Vous pouvez nommer plusieurs instances de chaque type de service. Par exemple, vous pouvez utiliser plusieurs instances Redis, une pour la session et une pour le cache.

redis:
    type: redis:<version>

redis2:
    type: redis:<version>

Renommer un service dans le fichier services.yaml supprime définitivement les éléments suivants :

  • Le service existant avant de créer un service avec le nouveau nom que vous spécifiez.
  • Toutes les données existantes pour le service sont supprimées. Adobe recommande vivement de sauvegarder votre environnement de démarrage avant de modifier le nom d’un service existant.

type

La valeur type spécifie le nom et la version du service. Par exemple :

mysql:
    type: mysql:10.4

disk

La valeur disk spécifie la taille de l’espace de stockage disque persistant (en Mo) à allouer au service. Les services qui utilisent le stockage persistant, tels que MySQL, doivent fournir une valeur de disque. Les services qui utilisent la mémoire au lieu du stockage persistant, tels que Redis, ne nécessitent pas de valeur de disque.

mysql:
    type: mysql:10.4
    disk: 5120

La quantité de stockage par défaut actuelle par projet est de 5 Go, soit 512 Mo. Vous pouvez répartir ce montant entre votre application et chacun de ses services.

Relations de service

Dans Adobe Commerce sur les projets d’infrastructure cloud, les services relations configurés dans le fichier .magento.app.yaml déterminent les services disponibles pour votre application.

Vous pouvez récupérer les données de configuration pour toutes les relations de service à partir de la variable d’environnement $MAGENTO_CLOUD_RELATIONSHIPS. Les données de configuration incluent le nom, le type et la version du service, ainsi que tous les détails de connexion requis tels que le numéro de port et les informations d’identification.

Pour vérifier les relations dans l’environnement local :

  1. Dans votre environnement local, afficher les relations pour l’environnement actif.

    code language-bash
    magento-cloud relationships
    
  2. Confirmez les service et type à partir de la réponse. La réponse fournit des informations de connexion, telles que l’adresse IP et le numéro de port.

    Exemple de réponse abrégée

    code language-yaml
    redis:
        -
    ...
            type: 'redis:7.0'
            port: 6379
    elasticsearch:
        -
    ...
            type: 'opensearch:2'
            port: 9200
    database:
        -
    ...
            type: 'mysql:10.6'
            port: 3306
    

Pour vérifier les relations dans les environnements distants :

  1. Utilisez SSH pour vous connecter à l’environnement distant.

  2. Répertorier les données de configuration des relations pour tous les services configurés dans l’environnement.

    code language-bash
    echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
    

    ou utilisez la commande ece-tools suivante pour afficher les relations :

    code language-bash
    php ./vendor/bin/ece-tools env:config:show services
    
  3. Confirmez les service et type à partir de la réponse. La réponse fournit des informations de connexion, telles que l’adresse IP et le numéro de port, ainsi que les informations d’identification de nom d’utilisateur et de mot de passe requises.

Versions des services

La prise en charge des versions de service et de la compatibilité pour Adobe Commerce sur l’infrastructure cloud est déterminée par les versions déployées et testées sur l’infrastructure cloud et diffère parfois des versions prises en charge par les déploiements sur site d’Adobe Commerce. Consultez Configuration requise dans le guide Installation pour obtenir une liste des dépendances logicielles tierces qu’Adobe a testées avec des versions spécifiques d’Adobe Commerce et de Magento Open Source.

Vérifications de fin de vie du logiciel

Pendant le processus de déploiement, le package ece-tools vérifie les versions de service installées par rapport aux dates de fin de vie (EOL) de chaque service.

  • Si une version de service est en cours depuis moins de trois mois, une notification s’affiche dans le journal de déploiement.
  • Si la date de fin de vie est passée, une notification d’avertissement s’affiche.

Pour maintenir la sécurité du magasin, mettez à jour les versions logicielles installées avant qu'elles n'atteignent leur fin de vie. Vous pouvez consulter les dates de fin de vie dans le fichier eol.yaml de ece-tools.

Migrer vers OpenSearch

WARNING
Elasticsearch version 7.11 et ultérieure n’est pas pris en charge pour Adobe Commerce sur les infrastructures cloud. Les versions 2.3.7-p3, 2.4.3-p2 et 2.4.4 d’Adobe Commerce et ultérieures prennent en charge le service OpenSearch. Les installations sur site continuent à prendre en charge l’Elasticsearch.

Pour Adobe Commerce version 2.4.4 et ultérieure, voir Configuration du service OpenSearch.

Modifier la version du service

Vous pouvez mettre à niveau la version de service installée pour des raisons de compatibilité avec la version d’Adobe Commerce déployée dans votre environnement cloud.

Vous ne pouvez pas rétrograder directement la version du service pour un service installé. Cependant, vous pouvez créer un service avec la version requise. Voir Version du service de rétrogradation.

Mettre à niveau la version du service installé

Vous pouvez mettre à niveau la version du service installée en mettant à jour la configuration du service dans le fichier services.yaml.

  1. Modifiez la valeur type pour le service dans le fichier .magento/services.yaml :

    Définition du service d’origine

    code language-yaml
    mysql:
        type: mysql:10.3
        disk: 2048
    

    Définition du service mise à jour

    code language-yaml
    mysql:
        type: mysql:10.4
        disk: 5120
    
  2. Ajouter, valider et transmettre vos modifications de code.

    code language-bash
    git add .magento/services.yaml
    
    code language-bash
    git commit -m "Upgrade MySQL from MariaDB 10.3 to 10.4."
    
    code language-bash
    git push origin <branch-name>
    

Version de rétrogradation

Vous ne pouvez pas rétrograder directement un service installé. Vous disposez de deux options :

  1. Renommez un service existant avec la nouvelle version, ce qui supprime le service et les données existants et en ajoute une nouvelle.

  2. Créez un service et enregistrez les données du service existant.

Lorsque vous modifiez la version du service, vous devez mettre à jour la configuration du service dans le fichier services.yaml et mettre à jour les relations dans le fichier .magento.app.yaml.

Pour rétrograder une version de service en renommant un service existant :

  1. Renommez le service existant dans le fichier .magento/services.yaml et modifiez la version.

    note warning
    WARNING
    Renommer un service existant le remplace et supprime toutes les données. Si vous devez conserver les données, créez un service au lieu de renommer le service existant.

    Par exemple, pour rétrograder la version MariaDB du service mysql de la version 10.4 à la version 10.3, modifiez la configuration service-id et type existante.

    Définition de l’services.yaml d’origine

    code language-yaml
    mysql:
        type: mysql:10.4
        disk: 5120
    

    Nouvelle définition de services.yaml

    code language-yaml
    mysql2:
         type: mysql:10.3
         disk: 5120
    
  2. Mettez à jour les relations dans le fichier .magento.app.yaml.

    Configuration d’origine du .magento.app.yaml

    code language-yaml
    relationships:
        database: "mysql:mysql"
    

    Mise à jour de la configuration .magento.app.yaml

    code language-yaml
    relationships:
        database: "mysql2:mysql"
    
  3. Ajouter, valider et transmettre vos modifications de code.

Pour rétrograder un service en créant un service :

  1. Ajoutez une définition de service au fichier services.yaml pour votre projet avec la spécification de version rétrogradée. Voir mysql2 dans l’exemple suivant :

    services.yaml

    code language-yaml
    mysql:
        type: mysql:10.4
        disk: 5120
    mysql2:
        type: mysql:10.3
        disk: 5120
    
  2. Modifiez la configuration des relations dans le fichier .magento.app.yaml pour utiliser le nouveau service.

    Configuration d’origine du .magento.app.yaml

    code language-yaml
    relationships:
        database: "mysql:mysql"
    

    Nouvelle configuration .magento.app.yaml

    code language-yaml
    relationships:
        database: "mysql2:mysql"
    
  3. Ajouter, valider et transmettre vos modifications de code.

recommendation-more-help
7c2b03ac-000c-497d-aba3-2c6dc720a938