[僅限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時輸入的密碼值
INFO
Amazon MQ僅支援TLS連線。 不支援對等驗證。

編輯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的訊息:

  1. 登入AWS中的RabbitMQ網頁主控台以監視佇列。

  2. 在「管理員」中建立產品。

  3. 建立「詳細目錄」來源。

  4. 啟用​ 存放區 >設定> 目錄 > 詳細目錄 >管理員大量作業>非同步執行。

  5. 前往​ 目錄 >產品。 從格線中,選取上面建立的產品,然後按一下​ 指派詳細目錄Source

  6. 按一下​ 儲存並關閉 ​以完成程式。

    您現在應該會看到訊息出現在RabbitMQ網頁主控台中。

  7. 啟動async.operations.all訊息佇列消費者。

    code language-bash
    bin/magento queue:consumers:start async.operations.all
    

您現在應該會在RabbitMQ Web主控台中看到已處理佇列的訊息。
在「管理員」中確認產品上的詳細目錄來源已變更。

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c