Configuration des variables d’environnement pour le déploiement
Le fichier .magento.env.yaml
utilise des variables d’environnement pour centraliser la gestion des actions de création et de déploiement dans tous vos environnements, y compris l’évaluation et la production de pro. Pour configurer des actions uniques dans chaque environnement, vous devez modifier ce fichier dans chaque environnement.
.magento.env.yaml
, faute de quoi votre configuration risque de ne pas fonctionner comme prévu. Les exemples de la documentation et de l’exemple de fichier utilisent la mise en retrait à deux espaces. Utilisez la commande ece-tools validate pour vérifier votre configuration.Structure de fichier
Le fichier .magento.env.yaml
contient deux sections : stage
et log
. La section stage
contrôle les actions qui se produisent au cours des phases du processus de déploiement Cloud.
-
stage
: utilisez la section étape pour définir certaines actions pour les étapes suivantes du déploiement :global
: contrôle les actions au cours des phases de création, de déploiement et de post-déploiement. Vous pouvez remplacer ces paramètres dans les sections Créer, déployer et post-déployer.build
: contrôle uniquement les actions de la phase de création. Si vous ne spécifiez pas de paramètres dans cette section, la phase de création utilise les paramètres de la section globale.deploy
: contrôle les actions lors de la phase de déploiement uniquement. Si vous ne spécifiez pas de paramètres dans cette section, la phase de déploiement utilise les paramètres de la section globale.post-deploy
: contrôle les actions après le déploiement de votre application et après le conteneur commence à accepter les connexions.
-
log
: utilisez la section journal pour configurer les notifications, y compris les types de notification et le niveau de détail.slack
: permet de configurer un message à envoyer à un robot de Slack.email
: configurez un e-mail à envoyer à un ou plusieurs destinataires d'e-mail.- gestionnaires de journaux : configurez les messages des applications matérielles et logicielles envoyés à un serveur de journalisation distant.
Variables d’environnement
Le package ece-tools
définit les valeurs du fichier env.php
en fonction des valeurs des variables cloud, des variables définies dans le Cloud Console et du fichier de configuration .magento.env.yaml
. Les variables d’environnement du fichier .magento.env.yaml
personnalisent l’environnement cloud en remplaçant votre configuration Commerce existante. Si une valeur par défaut est Not Set
, le package de ece-tools
exécute l’action NON et utilise la valeur par défaut Commerce ou la valeur de la configuration MAGENTO_CLOUD_RELATIONSHIPS. Si la valeur par défaut est définie, le package ece-tools
agit pour définir cette valeur par défaut.
Les rubriques suivantes contiennent des définitions détaillées, indiquant par exemple si une valeur par défaut est définie ou non, de toutes les variables que vous pouvez utiliser dans le fichier .magento.env.yaml
:
- Global : les variables contrôlent les actions lors de chaque phase : création, déploiement et post-déploiement
- Build : les variables contrôlent les actions de build.
- Déployer : les variables contrôlent les actions de déploiement
- Post-déploiement : les variables contrôlent les actions après le déploiement.
Créer un fichier de configuration à partir de l’interface de ligne de commande
Vous pouvez générer un fichier de configuration .magento.env.yaml
pour un environnement Cloud à l’aide des commandes ece-tools
suivantes.
Création d’un fichier de configuration
php ./vendor/bin/ece-tools cloud:config:create `<configuration-json>`
Mettre à jour les valeurs dans le fichier de configuration
php ./vendor/bin/ece-tools cloud:config:update `<configuration-json>`
Les deux commandes nécessitent un seul argument : un tableau au format JSON qui spécifie une valeur pour au moins une variable de build, de déploiement ou de post-déploiement. Par exemple, la commande suivante définit les valeurs des variables SCD_THREADS
et CLEAN_STATIC_FILES
:
php vendor/bin/ece-tools cloud:config:create '{"stage":{"build":{"SCD_THREADS":5}, "deploy":{"CLEAN_STATIC_FILES":false}}}'
et crée un fichier .magento.env.yaml
avec les paramètres suivants :
stage:
build:
SCD_THREADS: 5
deploy:
CLEAN_STATIC_FILES: false
Vous pouvez utiliser la commande cloud:config:update
pour mettre à jour le nouveau fichier. Par exemple, la commande suivante modifie la valeur SCD_THREADS
et ajoute la configuration SCD_COMPRESSION_TIMEOUT
:
php vendor/bin/ece-tools cloud:config:update '{"stage":{"build":{"SCD_THREADS":3, "SCD_COMPRESSION_TIMEOUT":1000}}}'
Le fichier mis à jour contient la configuration suivante :
stage:
build:
SCD_THREADS: 3
SCD_COMPRESSION_TIMEOUT: 1000
deploy:
CLEAN_STATIC_FILES: false
Validation du fichier de configuration
Utilisez la commande ece-tools
suivante pour valider le fichier de configuration .magento.env.yaml
avant d’envoyer les modifications vers l’environnement cloud distant.
php ./vendor/bin/ece-tools cloud:config:validate
L’exemple de réponse suivant fournit une liste d’éléments à corriger :
Environment configuration is not valid. Correct the following items in your .magento.env.yaml file:
The SCD_THREADS variable contains an invalid value of type string. Use the following type: integer.
The SCD_STRATEGY variable contains an invalid value fast. Use one of the available value options: compact, quick, standard.
The NOT_EXIST_OPTION variable is not allowed in configuration.
Constantes PHP
Vous pouvez utiliser des constantes PHP dans les définitions de fichiers .magento.env.yaml
au lieu de valeurs en dur. L'exemple suivant définit le driver_options
à partir d'une constante PHP :
stage:
deploy:
DATABASE_CONFIGURATION:
connection:
default:
driver_options:
!php/const:\PDO::MYSQL_ATTR_LOCAL_INFILE : 1
indexer:
driver_options:
!php/const:\PDO::MYSQL_ATTR_LOCAL_INFILE : 1
_merge: true
symfony/yaml
antérieure à la version 3.2.Gestion des erreurs
Lorsqu’un échec se produit en raison d’une valeur inattendue dans le fichier de configuration .magento.env.yaml
, vous recevez un message d’erreur. Par exemple, le message d’erreur suivant présente une liste de modifications suggérées pour chaque élément avec une valeur inattendue, fournissant parfois des options valides :
- Environment configuration is not valid. Please correct .magento.env.yaml file with next suggestions:
Item CRON_CONSUMERS_RUNNER is not supposed to be in stage build. Please move it to one of possible stages: global, deploy
Item SKIP_SCD has unexpected type string. Please use one of next types: boolean
Item VERBOSE_COMMANDS has unexpected type boolean. Please use one of next types: string
Item SKIP_HTML_MINIFICATION has unexpected type string. Please use one of next types: boolean
Item CRON_CONSUMERS_RUNNER has unexpected type boolean. Please use one of next types: array
Item VAR_WARM_UP_PAGES is not allowed in configuration.
Item WARM_UP_PAGES has unexpected type string. Please use one of next types: array
Apportez les corrections nécessaires, validez et poussez les modifications. Si vous ne recevez pas de message d’erreur, les modifications apportées à votre fichier de configuration réussissent la validation.
Optimisation de la gestion des configurations
Si vous avez activé la gestion de la configuration après avoir vidé les configurations, vous devez déplacer les variables SCD_* du déploiement vers l’étape de création. Voir Stratégies de déploiement de contenu statique.
Avant la gestion de la configuration :
deploy:
CRON_CONSUMERS_RUNNER:
cron_run: true
consumers: []
SCD_STRATEGY: compact
SCD_MATRIX:
...
REDIS_USE_SLAVE_CONNECTION: 1
Après avoir activé la gestion de la configuration, déplacez les variables SCD_* vers l’étape de création :
deploy:
CRON_CONSUMERS_RUNNER:
cron_run: true
consumers: []
REDIS_USE_SLAVE_CONNECTION: 1
build:
SCD_STRATEGY: compact
SCD_MATRIX:
...