サービス RabbitMQ 設定
Message Queue Framework (MQF)は、 モジュールがメッセージをキューに公開できるようにする、Adobe Commerce内のシステムです。 また、メッセージを非同期で受信するコンシューマーも定義します。
MQF は、メッセージの送受信に使用できるスケーラブルなプラットフォームを提供するメッセージング ブローカーとして 🔗0}RabbitMQ} を使用します。 また、未配信メッセージを保存するメカニズムも含まれています。 RabbitMQ は、Advanced Message Queuing Protocol (AMQP) 0.9.1 仕様に基づいています。
QUEUE_CONFIGURATION
環境変数を使用してサービスをサイトに接続します。master
ブランチを含む Pro 統合環境とスターター環境でのサービス設定については、以下の手順を使用します。
RabbitMQを有効にするには:
-
必要な名前、タイプ、ディスク値(MB 単位)を、インストールされているRabbitMQのバージョンと共に
.magento/services.yaml
ファイルに追加します。code language-yaml rabbitmq: type: rabbitmq:<version> disk: 1024
-
.magento.app.yaml
ファイルで関係を設定します。code language-yaml relationships: rabbitmq: "rabbitmq:rabbitmq"
-
コードの変更を追加、コミット、プッシュします。
code language-bash git add .magento/services.yaml .magento.app.yaml
code language-bash git commit -m "Enable RabbitMQ service"
code language-bash git push origin <branch-name>
services.yaml
および .magento.app.yaml
の構成ファイルを更新することで、インストールされているサービスのソフトウェア バージョンを変更できます。 サービスのアップグレードまたはダウングレードのガイダンスについては、 サービスバージョンの変更を参照してください。デバッグ用にRabbitMQに接続
デバッグの目的では、次のいずれかの方法でサービスインスタンスに直接接続すると便利です。
- ローカル開発環境から接続する
- アプリケーションからの接続
- PHP アプリケーションからの接続
ローカル開発環境から接続する
-
magento-cloud
CLI にログインし、次のプロジェクトを実行します。code language-bash magento-cloud login
-
RabbitMQがインストールおよび設定された環境をチェックアウトします。
code language-bash magento-cloud environment:checkout <environment-id>
-
SSH を使用してクラウド環境に接続します。
code language-bash magento-cloud ssh
-
$connection_CLOUD_RELATIONSHIPS 変数からRabbitMQMAGENTOの詳細とログイン資格情報を取得します。
code language-bash echo $MAGENTO_CLOUD_RELATIONSHIPS | base64 -d | json_pp
または
code language-bash php -r 'print_r(json_decode(base64_decode($_ENV["MAGENTO_CLOUD_RELATIONSHIPS"])));'
応答で、RabbitMQ情報を確認します。例:
code language-json { "rabbitmq" : [ { "password" : "guest", "ip" : "246.0.129.2", "scheme" : "amqp", "port" : 5672, "host" : "rabbitmq.internal", "username" : "guest" } ] }
-
RabbitMQへのローカルポート転送を有効にする(プロジェクトが US-3、EU-5、AP-3 リージョンなど別のリージョンにある場合は、
us
の代わりにus-3
/eu-5
/ap-3
を使用します)code language-bash ssh -L <port-number>:rabbitmq.internal:<port-number> <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
http://localhost:15672
でRabbitMQ管理 web インターフェイスにアクセスする例を次に示します。code language-bash ssh -L 15672:rabbitmq.internal:15672 <project-ID>-<branch-ID>@ssh.us.magentosite.cloud
-
セッションが開いている間は、選択したRabbitMQ クライアントをローカルワークステーションから起動できます。このクライアントは、ポート番号、ユーザー名およびパスワード情報を使用して
localhost:<portnumber>
にMAGENTOするように設定されています。
アプリケーションからの接続
アプリケーションで動作しているRabbitMQに接続するには、amqp-utils などのクライアントを .magento.app.yaml
ファイルのプロジェクト依存関係としてインストールします。
以下に例を挙げます。
dependencies:
ruby:
amqp-utils: "0.5.1"
PHP コンテナにログインすると、キューの管理に使用できる amqp-
コマンドを入力します。
PHP アプリケーションからの接続
PHP アプリケーションを使用してRabbitMQに接続するには、ソースツリーに PHP ライブラリを追加します。