[PaaS のみ]{class="badge informative" title="Adobe Commerce on Cloud プロジェクト(Adobeが管理する PaaS インフラストラクチャ)およびオンプレミスプロジェクトにのみ適用されます。"}

Amazon Message Queue の設定

Commerce 2.4.3 以降、オンプレミスのメッセージキューインスタンスの代わりに、Amazon Message Queue (MQ)をクラウド対応として使用できるようになりました。

AWSでメッセージキューを作成するには、AWS ドキュメントの ​Amazon MQ の設定 を参照してください

Commerce for AWS MQ の設定

AWS MQ サービスに接続するには、queue.amqp ファイルで env.php オブジェクトを設定します。
AWS Message Queue には 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 ブローカーの作成時に入力されたパスワード値
INFO
Amazon MQ は、TLS 接続のみをサポートしています。 ピアの検証はサポートされていません。

env.php ファイルを編集した後、次のコマンドを実行してセットアップを完了します。

bin/magento setup:upgrade

CommerceでのAWS MQ サービスの使用方法

async.operations.all メッセージ キューコンシューマーは、AMQP 接続を使用します。

このコンシューマーは、プレフィックスが async の任意のトピック名をAWS MQ 接続を介してルーティングします。

例えば、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 web コンソールにログインします。

  2. 管理者で、製品を作成します。

  3. 在庫ソースの作成。

  4. ストア/設定/カタログ/在庫/管理者の一括操作/非同期で実行を有効にします。

  5. カタログ/製品に移動します。 グリッドから、上記で作成した商品を選択し、「在庫の割り当てSource」をクリックします。

  6. 保存して閉じる」をクリックして、プロセスを完了します。

    これで、メッセージが RabbitMQ web コンソールに表示されます。

  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