Azure Spring Apps で実行される Spring Boot アプリケーション用に、Confluent Cloud で Apache Kafka にアクセスする方法について学習します。 このチュートリアルでは、次のタスクを実行します。
Confluent Cloud で Apache Kafka を作成する
Spring Cloud アプリケーションを作成する
Spring Boot アプリをビルドしてデプロイする
Service Connector を使用して Confluent Cloud 上の Apache Kafka を Azure Spring Apps に接続する
警告
Microsoft では、使用可能な最も安全な認証フローを使用することをお勧めします。 この手順で説明されている認証フローでは、アプリケーションで非常に高い信頼度が要求されるため、他のフローには存在しないリスクが伴います。 このフローは、マネージド ID など、より安全なフローが実行可能ではない場合にのみ使用してください。
前提条件
サンプル アプリをクローンまたはダウンロードする
サンプル リポジトリをクローンします。
git clone https://github.com/Azure-Samples/serviceconnector-springcloud-confluent-springboot/
次のフォルダーに移動します。
cd serviceconnector-springcloud-confluent-springboot
クラウド サービスを準備する
Apache Kafka for Confluent Cloud のインスタンスを作成する
Apache Kafka for Confluent Cloud のインスタンスを作成するには、このガイダンス に従います。
Confluent Cloud で Kafka クラスターとスキーマ レジストリを作成する
Azure によって提供される SSO を使用して Confluent Cloud にサインインする
既定の環境を使用するか、新しい環境を作成します
次の情報を使って Kafka クラスターを作成します。
クラスターの種類: 標準
リージョン/ゾーン: eastus (バージニア)、単一ゾーン
クラスター名: cluster_1
またはその他の任意の名前。
[クラスターの概要] ->[クラスター設定] で、Kafka ブートストラップ サーバー の URL をメモします。
[データ統合] ->[API キー] ->[キーの追加] で、[グローバル アクセス] を有効にしてクラスターの API キーを作成します。 キーとシークレットをメモしておきます。
[トピック] ->[+ トピックの追加] で、パーティションが 6 個の test
という名前のトピックを作成します。
既定の環境 で、[スキーマ レジストリ] タブをクリックします。スキーマ レジストリを有効にし、[API エンドポイント] をメモします。
スキーマ レジストリの API キーを作成します。 キーとシークレットを保存します。
Azure Spring Apps インスタンスを作成する
Azure Spring Apps のクイックスタート に関するページの Java の手順に従って、Azure Spring Apps のインスタンスを作成します。 Azure Spring Apps インスタンスが Service Connector をサポートしているリージョン に作成されていることを確認します。
アプリを構築してデプロイする
サンプル アプリをビルドし、新しい Spring アプリを作成する
Azure にサインインしてサブスクリプションを選択します。
az login
az account set --subscription <Name or ID of your subscription>
Gradle を使ってプロジェクトをビルドします。
./gradlew build
パブリック エンドポイントが割り当てられるアプリを作成します。 Spring Cloud プロジェクトの生成時に Java バージョン 11 を選択した場合、--runtime-version=Java_11
スイッチを含めます。
az spring app create -n hellospring -s <service-instance-name> -g <your-resource-group-name> --assign-endpoint true
Service Connector を使ってサービス接続を作成する
次のコマンドを実行して、Confluent Cloud 上の Apache Kafka を Spring Cloud アプリに接続します。
az spring connection create confluent-cloud -g <your-spring-cloud-resource-group> --service <your-spring-cloud-service> --app <your-spring-cloud-app> --deployment <your-spring-cloud-deployment> --bootstrap-server <kafka-bootstrap-server-url> --kafka-key <cluster-api-key> --kafka-secret <cluster-api-secret> --schema-registry <kafka-schema-registry-endpoint> --schema-key <registry-api-key> --schema-secret <registry-api-secret>
次のプレースホルダー テキストを独自のデータに置き換えます。
<your-resource-group-name>
を、Azure Spring Apps インスタンス用に作成したリソース グループ名に置き換えます。
<kafka-bootstrap-server-url>
を Kafka ブートストラップ サーバーの URL に置き換えます。 (例: pkc-xxxx.eastus.azure.confluent.cloud:9092
)。
<cluster-api-key>
および <cluster-api-secret>
を、クラスター API キーとシークレットに置き換えます。
<kafka-schema-registry-endpoint>
を Kafka スキーマ レジストリ エンドポイントに置き換えます。 (例: https://psrc-xxxx.westus2.azure.confluent.cloud
)。
<registry-api-key>
および <registry-api-secret>
を、Kafka のスキーマ レジストリ API キーとシークレットに置き換えます。
注意
"The subscription is not registered to use Microsoft.ServiceLinker (サブスクリプションが Microsoft.ServiceLinker を使用するように登録されていません)" というエラー メッセージが表示される場合は、az provider register -n Microsoft.ServiceLinker
を実行して Service Connector リソース プロバイダーを登録し、接続コマンドを再度実行してください。
[Service Connector] を選択して、次の設定を入力します。
テーブルを展開する
設定
提案された値
説明
[サービスの種類]
Confluent Cloud での Apache Kafka
対象サービスの種類。 Confluent Cloud のターゲット サービスに Apache Kafka がない場合は、このチュートリアルの前の手順を完了してください。
名前
生成された一意の名前
Spring Cloud とターゲット サービスの間の接続を識別する接続名
Kafka ブートストラップ サーバーの URL
お使いの Kafka ブートストラップ サーバーの URL。
上記の「Confluent Cloud で Kafka クラスターとスキーマ レジストリを作成する」の手順の値を入力します。
クラスター API キー
お使いのクラスター API キー。
お使いのクラスター API キー。
クラスター API シークレット
お使いのクラスター API シークレット。
お使いのクラスター API シークレット。
スキーマ レジストリの接続の作成
オン
また、スキーマ レジストリへの接続も作成します。
スキーマ レジストリ エンドポイント
お使いの Kafka スキーマ レジストリ エンドポイント。
スキーマ レジストリ API キー
お使いの Kafka スキーマ レジストリ API キー。
お使いの Kafka スキーマ レジストリ API キー。
スキーマ レジストリ API シークレット
お使いの Kafka スキーマ レジストリ API シークレット。
お使いの Kafka スキーマ レジストリ API シークレット。
[確認と作成] を選択して、接続の設定を確認します。 次に [作成] を選択して、サービス接続の作成を開始します。
JAR ファイルをデプロイする
次のコマンドを実行して、Spring Cloud アプリに JAR ファイル (build/libs/java-springboot-0.0.1-SNAPSHOT.jar
) をアップロードします。
az spring app deploy -n hellospring -s <service-instance-name> -g <your-resource-group-name> --artifact-path build/libs/java-springboot-0.0.1-SNAPSHOT.jar
Kafka データ インジェストを検証する
Azure portal から Spring Cloud アプリのエンドポイントに移動し、アプリケーションの URL を選択します。 "トピック テストに対して 10 個のメッセージが生成されました" と表示されます。
次に、Confluent ポータルにアクセスすると、トピックのページに運用スループットが表示されます。
次のステップ
Service Connector の詳細については、以下のチュートリアルに従ってください。