Configuration de la file d’attente des messages Amazon
- Rubriques :
- Configuration
Créé pour :
- Expérimenté
- Administration
- Développeur
Depuis Commerce 2.4.3, la file d’attente des messages Amazon (MQ) 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 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
.
La file d’attente des messages AWS 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 de terminaison AMQP ; disponible en cliquant sur le nom du courtier dans AWS (supprimez "https://" et le numéro de port de fin)user
: valeur du nom d’utilisateur saisie lors de la création du courtier AWS MQpassword
: valeur du mot de passe saisie lors de la création du courtier AWS MQ
Après avoir modifié le fichier env.php
, exécutez la commande suivante pour terminer la configuration :
bin/magento setup:upgrade
Utilisation du service AWS MQ par Commerce
Le consommateur de file d’attente de messages async.operations.all
utilise la connexion AMQP.
Ce consommateur achemine tout nom de rubrique précédé du préfixe async
par le biais de 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 indiquer à InventoryCatalog
de publier des messages, activez cataloginventory/bulk_operations/async
. À partir de l’administrateur, accédez à Magasins > Configuration > Catalogue > Inventaire > Opérations en masse de l’administrateur et définissez Run asynchronously
sur Oui.
Test de la file d’attente des messages
Pour tester l'envoi des messages de Commerce vers RabbitMQ :
-
Connectez-vous à la console web RabbitMQ dans AWS pour surveiller les files d’attente.
-
Dans l’Admin, créez un produit.
-
Créez une source d’inventaire.
-
Activez Magasins > Configuration > Catalogue > Inventaire > Opérations en bloc d’administration > 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 les messages s’afficher dans la console web RabbitMQ.
-
Démarrez le consommateur de file d’attente de messages
async.operations.all
.bin/magento queue:consumers:start async.operations.all
Vous devriez maintenant voir le message en file d’attente être traité dans la console web RabbitMQ.
Vérifiez que les sources d’inventaire ont changé sur le produit dans Admin.