このトピックでは、Python 用 SDK を使用して ApsaraMQ for Kafka に接続し、Linux サーバーでメッセージを送受信する方法について説明します。
始める前に
- 説明
Python 2.7 および 3.x がサポートされています。このトピックでは、Python 3.9 を使用します。
Python 依存関係ライブラリをインストールする
Python 依存関係ライブラリをインストールするには、次のコマンドを実行します。
pip install confluent-kafka==1.9.2confluent-kafka 1.9.2 以前をインストールすることをお勧めします。そうでない場合、インターネット経由でメッセージを送信するときに SSL_HANDSHAKE エラーが返されます。
構成ファイルを準備する
デモ プロジェクトをダウンロードし、使用するエンドポイントに基づいて対応する構成を変更してから、デモ プロジェクトを Linux サーバーにアップロードします。
aliware-kafka-demos ページに移動します。
アイコンをクリックし、[download ZIP] を選択してデモ プロジェクトをダウンロードします。次に、デモ プロジェクトのパッケージを解凍します。説明ダウンロードしたデモ プロジェクトのパッケージには、SSL ルート証明書が含まれています。 SSL ルート証明書を個別に使用する場合、SSL ルート証明書をダウンロードする をクリックします。
解凍したデモ プロジェクトで、kafka-confluent-python-demo フォルダを見つけ、使用するエンドポイントに基づいて setting.py 構成ファイルを変更します。
デフォルト エンドポイント
vpc ディレクトリで、setting.py 構成ファイルを変更します。
kafka_setting = { 'bootstrap_servers': 'XXX:xxx,XXX:xxx', 'topic_name': 'XXX', 'group_name': 'XXX' }パラメーター
説明
bootstrap_servers
ApsaraMQ for Kafka インスタンスのデフォルト エンドポイント。アクセスポイント情報インスタンスの詳細ApsaraMQ for Kafka コンソール の ページの セクションでエンドポイントを取得できます。
topic_name
トピック名。トピック管理ApsaraMQ for Kafka コンソール の [トピック] ページでトピック名を取得できます。
group_name
グループ 名。Group の管理ApsaraMQ for Kafka コンソール の [グループ] ページでグループ名を取得できます。
SSL エンドポイント
vpc-ssl ディレクトリで、setting.py 構成ファイルを変更します。
kafka_setting = { 'sasl_plain_username': 'XXX', 'sasl_plain_password': 'XXX', 'ca_location': '/XXX/mix-4096-ca-cert', 'bootstrap_servers': 'XXX:xxx,XXX:xxx', 'topic_name': 'XXX', 'group_name': 'XXX' }パラメーター
説明
sasl_plain_username
簡易認証およびセキュリティ層 ( SASL ) ユーザーのユーザー名。
説明ApsaraMQ for Kafka インスタンスで ACL 機能が有効になっていない場合、ユーザー名パスワード設定情報インスタンスの詳細ApsaraMQ for Kafka コンソール の ページの セクションにある パラメーターと パラメーターから、SASL ユーザーのユーザー名とパスワードを取得できます。
ApsaraMQ for Kafka インスタンスで ACL 機能が有効になっている場合、インスタンスを使用して SASL ユーザーがメッセージを送受信する権限を持っていることを確認してください。詳細については、「SASL ユーザーに権限を付与する」をご参照ください。
sasl_plain_password
SASL ユーザーのパスワード。
ca_location
SSL ルート証明書が保存されているパス。サンプル コードの XXX をローカル パスに置き換えます。例:/home/kafka-confluent-python-demo/vpc-ssl/mix-4096-ca-cert。
bootstrap_servers
ApsaraMQ for Kafka インスタンスの SSL エンドポイント。アクセスポイント情報インスタンスの詳細ApsaraMQ for Kafka コンソール の ページの セクションでエンドポイントを取得できます。
topic_name
トピック名。トピック管理ApsaraMQ for Kafka コンソール の [トピック] ページでトピック名を取得できます。
group_name
グループ 名。Group の管理ApsaraMQ for Kafka コンソール の [グループ] ページでグループ名を取得できます。
kafka-confluent-python-demo フォルダを Linux サーバーの /home ディレクトリにアップロードします。
メッセージを送信する
使用するエンドポイントに基づいてメッセージを送信します。
デフォルト エンドポイント
/home/kafka-confluent-python-demo/vpc サブディレクトリにアクセスするには、次のコマンドを実行します。
cd /home/kafka-confluent-python-demo/vpcメッセージを送信するには、次のコマンドを実行します。
python kafka_producer.py
次のサンプル コードは、kafka_producer.py の例を示しています。
SSL エンドポイント
/home/kafka-confluent-python-demo/vpc-ssl サブディレクトリにアクセスするには、次のコマンドを実行します。
cd /home/kafka-confluent-python-demo/vpc-sslメッセージを送信するには、次のコマンドを実行します。
python kafka_producer.py
次のサンプル コードは、kafka_producer.py の例を示しています。
メッセージをサブスクライブする
使用するエンドポイントに基づいてメッセージをサブスクライブします。
デフォルト エンドポイント
/home/kafka-confluent-python-demo/vpc サブディレクトリにアクセスするには、次のコマンドを実行します。
cd /home/kafka-confluent-python-demo/vpcメッセージをサブスクライブするには、次のコマンドを実行します。
python kafka_consumer.py
次のサンプル コードは、kafka_consumer.py の例を示しています。
SSL エンドポイント
/home/kafka-confluent-python-demo/vpc-ssl サブディレクトリにアクセスするには、次のコマンドを実行します。
cd /home/kafka-confluent-python-demo/vpc-sslメッセージをサブスクライブするには、次のコマンドを実行します。
python kafka_consumer.py
次のサンプル コードは、kafka_consumer.py の例を示しています。