Configuration des services
Le fichier services.yaml
définit les services pris en charge et utilisés par Adobe Commerce sur l’infrastructure cloud, tels que MySQL, Redis et Elasticsearch ou OpenSearch. Vous n’avez pas besoin de vous abonner à des prestataires externes.
.magento/services.yaml
est géré localement dans le répertoire .magento
de votre projet. La configuration est accessible pendant le processus de génération pour 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 configurer l’environnement avec 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 name et version.
La modification de la configuration d’un service entraîne un déploiement à configurer l’environnement avec les services mis à jour, ce qui affecte les environnements suivants :
- Tous les environnements de démarrage, y compris Production
master
- Environnements d’intégration Pro
Staging
et Production
uniquement..magento.app.yaml
et services.yaml
mis à jour et indiquez la version PHP dans le ticket. Pour les modifications en libre-service apportées à la version PHP, aux extensions ou aux paramètres d’environnement, voir Paramètres PHP dans la configuration de l’application.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 du disque dans le fichier services.yaml
par défaut actuel. 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 la configuration de type de service type: <name>:<version>
. Si le service utilise le stockage permanent, 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 ne pouvez utiliser que des caractères alphanumériques minuscules : a
vers z
et 0
vers 9
, tels que 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 indiquez.
- Toutes les données existantes pour le service sont supprimées. Adobe recommande vivement de sauvegarder votre environnement de démarrage avant de changer 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 du stockage du disque persistant (en Mo) à allouer au service. Les services qui utilisent le stockage persistant, comme MySQL, doivent fournir une valeur de disque. Les services qui utilisent de la mémoire plutôt que du stockage persistant, comme Redis, ne nécessitent pas de valeur de disque.
mysql:
type: mysql:10.4
disk: 5120
Le volume de stockage par défaut actuel par projet est de 5 Go, soit 512 0 Mo. Vous pouvez répartir ce montant entre votre application et chacun de ses services.
Relations avec les services
Dans Adobe Commerce sur les projets d’infrastructure cloud, le service relations configuré dans le fichier .magento.app.yaml
détermine 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 les détails de connexion requis, tels que le numéro de port et les informations de connexion.
Pour vérifier les relations dans l’environnement local :
-
Dans votre environnement local, affichez les relations pour l’environnement actif.
code language-bash magento-cloud relationships
-
Confirmez les
service
ettype
issus 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é
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 :
-
Utilisez SSH pour vous connecter à l’environnement distant.
-
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
-
Confirmez les
service
ettype
issus 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 tout nom d’utilisateur et mot de passe requis.
Versions de service
La prise en charge de la version du 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. Voir Configuration requise dans le guide Installation pour obtenir la liste des dépendances de logiciels tiers que Adobe a testées avec des versions Adobe Commerce et Magento Open Source spécifiques.
Vérifications EOL 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 se trouve dans les trois mois suivant la date de fin de vie, une notification s’affiche dans le journal de déploiement.
- Si la date de fin de vie se situe dans le passé, 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 EOL. Vous pouvez consulter les dates de fin de vie dans le fichier ece-tools' eol.yaml
.
Migration vers OpenSearch
Pour Adobe Commerce version 2.4.4 et ultérieure, voir Configuration du service OpenSearch.
Modification de 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 directement mettre à niveau la version du service pour un service installé. Vous pouvez toutefois créer un service avec la version requise. Voir Version de service de rétrogradation.
Mettre à niveau la version du service installé
Vous pouvez mettre à niveau la version de service installée en mettant à jour la configuration de service dans le fichier services.yaml
.
-
Modifiez la valeur
type
du 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 de service mise à jour
code language-yaml mysql: type: mysql:10.4 disk: 5120
-
Ajoutez, validez et poussez 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 directement mettre à niveau un service installé. Vous disposez de deux options :
-
Renommez un service existant avec la nouvelle version, ce qui supprime le service et les données existants et en ajoute un nouveau.
-
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 :
-
Renommez le service existant dans le fichier
.magento/services.yaml
et modifiez la version.note warning WARNING Le fait de 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 celui 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
services.yaml
originalecode language-yaml mysql: type: mysql:10.4 disk: 5120
Nouvelle définition
services.yaml
code language-yaml mysql2: type: mysql:10.3 disk: 5120
-
Mettez à jour les relations dans le fichier
.magento.app.yaml
.Configuration originale
.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"
-
Ajoutez, validez et poussez vos modifications de code.
Pour rétrograder un service en créant un service :
-
Ajoutez une définition de service au fichier
services.yaml
pour votre projet avec la spécification de version dégradé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
-
Modifiez la configuration des relations dans le fichier
.magento.app.yaml
pour utiliser le nouveau service.Configuration originale
.magento.app.yaml
code language-yaml relationships: database: "mysql:mysql"
Nouvelle configuration
.magento.app.yaml
code language-yaml relationships: database: "mysql2:mysql"
-
Ajoutez, validez et poussez vos modifications de code.