Configuración de la cola de mensajes de Amazon
- Temas:
- Configuración
Creado para:
- Experimentado
- Administrador
- Desarrollador
A partir de Commerce 2.4.3, la cola de mensajes de Amazon (MQ) está disponible como un reemplazo listo para la nube para instancias de cola de mensajes locales.
Para crear una cola de mensajes en AWS, consulte Configuración de Amazon MQ en la documentación de AWS.
Configuración de Commerce para AWS MQ
Para conectarse al servicio AWS MQ, configure el objeto queue.amqp
en el archivo env.php
.
La cola de mensajes de AWS requiere una conexión 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'
]
],
Donde:
host
: la dirección URL del extremo AMQP; disponible al hacer clic en el nombre del agente en AWS (quite "https://" y el número de puerto final).user
: el valor de nombre de usuario introducido al crear AWS MQ Broker.password
: valor de contraseña introducido al crear AWS MQ Broker
Después de editar el archivo env.php
, ejecute el siguiente comando para finalizar la instalación:
bin/magento setup:upgrade
Cómo utiliza Commerce el servicio AWS MQ
El consumidor de cola de mensajes async.operations.all
utiliza la conexión AMQP.
Este consumidor enruta cualquier nombre de tema con el prefijo async
a través de la conexión de AWS MQ.
Por ejemplo, en InventoryCatalog
hay:
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 configuración predeterminada de InventoryCatalog
no publica mensajes en RabbitMQ; el comportamiento predeterminado es realizar la acción en el mismo subproceso de usuario. Para indicar a InventoryCatalog
que publique mensajes, habilita cataloginventory/bulk_operations/async
. Desde el administrador, ve a Tiendas > Configuración > Catálogo > Inventario > Operaciones masivas de administración y establece Run asynchronously
en Sí.
Prueba de la cola de mensajes
Para probar el envío de mensajes de Commerce a RabbitMQ:
-
Inicie sesión en la consola web RabbitMQ en AWS para supervisar las colas.
-
En el Administrador, cree un producto.
-
Crear un origen de inventario.
-
Habilite Tiendas > Configuración > Catálogo > Inventario > Operaciones masivas de administración > Ejecutar de forma asíncrona.
-
Vaya a Catálogo > Productos. En la cuadrícula, seleccione el producto creado anteriormente y haga clic en Asignar Source de inventario.
-
Haga clic en Guardar y cerrar para completar el proceso.
Ahora debería ver los mensajes que aparecen en la consola web de RabbitMQ.
-
Inicie el consumidor de cola de mensajes
async.operations.all
.bin/magento queue:consumers:start async.operations.all
Ahora debería ver que el mensaje en cola se procesa en la consola web RabbitMQ.
Compruebe que los orígenes de inventario hayan cambiado en el producto en el Administrador.