[僅限PaaS]{class="badge informative" title="僅適用於雲端專案(Adobe管理的PaaS基礎結構)和內部部署專案的Adobe Commerce 。"}
設定Amazon訊息佇列
自Commerce 2.4.3起,Amazon訊息佇列(MQ)可作為內部部署訊息佇列例項的雲端就緒替代專案。
若要在AWS上建立訊息佇列,請參閱Amazon檔案中的 設定AWS MQ。
設定適用於AWS MQ的Commerce
若要連線到AWS MQ服務,請設定queue.amqp檔案中的env.php物件。
AWS訊息佇列需要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'
]
],
其中:
host—AMQP端點的URL;按一下AWS中的代理程式名稱即可使用(移除「https://」和尾端連線埠號碼)user— 建立AWS MQ代理人時輸入的使用者名稱值password— 建立AWS MQ Broker時輸入的密碼值
編輯env.php檔案後,請執行以下命令以完成安裝:
bin/magento setup:upgrade
Commerce如何使用AWS MQ服務
async.operations.all訊息佇列消費者使用AMQP連線。
此消費者會透過AWS MQ連線路由任何以async為前置詞的主題名稱。
例如,在InventoryCatalog中有:
async.V1.inventory.bulk-product-source-assign.POST
async.V1.inventory.bulk-product-source-unassign.POST
async.V1.inventory.bulk-product-source-transfer.POST
InventoryCatalog的預設設定不會將訊息發佈到RabbitMQ;預設行為是在相同的使用者執行緒中執行動作。 若要通知InventoryCatalog發佈訊息,請啟用cataloginventory/bulk_operations/async。 從管理員移至 商店 >設定> 目錄 > 詳細目錄 >管理大量作業,並將Run asynchronously設定為 是。
測試訊息佇列
若要測試從Commerce傳送至RabbitMQ的訊息:
-
登入AWS中的RabbitMQ網頁主控台以監視佇列。
-
在「管理員」中建立產品。
-
建立「詳細目錄」來源。
-
啟用 存放區 >設定> 目錄 > 詳細目錄 >管理員大量作業>非同步執行。
-
前往 目錄 >產品。 從格線中,選取上面建立的產品,然後按一下 指派詳細目錄Source。
-
按一下 儲存並關閉 以完成程式。
您現在應該會看到訊息出現在RabbitMQ網頁主控台中。
-
啟動
async.operations.all訊息佇列消費者。code language-bash bin/magento queue:consumers:start async.operations.all
您現在應該會在RabbitMQ Web主控台中看到已處理佇列的訊息。
在「管理員」中確認產品上的詳細目錄來源已變更。