Configurer la file d’attente des messages Amazon
Depuis Commerce version 2.4.3, la file d’attente des messages (MQ) d’Amazon est disponible en tant que remplacement prêt pour le cloud pour les instances de file d’attente des messages sur site.
Pour créer une file d’attente de messages sur AWS, voir Configuration d’Amazon MQ dans la documentation AWS.
Configuration de Commerce pour AWS MQ
Pour vous connecter au service AWS MQ, configurez l’objet queue.amqp dans le fichier env.php.
AWS Message Queue requiert une connexion SSL/TLS.
'queue' => [
'amqp' => [
'host' => '[host]', //example: c-bf4kk1c5-5gcc-4b43-9b9e-8f5b54d234.mq.us-west-3.amazonaws.com
'port' => 5671,
'user' => 'yourusername',
'password' => 'yourpassword',
'virtualhost' => '/',
// AWS fields to add
'ssl' => 'true'
]
],
Où :
host: URL du point d’entrée AMQP ; disponible en cliquant sur le nom du courtier dans AWS (supprimez « https:// » et le numéro de port de fin)user: valeur de nom d'utilisateur saisie lors de la création du courtier AWS MQpassword: valeur de mot de passe saisie lors de la création du courtier AWS MQ
Après modification du fichier env.php, exécutez la commande suivante pour terminer la configuration :
bin/magento setup:upgrade
Utilisation du service AWS MQ par Commerce
Le client de file d’attente de messages async.operations.all utilise la connexion AMQP.
Ce client achemine tout nom de rubrique précédé de async via la connexion AWS MQ.
Par exemple, dans InventoryCatalog, il existe :
async.V1.inventory.bulk-product-source-assign.POST
async.V1.inventory.bulk-product-source-unassign.POST
async.V1.inventory.bulk-product-source-transfer.POST
La configuration par défaut de InventoryCatalog ne publie pas de messages sur RabbitMQ ; le comportement par défaut consiste à effectuer l’action dans le même thread d’utilisateur. Pour InventoryCatalog indiquer de publier des messages, activez cataloginventory/bulk_operations/async. Depuis l’administration, accédez à Magasins > Configuration > Catalogue > Inventaire > Opérations en bloc d’administration et définissez Run asynchronouslysur Oui.
Test de la file d'attente des messages
Pour tester l’envoi de messages de Commerce vers RabbitMQ :
-
Connectez-vous à la console web RabbitMQ dans AWS pour surveiller les files d’attente.
-
Dans Admin, créez un produit.
-
Créez une source d’inventaire.
-
Activez Magasins > Configuration > Catalogue > Inventaire > Admin > Opérations en bloc > Exécuter de manière asynchrone.
-
Accédez à Catalogue > Produits. Dans la grille, sélectionnez le produit créé ci-dessus et cliquez sur Attribuer le Source d’inventaire.
-
Cliquez sur Enregistrer et fermer pour terminer le processus.
Vous devriez maintenant voir des messages apparaître dans la console web RabbitMQ.
-
Démarrez le client de file d’attente de messages
async.operations.all.code language-bash bin/magento queue:consumers:start async.operations.all
Le message mis en file d’attente doit maintenant être traité dans la console web RabbitMQ.
Vérifiez que les sources d'inventaire ont changé sur le produit dans l'administrateur.