RabbitMQ サービスの設定
Message Queue Framework (MQF) は、 モジュール がメッセージをキューに公開できるようにするAdobe Commerce内のシステムです。 また、メッセージを非同期的に受信する消費者も定義します。
MQFはRabbitMQをメッセージングブローカーとして使用し、メッセージを送受信するためのスケーラブルなプラットフォームを提供します。 また、未配信のメッセージを保存するメカニズムも含まれています。 RabbitMQは、Advanced Message Queuing Protocol (AMQP) 0.9.1仕様に基づいています。
QUEUE_CONFIGURATION環境変数を使用してサイトに接続します。master ブランチを含むPro統合環境およびスターター環境でのサービス設定については、次の手順を使用します。
RabbitMQを有効にするには:
-
インストールされているRabbitMQ バージョンと共に、必要な名前、タイプ、ディスク値(MB単位)を
.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.yamlcode language-bash git commit -m "Enable RabbitMQ service"code language-bash git push origin <branch-name>
services.yamlおよび.magento.app.yaml設定ファイルを更新することで、インストール済みサービスのソフトウェアバージョンを変更できます。 サービスのアップグレードまたはダウングレードに関するガイダンスについては、 サービスバージョンの変更を参照してください。デバッグ用にRabbitMQに接続
デバッグの目的では、次のいずれかの方法でサービスインスタンスに直接接続すると便利です。
- ローカル開発製品との連携
- アプリケーションからの接続
- PHP アプリケーションからの接続
ローカル開発製品との連携
-
magento-cloudCLIにログインして、次のプロジェクトを実行します。code language-bash magento-cloud login -
RabbitMQがインストールされ、設定された環境を確認します。
code language-bash magento-cloud environment:checkout <environment-id> -
SSHを使用してクラウド環境に接続します。
code language-bash magento-cloud ssh -
RabbitMQ接続の詳細とログイン資格情報を$MAGENTO_CLOUD_RELATIONSHIPS変数から取得します。
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.cloudhttp://localhost:15672のRabbitMQ管理web インターフェイスにアクセスする例を次に示します。code language-bash ssh -L 15672:rabbitmq.internal:15672 <project-ID>-<branch-ID>@ssh.us.magentosite.cloud -
セッションが開いている間に、MAGENTO_CLOUD_RELATIONSHIPS変数のポート番号、ユーザー名、パスワード情報を使用して
localhost:<portnumber>に接続するように設定された、ローカルワークステーションから任意のRabbitMQ クライアントを開始できます。
アプリケーションからの接続
アプリケーションで実行中のRabbitMQに接続するには、amqp-utilsなどのクライアントを、.magento.app.yaml ファイルのプロジェクト依存関係としてインストールします。
以下に例を挙げます。
dependencies:
ruby:
amqp-utils: "0.5.1"
PHP コンテナにログインすると、キューの管理に使用できるamqp- コマンドを入力します。
PHP アプリケーションからの接続
PHP アプリケーションを使用してRabbitMQに接続するには、ソースツリーにPHP ライブラリを追加します。
RabbitMQ サービスのトラブルシューティング
「Adobe Commerce CloudでRabbitMQに接続できません」を参照してください。