Configurar Fila de Mensagens do Amazon
- Tópicos:
- Configuração
Criado para:
- Experiente
- Administrador
- Desenvolvedor
A partir do Commerce 2.4.3, o Amazon Message Queue (MQ) está disponível como uma substituição pronta para nuvem para instâncias de fila de mensagens locais.
Para criar uma fila de mensagens no AWS, consulte Configuração do Amazon MQ na documentação do AWS.
Configuração do Commerce para AWS MQ
Para se conectar ao serviço AWS MQ, configure o objeto queue.amqp
no arquivo env.php
.
A Fila de mensagens do AWS requer uma conexão 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'
]
],
Onde:
host
—A url do ponto de extremidade AMQP; disponível ao clicar no nome do agente no AWS (remova "https://" e o número da porta à direita)user
— O valor de nome de usuário inserido ao criar o agente do AWS MQpassword
— O valor de senha inserido ao criar o agente do AWS MQ
Após editar o arquivo env.php
, execute o seguinte comando para concluir a instalação:
bin/magento setup:upgrade
Como o Commerce usa o serviço AWS MQ
O consumidor da fila de mensagens async.operations.all
usa a conexão AMQP.
Esse consumidor roteia qualquer nome de tópico com o prefixo async
pela conexão do AWS MQ.
Por exemplo, em InventoryCatalog
há:
async.V1.inventory.bulk-product-source-assign.POST
async.V1.inventory.bulk-product-source-unassign.POST
async.V1.inventory.bulk-product-source-transfer.POST
A configuração padrão para InventoryCatalog
não publica mensagens em RabbitMQ; o comportamento padrão é executar a ação no mesmo thread de usuário. Para instruir InventoryCatalog
a publicar mensagens, habilite cataloginventory/bulk_operations/async
. No administrador, vá para Lojas > Configuração > Catálogo > Inventário > Operações em massa do administrador e defina Run asynchronously
como Sim.
Teste da fila de mensagens
Para testar o envio de mensagens do Commerce para RabbitMQ:
-
Faça logon no console da Web RabbitMQ no AWS para monitorar filas.
-
Em Admin, crie um produto.
-
Criar uma origem de Inventário.
-
Habilitar Lojas > Configuração > Catálogo > Inventário > Operações de administração em massa > Executar de forma assíncrona.
-
Vá para Catálogo > Produtos. Na grade, selecione o produto criado acima e clique em Atribuir Source de Inventário.
-
Clique em Salvar e fechar para concluir o processo.
Agora você deve ver as mensagens aparecendo no console da Web RabbitMQ.
-
Iniciar o consumidor da fila de mensagens
async.operations.all
.bin/magento queue:consumers:start async.operations.all
Agora você deve ver a mensagem na fila ser processada no console da Web RabbitMQ.
Verifique se as origens do inventário foram alteradas no produto na Admin.